【发布时间】:2017-10-06 19:06:44
【问题描述】:
我正在尝试确定一组网格节点当前是否可见。使用 pymel 和 isVisible() 有效,但它对性能造成了巨大的影响。
通过查看文档,我发现了一些可以(希望)解决我的问题的东西,即命令 hide 上的标志 testVisibility。
根据文档,flag 命令将返回一个值,告诉我指定的节点是否可见。
问题是,那个标志不存在。
import maya.cmds as cmds
cmds.sphere(name='testsphere')
cmds.hide('testsphere', testVisibility = True)
报错
# Error: Invalid flag 'testVisibility'
# Traceback (most recent call last):
# File "<maya console>", line 4, in <module>
# TypeError: Invalid flag 'testVisibility' #
与标志“tv”的短名称相同,以及在 MEL 中执行整个操作:hide -testVisibility;。
文档包含自 Maya 2016 以来的此标志。这也是我当前使用的 Maya 版本(更具体地说,Maya 2016 SP5)。使用 python 文档的内置链接,我得到了与上面发布的相同的文档。查看 SP6 的更新日志也没有提及任何内容,所以我认为它不会解决我的问题。
我在 Maya 2017 上尝试了相同的命令,它可以工作。不过这对我帮助不大,因为这不是我们团队目前使用的 Maya 版本。
我无法联系 Autodesk 支持,因为我不是订阅者(感谢 Autodesk,帮助很大)。
所以我的问题是:
-
有什么我遗漏/忽略的东西吗?这些标志是否仅在某种超级骗子开发者插件中实现? Maya 版本是否仅使用以前版本的 API 或其他什么?
- 有没有办法在不尝试捕获的情况下检查命令是否有标志?
- 任何解决方法都不像我上面提到的 pymel 路由那样消耗性能?
【问题讨论】: