Skip to main content
2 of 2
added 1836 characters in body
yhoyo
  • 2.3k
  • 13
  • 33

you must know the total travel time

after that you must configure the parameters of frames per second (ftps) and the path animation parameters as frame and Evaluation time.

that is a simple rule of three

configuración path

also you can calc the length of a Bezier curve please check: http://blenderartists.org/forum/showthread.php?206790-Length-of-a-Bezier-curve-in-2-5 or you can try with my script that will print the lenght in console:

import bpy, bmesh

for area in bpy.context.screen.areas:
    if area.type == 'VIEW_3D':    
    
        ob1 = bpy.context.active_object # this is the curve

        bpy.ops.object.duplicate_move(OBJECT_OT_duplicate={"linked":False, "mode":'TRANSLATION'}, TRANSFORM_OT_translate={"value":(0, 0, 0), "constraint_axis":(False, False, False), "constraint_orientation":'GLOBAL', "mirror":False, "proportional":'DISABLED', "proportional_edit_falloff":'SMOOTH', "proportional_size":1, "snap":False, "snap_target":'CLOSEST', "snap_point":(0, 0, 0), "snap_align":False, "snap_normal":(0, 0, 0), "gpencil_strokes":False, "texture_space":False, "remove_on_cancel":False, "release_confirm":False})

        bpy.ops.object.transform_apply(location=False, rotation=False, scale=True)

        bpy.ops.object.convert(target='MESH')

        bpy.ops.object.editmode_toggle()

        obj = bpy.context.object
        me = obj.data
        bm = bmesh.from_edit_mesh(me)

        edges= [e for e in bm.edges]

        total = 0
        for edge in edges:
            
            total = (total + edge.calc_length())

        print("total: ",total)


        bmesh.update_edit_mesh(me, True)  
        bpy.ops.object.editmode_toggle()
        bpy.ops.object.delete(use_global=False)

        ob1.select = True
        bpy.context.scene.objects.active = ob1
yhoyo
  • 2.3k
  • 13
  • 33