核弹 - Matrix4相机约束锁定Z轴旋转

3
我正在使用The Foundry的Nuke构建一个插件,模仿Maya的动画约束行为。我有一个父对象、一个子对象,以及点、方向、目标、父级约束的选项。这些都运作得相当不错,然而我目前最大的问题是目标约束。
一些背景: 使用Nuke的Matrix4类。 值得注意的是,该矩阵是一个4x4的矩阵,其中第一行到第三行的前3列应用于旋转/缩放,第一行到第三行的最后一列是平移(X,Y,Z)。

Vector3类中, 我正在获取源位置和目标位置。目标-源= ST 然后我设置一个Y平面(一个倒置,一个不是) 然后我得到我的ST点和Y平面的叉积,然后再得到我的ST和倒置的Y平面的叉积。(当父对象在子对象后面时要反转它) 然后我得到我的ST和my ST.cross(y_plane)结果的叉积。

瞄准约束实际上运作良好,但当父对象处于某些位置时,我的相机(子对象)会产生很多Z旋转。我想能够避免这种Z旋转。有人知道如何做吗?

1个回答

1
如果您正在模拟Maya的约束系统,Maya通过up vector处理Z旋转,该向量将调整您的Z旋转以与五个选项之一对齐:
  • scene up 将相机的顶部对准+Y
  • object up 将相机的顶部对准第三个对象
  • object rotation up 将相机的Z旋转匹配到第三个对象的XYZ旋转
  • vector 将相机的顶部对准该向量
  • none 不尝试将相机的顶部定位到任何东西。这可能是您当前的情况。
此外,还有一个up vector,它定义了“相机的顶部”就像aim vector定义相机应指向哪里一样。

这是很棒的信息 - 你有什么阅读材料可以帮助我实现它吗?我不确定如何/在哪里插入它。谢谢! - Alex
我希望我知道。我想象它有点像有一个第二个约束,只影响Z旋转,但我不确定。 - mhlester
当你完成插件时请告诉我,我很想在Nuke中拥有一个约束系统 :) - mhlester
嘿 - 它已经完成了,而且非常棒,感谢帮助!- 不幸的是,它是为我的公司建立的,我不能分享它 :( - Alex
没问题。恭喜你完成了!听起来像是一个很棒的工具。 - mhlester

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接