Nuke - Matrix4相机约束锁Z旋转

时间:2015-05-28 01:13:25

标签: c++ matrix camera constraints nuke

所以我在Nuke(来自The Foundry)中构建一个插件,它将模仿Maya的动画约束行为。我有一个父母,一个孩子,然后选择点,方向,目标,父约束。这一切都运作良好,但我目前最大的问题是Aim约束。

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

Vector3 classes中的

我得到了源头和目标位置。 Target-source = ST 然后我设置一个Y平面(一个倒,一个不) 然后我得到了我的ST点和Y平面的corss乘积,然后我的ST和倒Y平面的另一个交叉积。 (当父母在孩子身后倒置时) 然后我得到了我的ST和我的ST.cross(y_plane)

的结果

目标约束实际上效果很好,但是当父级处于某些位置时,我在相机(孩子)中获得了很多Z旋转。我希望能够避免这种Z旋转。有人会碰巧知道怎么做吗?

1 个答案:

答案 0 :(得分:1)

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

  • scene up将相机的顶部对准+Y
  • object up将相机的顶部对准第三个物体
  • object rotation up将相机的Z旋转与第三个对象的XYZ旋转相匹配
  • vector将相机的顶部对准那个载体
  • none没有尝试用任何东西定位相机的顶部。这必须是你目前所拥有的。

此外,还有一个up vector,它定义了相机的顶部和#34;就像aim vector定义相机应指向的位置一样。