将动作指定给一个或多个对象。
bpy.ops.asset.assign_action(action='NEW', object="", frame_start=1, frame_end=250, stride=1, exclude_set=None)
action
- 动作名称。默认为NEW
,表示创建一个新的动作。object
- 一个或多个对象名称,用逗号分隔。如果为空,则将动作指定给所有选中对象。frame_start
- 动作的起始帧数。frame_end
- 动作的结束帧数。stride
- 步幅,用于跳过一定数量的帧数。exclude_set
- 一个或多个对象名称,用逗号分隔。将动作排除在这些对象之外。{'FINISHED'}
- 表示操作已成功完成。import bpy
# 获取场景中的一个Cube对象
obj = bpy.context.scene.objects.get("Cube")
# 激活该对象
bpy.context.view_layer.objects.active = obj
# 获取动作
action = bpy.data.actions.get("MyAction")
# 指定动作给该对象
bpy.ops.asset.assign_action(action=action.name, object=obj.name)
import bpy
# 获取场景中的两个Cube对象
objs = [bpy.context.scene.objects.get("Cube"), bpy.context.scene.objects.get("Cube.001")]
# 激活第一个对象
bpy.context.view_layer.objects.active = objs[0]
# 获取动作
action = bpy.data.actions.get("MyAction")
# 将动作指定给所有选中对象
bpy.ops.asset.assign_action(action=action.name, object=",".join([obj.name for obj in objs]))
import bpy
# 获取场景中的一个Cube对象
obj = bpy.context.scene.objects.get("Cube")
# 激活该对象
bpy.context.view_layer.objects.active = obj
# 创建新的动作
new_action = bpy.data.actions.new(name="MyNewAction")
# 随意修改动作数据...
# ...
# 将新动作指定给该对象
bpy.ops.asset.assign_action(action=new_action.name, object=obj.name)
import bpy
# 获取场景中的三个Cube对象
objs = [bpy.context.scene.objects.get("Cube"), bpy.context.scene.objects.get("Cube.001"), bpy.context.scene.objects.get("Cube.002")]
# 激活第一个对象
bpy.context.view_layer.objects.active = objs[0]
# 获取动作
action = bpy.data.actions.get("MyAction")
# 将动作指定给除了第二个对象之外的其他对象
bpy.ops.asset.assign_action(action=action.name, object=",".join([obj.name for obj in objs]), exclude_set=[objs[1].name])