控制绑定动画Python脚本编写(2/2)
FBX导入和导出
FBX导出
# 获取关卡序列和绑定分段
ls = unreal.LevelSequenceEditorBlueprintLibrary.get_current_level_sequence()
rig = unreal.ControlRigSequencerLibrary.get_control_rigs(ls)[0]
rig_track = rig.track
keyed_section = rig_track.get_section_to_key()
filename = "D:/test.fbx"
# 创建带有文件名的导出FBX设置
export_fbx_settings = unreal.MovieSceneUserExportFBXControlRigSettings()
export_fbx_settings.set_editor_property("ascii", True)
export_fbx_settings.set_editor_property("export_file_name", filename)
# 导出控制绑定FBX
unreal.ControlRigSequencerLibrary.export_fbx_from_control_rig_section(ls, keyed_section, export_fbx_settings)
Copy full snippet
获取关卡序列和绑定分段
ls = unreal.LevelSequenceEditorBlueprintLibrary.get_current_level_sequence() rig = unreal.ControlRigSequencerLibrary.get_control_rigs(ls)[0] rig_track = rig.track keyed_section = rig_track.get_section_to_key() filename = "D:/test.fbx"
创建带有文件名的导出FBX设置
export_fbx_settings = unreal.MovieSceneUserExportFBXControlRigSettings() export_fbx_settings.set_editor_property("ascii", True) export_fbx_settings.set_editor_property("export_file_name", filename)
导出控制绑定FBX
unreal.ControlRigSequencerLibrary.export_fbx_from_control_rig_section(ls, keyed_section, export_fbx_settings)
FBX导入
# 获取关卡序列、绑定轨道和分段以及编辑器世界
ls = unreal.LevelSequenceEditorBlueprintLibrary.get_current_level_sequence()
rig = unreal.ControlRigSequencerLibrary.get_control_rigs(ls)[0]
rig_track = rig.track
keyed_section = rig_track.get_section_to_key()
editor_system = unreal.get_editor_subsystem(unreal.UnrealEditorSubsystem)
world = editor_system.get_editor_world()
# 为所选控制点创建列表,仅当import_onto_selected_controls设置为True时可行
selected_ctrls = ["thigh_l_fk_ctrl", "calf_l_fk_ctrl", "foot_l_fk_ctrl", "ball_l_fk_ctrl"]
# 创建导入设置对象并分配设置和文件名
import_fbx_settings = unreal.MovieSceneUserImportFBXControlRigSettings()
import_fbx_settings.set_editor_property("import_onto_selected_controls", True)
import_fbx_settings.set_editor_property("insert_animation", True)
fbx_file = "D:/test.fbx"
# 导入控制绑定FBX
unreal.ControlRigSequencerLibrary.import_fbx_to_control_rig_track(world, ls, rig_track, keyed_section, selected_ctrls, import_fbx_settings, fbx_file)
Copy full snippet
获取关卡序列、绑定轨道和分段以及编辑器世界
ls = unreal.LevelSequenceEditorBlueprintLibrary.get_current_level_sequence() rig = unreal.ControlRigSequencerLibrary.get_control_rigs(ls)[0] rig_track = rig.track keyed_section = rig_track.get_section_to_key() editor_system = unreal.get_editor_subsystem(unreal.UnrealEditorSubsystem) world = editor_system.get_editor_world()
为所选控制点创建列表,仅当import_onto_selected_controls设置为True时可行
selected_ctrls = ["thigh_l_fk_ctrl", "calf_l_fk_ctrl", "foot_l_fk_ctrl", "ball_l_fk_ctrl"]
创建导入设置对象并分配设置和文件名
import_fbx_settings = unreal.MovieSceneUserImportFBXControlRigSettings() import_fbx_settings.set_editor_property("import_onto_selected_controls", True) import_fbx_settings.set_editor_property("insert_animation", True) fbx_file = "D:/test.fbx"
导入控制绑定FBX
unreal.ControlRigSequencerLibrary.import_fbx_to_control_rig_track(world, ls, rig_track, keyed_section, selected_ctrls, import_fbx_settings, fbx_file)
编辑动画模式窗口
在关卡编辑器和Sequencer中使用控制绑定制作动画时,会弹出动画模式窗口,其中包含动画师需要的工具和选项。这些选项也可以通过Python进行编辑。
动画模式窗口包括以下属性:
- bDisplayHierarchy : 为控制绑定中的每个控制点和骨骼绘制线和点
- bDisplayNulls : 为控制绑定中的每个null点绘制线和点
- bHideManipulators : 隐藏控制绑定中的所有控制点和显示
- bCoordSystemPerWidgetMode : 按平移、旋转和缩放模式保持本地/全局空间操纵器状态的选项
- bOnlySelectRigControls : 只允许通过视口选择控制绑定控制点
- bLocalTransformsInEachLocalSpace : 变换多个选定的控制点时,每个控制点都将在各自的本地空间中变换
- GizmoScale : 变更视口小工具操纵器的比例
# 加载模式设置类并获取默认对象
ControlRigSettingsClass = unreal.load_class(None, '/Script/ControlRigEditor.ControlRigEditModeSettings')
ControlRigSettings = unreal.get_default_object(ControlRigSettingsClass)
# 打印查询到的数据
print(ControlRigSettings.get_editor_property('bDisplayHierarchy'))
print(ControlRigSettings.get_editor_property('bDisplayNulls'))
print(ControlRigSettings.get_editor_property(GizmoScale))
# 设置属性
ControlRigSettings.set_editor_property('bDisplayHierarchy', True)
ControlRigSettings.set_editor_property('bDisplayNulls', True)
ControlRigSettings.set_editor_property('GizmoScale', 5)
Copy full snippet
加载模式设置类并获取默认对象
ControlRigSettingsClass = unreal.load_class(None, '/Script/ControlRigEditor.ControlRigEditModeSettings') ControlRigSettings = unreal.get_default_object(ControlRigSettingsClass)
打印查询到的数据
print(ControlRigSettings.get_editor_property('bDisplayHierarchy')) print(ControlRigSettings.get_editor_property('bDisplayNulls')) print(ControlRigSettings.get_editor_property(GizmoScale))
设置属性
ControlRigSettings.set_editor_property('bDisplayHierarchy', True) ControlRigSettings.set_editor_property('bDisplayNulls', True) ControlRigSettings.set_editor_property('GizmoScale', 5)
