MetaFusion/scripts/ExportFBX.py
2025-01-15 23:58:58 +08:00

55 lines
1.9 KiB
Python

#!/usr/bin/env python
# -*- coding: utf-8 -*-
import sys
import os
import maya.cmds as cmds
def run():
TOOL_PATH = os.path.dirname(os.path.dirname(os.path.abspath(__file__))).replace("\\", "/")
OUTPUT_PATH = os.path.join(TOOL_PATH, "data", "output").replace("\\", "/")
BODY_FILE_NAME = "body.fbx"
BODY_FILE_PATH = os.path.join(OUTPUT_PATH, BODY_FILE_NAME).replace("\\", "/")
HEAD_FILE_NAME = "head.fbx"
HEAD_FILE_PATH = os.path.join(OUTPUT_PATH, HEAD_FILE_NAME).replace("\\", "/")
# 导出Body
cmds.select(clear=True)
cmds.select("body_rig", add=True)
cmds.select("DHIbody:root", add=True)
cmds.file(BODY_FILE_PATH, force=True, options="groups=0;ptgroups=0;materials=0;smoothing=1;normals=1", type='FBX export', exportSelected=True)
# 导出Head
cmds.select("DHIbody:spine_04", hi=True) # 选择"DHIbody:spine_04"及其子对象
cmds.delete() # 删除选定的对象
cmds.select("DHIbody:thigh_r", hi=True) # 选择"DHIbody:spine_04"及其子对象
cmds.delete() # 删除选定的对象
cmds.select("DHIbody:thigh_l", hi=True) # 选择"DHIbody:spine_04"及其子对象
cmds.delete() # 删除选定的对象
# 将"DHIhead:spine_04"作为"DHIbody:spine_03"的子对象
cmds.parent("DHIhead:spine_04", "DHIbody:spine_03")
# 打印"DHIhead:spine_04"的新父对象
print(cmds.listRelatives("DHIhead:spine_04", parent=True))
cmds.select(clear=True)
cmds.select("head_grp", add=True)
cmds.select("DHIbody:root", add=True)
cmds.file(HEAD_FILE_PATH, force=True, options="groups=0;ptgroups=0;materials=0;smoothing=1;normals=1", type='FBX export', exportSelected=True)
# 撤销导出前对当前场景的删除等操作
cmds.undo()
cmds.undo()
cmds.undo()
cmds.undo()
cmds.undo()
cmds.undo()
cmds.undo()
cmds.undo()
cmds.undo()
cmds.undo()
if __name__ == "__main__":
run()