Nuke - Matrix4相机约束锁定Z旋转

Nuke - Matrix4 camera constraint lock Z rotation

本文关键字:锁定 旋转 约束 相机 Matrix4 Nuke      更新时间:2023-10-16

所以我建立一个插件在Nuke(从铸造),将模仿玛雅的动画约束行为。我有一个父节点,一个子节点,然后是点,方向,目标,父节点约束。这一切都工作得很好,但我目前最大的问题是Aim约束。

一些背景:使用Nuke Matrix4类值得注意的是,这个矩阵是4x4的,其中前3行的前3列适用于旋转/缩放,前3行的最后一列是平移(X,Y,Z)

在Vector3类我正在获取信号源和目标位置。目标-源= ST然后我建立一个Y平面(一个倒着,一个不是)然后我得到ST点和Y平面的外积,然后是另一个ST点和倒Y平面的外积。(当父母在孩子的后面翻转它时)然后我得到ST的叉乘和ST叉乘(y_plane)的结果

瞄准约束实际上工作得很好,但当父母在某些位置时,我的相机(孩子)会有很多Z轴旋转。我想避免这个Z轴旋转。有人知道怎么做吗?

如果你正在模拟Maya的约束系统,Maya通过up vector处理Z旋转,它调整你的Z旋转以与五个选项之一对齐:

  • scene up将相机的顶部对准+Y
  • object up将相机的顶部对准第三个物体
  • object rotation up将相机的Z轴旋转与第三个物体的XYZ旋转相匹配
  • vector将相机顶部对准矢量
  • none不试图用任何东西来定位相机的顶部。

此外,还有一个up vector,它定义了什么是"相机的顶部",就像aim vector定义了相机应该指向的位置。