Python 在Maya中,是否有方法在翻滚过程中获取位置摄影机属性(旋转、平移)?

Python 在Maya中,是否有方法在翻滚过程中获取位置摄影机属性(旋转、平移)?,python,maya,Python,Maya,我正在编写一个脚本,它将记录用户的一些动作并回放,现在只关注透视相机的运动。通过使用scriptJob命令,我可以在设置摄影机属性后捕捉它们,但我的理想脚本将捕捉翻滚过程中的所有摄影机移动。有办法做到这一点吗 当前脚本如下所示: def startRecording(): cmds.scriptJob(attributeChange=["persp.rotate", recordValuesAtTime]) cmds.scriptJob(attributeChange=["per

我正在编写一个脚本,它将记录用户的一些动作并回放,现在只关注透视相机的运动。通过使用scriptJob命令,我可以在设置摄影机属性后捕捉它们,但我的理想脚本将捕捉翻滚过程中的所有摄影机移动。有办法做到这一点吗

当前脚本如下所示:

def startRecording():
    cmds.scriptJob(attributeChange=["persp.rotate", recordValuesAtTime])
    cmds.scriptJob(attributeChange=["persp.translate", recordValuesAtTime])

def playback():
    for e in events:
        # lerp from starting position to next position for each event

我想你快拿到了。您只需要在scriptJob设置(在MEL中)中使用正确的触发事件:

其中$triggerEvent可能是cameraChange或glFrameTrigger。您可以使用(也可以使用MEL)获取事件列表:


这将是反复试验,找出最有效的方法并发出警告,有些人可能真的会用一系列事件来重击Maya。

设置摄影机关键帧是不可能的?重要的小消息,是否要记录动画的运动,换句话说,运动捕捉。或用于其他目的。请参见maya自版本1起就具有录制播放模式。它以固定的采样率记录,这可能是您想要的,也可能不是您想要的。这个信息会影响答案。不管是哪种情况,这都是非常简单的事情,但是scriptjobs对于这个(或一般的事件)来说是错误的工具@joojaa这是用于教程的,因此讲师可以记录他们在Maya中所做的事情,然后学生可以在他们自己的实例中播放。Autodresk过去有一个用于记录此类内容的工具,它是免费的,所以也要问他们。我稍后会提供答案,因为我无法在手机上轻松使用mayas图形用户界面(我可以使用maya)
scriptJob -event ($triggerEvent) recordVauesAtTime;
$list = `scriptJob -listEvents`;
for ($it in $list) {
  print ($it+"\n");
}