如何使用 mel 脚本打开 Game Exporter?

How to open Game Exporter with mel script?

我经常使用 Game Exporter 来导出我的动画。但是我厌倦了从主菜单中选择文件 > 游戏导出器。

我可以使用mel脚本打开Game Exporter吗?或者更好的是,我可以使用 mel 脚本为 Game Exporter 自动生成输入(例如:自动输入导出路径、动画名称、仅导出选择...)?

Can I use mel script to open Game Exporter?

打开游戏导出器

gameFbxExporter;

Or even better, can I use the mel script to automatically generate the input for Game Exporter (For example: automatically input Export path, Animation name, Export selection only,...)?

导出路径

(设为"E:/aaa")

setAttr -type "string" gameExporterPreset2.exportPath "E:/aaa";

动画名称

(设为"aaa")

gameExp_SetUniqueAnimationClipName 0"aaa"gameExporterWindow|gameExporterTabFormLayout|gameExporterTabLayout|gameExporterAnimationTab|anim_gameExporterMainFormLayout|anim_gameExporterExportTypeFormLayout|formLayout344|anim_gameFbxExporterAnimClipFrameLayout|anim_gameFbxExporterAnimClipFormLayout|anim_gameFbxExporterScrollLayout|formLayout345|textField20;

但这并不是真正有效,因为硬编码:formLayout344|formLayout345|textField20。必须想办法让它变得动态。

所以改用这个

setAttr -type "string" gameExporterPreset2.exportFilename "aaa";

仅导出选择

setAttr("gameExporterPreset2.exportSetIndex") 2;
gameExp_CreateExportTypeUIComponents;

这是我的计算方法:我检查 all the records of Mel

刷新以获取要更新的动画剪辑名称

from maya import cmds
from maya import mel as mm

# setting the animation clip name, this is 0 indexed    
cmds.setAttr('gameExporterPreset2.animClips[0].animClipName', 'clipNameHere', type='string')

# For changes to Animation clip Name only we need to close and reopen the window
if cmds.window("gameExporterWindow", exists=True):
    print 'exists'
    cmds.deleteUI("gameExporterWindow")

else:
    pass

mm.eval('gameFbxExporter;')