bpy.ops.constraint.followpath_path_animate
描述
将路径约束应用于对象,并通过其路径动画它。
语法
bpy.ops.constraint.followpath_path_animate(
constraint='FOLLOW_PATH',
owner='OBJECT',
frame_start=0,
length=100,
follow='PATH',
use_timing_curves=True,
use_fixed_location=True,
use_fixed_rotation=True,
use_offset=True,
use_curve_follow=True,
use_curve_radius=True,
use_curve_stretch=True,
use_bbone_shape=True,
use_custom_shape=False,
use_follow_path=True,
use_follow_curve=False,
use_follow_offset=False,
use_use_curve_follow=False,
use_use_path=False,
curve_mapping_min=0.0,
curve_mapping_max=1.0,
curve_mapping_time=0.0,
curve_mapping_rotation='AUTO',
curve_mapping_follow='AUTO',
curve_mapping_vertical='AUTO',
curve_bend_axis='X',
follow_axis='FORWARD',
forward_axis='X',
up_axis='Z',
track_axis='X',
bank_scale=1.0,
flexible=True,
inverse_kinematics=True,
start_delay=0,
cyclings=1,
evaluation_time=None,
animation_offset=0,
animation_step=1,
forward_kinematics=True,
lock_camera=False,
lock_curve=False,
lock_rog=False,
lock_segment=False,
timeaffect='LOCATION'
)
参数
- constraint (string, (可选)) – 约束类型 ("FOLLOW_PATH" 其中之一)
- owner (string, (可选)) – 运用于约束的对象类型 ("OBJECT" 其中之一)
- frame_start (int) – 动画开始帧号
- length (int) – 动画帧数
- follow (string, (可选)) – 跟随类型 ("PATH" 其中之一)
- use_timing_curves (boolean, (可选)) – 启用Timing曲线
- use_fixed_location (boolean, (可选)) – 启用FIXED LOCATION
- use_fixed_rotation (boolean, (可选)) – 启用FIXED ROTATION
- use_offset (boolean, (可选)) – 启用OFFSET
- use_curve_follow (boolean, (可选)) – 开启CURVE FOLLOW
- use_curve_radius (boolean, (可选)) – 开启CURVE RADIUS
- use_curve_stretch (boolean, (可选)) – 开启CURVE STRETCH
- use_bbone_shape (boolean, (可选)) – 启用BONE形状
- use_custom_shape (boolean, (可选)) – 启用CUSTOM形状
- use_follow_path (boolean, (可选)) – 启用路径跟随
- use_follow_curve (boolean, (可选)) – 启用曲线跟随
- use_follow_offset (boolean, (可选)) – 启用跟随偏移
- use_use_curve_follow (boolean, (可选)) – 启用CURVE FOLLOW
- use_use_path (boolean, (可选)) – 启用PATH跟随
- curve_mapping_min (float in [0, 1], (可选)) – 最小曲线映射范围
- curve_mapping_max (float in [0, 1], (可选)) – 最大曲线映射范围
- curve_mapping_time (float in [0, 1], (可选)) – 曲线映射时间
- curve_mapping_rotation (string, (可选)) – 曲线映射旋转 (‘AUTO’, ‘VECTOR_X’, ‘VECTOR_Y’, ‘VECTOR_Z’, ‘KEYED’ 如果是)"AUTO"之一。
- curve_mapping_follow (string, (可选)) – 曲线行驶方向 (‘AUTO’, ‘CURVATURE’, ‘FIXED_LOCATION’, ‘FIXED_ROTATION’ 如果是)"AUTO"之一。
- curve_mapping_vertical (string, (可选)) – 曲线垂直 (‘AUTO’, ‘FIXED_LOCATION’, ‘FIXED_ROTATION’, ‘TANGENT’, ‘NORMAL’ 如果是)"AUTO"之一。
- curve_bend_axis (string, (可选)) – 曲线弯曲轴向 ( ‘X’, ‘Y’, ‘Z’ 如果是)"X"之一。
- follow_axis (string, (可选)) – 跟随运动方向 (‘FORWARD’, ‘BACKWARD’) 如果是)"FORWARD"之一。
- forward_axis (string, (可选)) – 正向方向 (‘X’, ‘Y’, ‘Z’) 如果是)"X"之一。
- up_axis (string, (可选)) – 上方向 (‘X’, ‘Y’, ‘Z’) 如果是)"Z"之一。
- track_axis (string, (可选)) – 追踪方向 (‘X’, ‘Y’, ‘Z’) 如果是)"X"之一。
- bank_scale (float in [0, ∞], (可选)) – BANK SCALE
- flexible (boolean, (可选)) – FLEXIBLE
- inverse_kinematics (boolean, (可选)) – 反向动力学
- start_delay (int in [-inf, inf], (可选)) – 延迟开始
- cyclings (int in [-inf, inf], (可选)) – 循环
- evaluation_time (float in [0, inf], (可选)) – 评估时间
- animation_offset (int in [-inf, inf], (可选)) – 动画偏移
- animation_step (int in [1, inf], (可选)) – 动画步骤
- forward_kinematics (boolean, (可选)) – 前向运动学
- lock_camera (boolean, (可选)) – 锁定摄像机
- lock_curve (boolean, (可选)) – 锁定曲线
- lock_rog (boolean, (可选)) – 锁定ROG
- lock_segment (boolean, (可选)) – 锁定段
- timeaffect (string, (可选)) – 影响时间 (‘LOCATION’, ‘ROTATION’, ‘BOTH’, ‘NONE’ 如果是)"LOCATION"之一。
返回
抛出
- TypeError – 规范化参数失败
- ValueError – 无法约束对象或未知的路径或曲线
- RuntimeError – 执行以下之一:
-
执行约束时调用此操作时出错
-
系统有多于一个约束跟随路径
-
对象始终超出路径或曲线
-
path_duration为零或负
-
cyclings为零或负
-
路径或曲线未经填充
-
前向和反向动力学尚未实现
-
_animation_offset + (_animation_step * frame)小于零
-
_frame_start(用于Re-Ob评估)小于零
-
b'Constraint is not set up for indirect evaluation' (* 表示值在运行时具有不同的描述)
提醒
-
如果当且仅当 FOLLOW_PATH 约束被初始化,锁定Y轴旋转被打开(默认状态开启)
-
当 FOLLOW_PATH 约束是选中的,Location为Fixed但 Rotation部分为路径指导时,它会根据路径修改对象的方向
-
跟随路径中的“Max”默认始终为100,而“Min”的默认值始终为0。这意味着路径动画将路径上的对象移动100代(或从200到300)。将长度设置为50将使对象在路径的0到50的长度中移动,并返回该位置。
-
进行按标准步骤执行的路径动画,使用了整数数字步骤,并忽略筛选的曲线范围。这是为了在动画编辑器中提供一致的结果,并且不应使用作为规范化的任何数据。
-
以下属性将被修改,尽管只在对象选择时才能更改:
- ['rotation_mode']
- ['rotation_euler']
- ['rotation_quaternion']
- ['rotation_axis_angle']
- ['rotation_matrix']
- ['location']
- ['rotation_axis_angle']
- ['rotation_quaternion']
- ['rotation_euler']
- ['rotation_matrix']
- ['rotation_quaternion']
- ['rotation_euler']
- ['lock_location'][0]
- ['lock_rotation'][0]
- ['constraint']
示例
将一个立方体放入场景中和一个曲线(形状扭曲):
import bpy, mathutils
# add a curve and a cube to the scene
bpy.ops.curve.primitive_bezier_curve_add()
cu = bpy.context.active_object
bpy.ops.mesh.primitive_cube_add(radius=2)
ob = bpy.context.active_object
# set the cube to follow the curve
cu.select = True
bpy.ops.object.constraint_add(type='FOLLOW_PATH')
# bpy.ops.constraint.followpath_path_animate is called when 'Apply Path Animation' is activated in GUI