在改进镜头取景时,我经常希望将相机移动某个“百分比”。我意识到当您不确定相机的起始位置时,“百分比”可能是任意的,但对于客户来说,以百分比而不是单位来谈论更有意义(例如“推入 10%”)
在 Maya 的 python 库中,我看到camera
anddolly
命令,但不是将相机移动到当前位置一小部分的内置方法。解决这个问题的最优雅的方法是什么?
这是我的 10% 推入示例解决方案,这绝不是优雅的:
import maya.cmds as cmds
import maya.mel as mm
currentPosition = cmds.camera("MyCameraShape", q=True, coi=True)
desiredPosition = float(currentPosition) - (currentPosition * (float(pushPercent) / 100.0) )
cmds.dolly('MyCameraShape', absolute=True, distance=desiredPosition)
我的理解是我想要absolute=True
,因为我想保留我的 coi(兴趣中心)。
这对于您描述的应用程序来说很好。如果只使用小数,数学会更简单:
def push_pct (cameraShape, amt):
''' where .1 = in 10%, -.1 = out 10%, etc'''
cmds.dolly(cameraShape, abs = True, d = (1 - amt) * cmds.camera(cameraShape, q=True, coi=True))