MetaFusion/scripts/utils/CreateMenuItem.py
2025-02-07 05:10:30 +08:00

80 lines
1.8 KiB
Python

#!/usr/bin/env python
# -*- coding: utf-8 -*-
import maya.cmds as cmds
import maya.mel as mel
def create_menu_item():
"""
创建Maya菜单项
- 添加SuperRigging菜单
- 添加Super Rigging和Pose Wrangler子菜单项
"""
icon = "unreal.png"
logo = "logo.png"
# 创建主菜单
cmds.menu(
"SG_MENU",
tearOff=True,
label="SuperRigging",
parent="MayaWindow"
)
# 添加Super Rigging菜单项
cmds.menuItem(
"SG_Editor",
label="Super Rigging",
image=logo,
command="execute_super_rigging()"
)
# 添加Pose Wrangler菜单项
cmds.menuItem(
"SG_PoseWrangler",
label="Pose Wrangler",
image=icon,
command="execute_pose_wrangler()"
)
def execute_super_rigging():
"""
执行Super Rigging功能
- 加载必要的插件
- 打开Super Rigging窗口
"""
# 获取Maya版本
version = cmds.about(version=True)
# 需要加载的插件列表
plugins = [
f"SuperRiggingEditor{version}",
f"MayaUE4RBFPlugin{version}",
"embeddedRL4",
"MayaUERBFPlugin",
"mayaHIK"
]
# 加载所有必要的插件
for plugin in plugins:
try:
if not cmds.pluginInfo(plugin, query=True, loaded=True):
cmds.loadPlugin(plugin, quiet=True)
cmds.pluginInfo(plugin, edit=True, autoload=True)
except:
pass
# 打开Super Rigging窗口
mel.eval("SuperRiggingWindow;")
def execute_pose_wrangler():
"""
执行Pose Wrangler功能
- 导入并初始化Pose Wrangler
"""
# 导入并创建Pose Wrangler实例
python_cmd = """
from epic_pose_wrangler import main
pose_wrangler_instance = main.PoseWrangler()
"""
mel.eval(f'python("{python_cmd}")')