我正在使用惊人的Sublime Text 2为Maya编写MEL(Maya嵌入式语言)脚本,但它没有MEL的语法高亮.现在我强迫它将文本解释为Perl,它做得很好,但它远非完美.添加Maya的命令会很方便.有谁知道如何为Sublime创建语法高亮设置?
.ma
我正在尝试在 Python 脚本末尾打开一个 Maya 场景,
路径看起来像这样:G:\ProjectPath\Scene.ma
。
但我知道的唯一命令是 MEL 命令:
file -f -options "v=0; p=17; f=0" -ignoreVersion -typ "mayaAscii" -o
"G:/ProjectPath/Scene.ma";
addRecentFile("G:/ProjectPath/Scene.ma", "mayaAscii");
Run Code Online (Sandbox Code Playgroud)
有人知道如何用 Python 实现这一点吗?
我有从Maya用MEL导出Alembic的脚本:
AbcExport(-frameRange 31 41 -writeVisibility -dataFormat ogawa -root |myChar:char|myChar:GEOchar -file E:/test.abc)
Run Code Online (Sandbox Code Playgroud)
我想用Python做同样的事情.就像是 :
cmds.AbcExport(...)
Run Code Online (Sandbox Code Playgroud)
我找不到任何关于它的文件......有什么想法吗?
非常感谢!
我尝试使用MEL将菜单项添加到Maya中的现有菜单
例:
menuItem -label "Mylabel" -insertAfter "someEntry" -parent $gMainFileMenu;
menuItem -label "Mylabel2" -insertAfter "someEntry" -parent $gMainFileMenu;
Run Code Online (Sandbox Code Playgroud)
问题是菜单不会像普通条目那样填充,但只能通过我用这两行代码添加的条目来填充.
例如,文件菜单通常包含"新场景","打开场景","保存场景"等,但是当我执行这两行时,它只包含"Mylabel"和"Mylabel2".
是否有修复或解决方法以确保菜单完全填充?有没有办法迫使Maya在没有用户实际点击的情况下构建它?
我想在Maya(mel语言)中创建一个空节点,我可以在其中存储我的属性(对最终用户可见).
我之所以需要一个空节点,是因为我不需要任何定位器信息或额外的标准Maya信息,只需要几个自定义属性.在节点中是visibl.
createNode "<What_type_should_I_put_here?>" -n "MyCustomEmptyNode";
Run Code Online (Sandbox Code Playgroud) 我需要检查会话变量是否存在.我可以检查它是否存在并设置为变量:
<when expression="#[sessionVars['foo'] == 'true']">
Run Code Online (Sandbox Code Playgroud)
但是我想要这样的东西:
<when expression="#[sessionVars['foo']]">
-- or --
<when expression="#[Exists(sessionVars['foo'])]">
Run Code Online (Sandbox Code Playgroud)
因为,有时'foo'没有赋值变量.
有任何想法吗?
在创建和调试脚本时,我为自己生成了很多反馈,但如果我不清除脚本编辑器,我可能会对我正在查看的反馈来自哪个尝试感到困惑.
有没有办法(最好使用PyMEL,但MEL可以)清除脚本编辑器历史记录?
我有一个层次结构,我需要:
我知道如何确定地打破事物,并且对当它们的层次结构扁平时我需要做的事情有计划。问题是我如何养育他们?
细节
这与我之前的问题有关:
在具有动画子项的父对象上冻结缩放变换(MAYA MEL/Python 脚本)
我需要在层次结构中的所有节点上冻结比例变换。问题是节点上有平移动画,如果我尝试在父节点上冻结缩放,它的子动画会变得很奇怪。但是看起来有一个解决方案,但我需要帮助来实现它。我想要:
当我手动执行时它可以工作,所以一切都应该没问题。但是,如果您认为有更好的方法来实现我的主要目标,请告诉我。
所以,我一直在考虑将所有节点写入一个字符串并从那里调用它们,但我不知道如何处理分支。例如:如果它是一个无分支的层次结构(一直是一个父母和一个孩子),我可以用两个来称呼他们,然后很容易地称呼他们为父母。但是分支使字符串中的名称像“父母,孩子,孩子,孩子,父母......”
可能是我想的太多,方向错了。有任何想法吗?
我有一个按钮,可以导入带有类的模块。类 (varClass) 创建一个窗口。
如果我再次单击该按钮,我会尝试以下操作:
if var:
var.toggleUI()
else :
var = varClass()
Run Code Online (Sandbox Code Playgroud)
但打开 Maya 后第一次创建窗口时 var 不存在。我怎样才能让它工作?
在 Maya 中,有一个 ls 命令可列出场景(或 DAG)中的所有对象。
pm.ls()
Run Code Online (Sandbox Code Playgroud)
这里是命令的参考ls
。
我们可以通过传递参数来列出特定类型的元素type
。
pm.ls(type="joint")
Run Code Online (Sandbox Code Playgroud)
一些可能的类型是camera、mesh、joint等。
我的问题是 ls() 命令可用的所有类型是什么?文档没有多大帮助。我在哪里可以找到它?
mel ×10
maya ×8
python ×6
pymel ×2
alembic ×1
ascii ×1
hierarchy ×1
menu ×1
mule ×1
mule-studio ×1
nodes ×1
parent-child ×1
sublimetext2 ×1
variables ×1