【发布时间】:2020-09-08 02:27:57
【问题描述】:
我想要一个 Maya 相机绕网格运行,而用户在我自己的脚本界面上选择如何处理该网格。
所以我有一段时间绕着相机转,但在发生这种情况时无法与用户界面进行交互。
无论如何要“分享”,或者将焦点放在秒的十进制中以便能够与用户界面进行交互? 我尝试使用 cmds.evaldeferred(),但没有运气...
从技术上讲,Maya 小部件界面在脚本完成工作后立即可用...
我正在尝试用一个相机小轨道完成这项工作,并通过鼠标移动事件重新启动它...时间变化事件...但是没有办法做到这一点...就像一个守护进程正在运行在后台......不知道我怎么能达到这样的目的......
一些代码:
import maya.cmds as cmds
#declares global variable
global orbitCam
#just something to see in the scene
cmds.polyCube()
#function to stop camera orbit
def stopOrbiting():
global orbitCam
orbitCam = False
#simplest ui
cmds.window("testWindow")
cmds.formlayout("flo", parent="testWindow")
#button that calls stopOrbit function
cmds.button("pushMeIfYouCan", parent="flo", label="pushMeIfYouCan", c="stopOrbiting()")
cmds.showWindow("testWindow")
#condition for the while
orbitCam=True
#while itself
while orbitCam:
cmds.orbit("persp", ra=(0.2,0.1))
有什么方法可以在相机绕行时按下按钮并与小部件交互?
【问题讨论】:
-
这里似乎有一些解决方案,也许,我必须深入了解一下:stackoverflow.com/questions/21164697/…
-
您有什么特别的理由需要让相机实时绕行吗?这听起来像是为了看起来“酷”,但没有实际目的。
-
重要的是要知道您正在处理的确切几何形状。场景可以有数百个相似的部分,并且遮阳板可以帮助识别您正在处理的确切几何形状,轨道目的是确保当视图聚焦在对象上时网格不被其他部分包含。
标签: python daemon maya execution interactive