此处为 3D TD,定义“Bezier 曲线”和沿它的方向以及控制对象的变换。我在插入之间的“向上向量”Control Objects
时遇到了问题,这种方式可以让我在控制之间有超过 180 度的差异,所以我可以扭曲多少。
我正在使用 SideFX Houdini,它有一种类似 C 的语言VEX
来实现它们。在这里,您可以看到控制项、Bezier 句柄(青色、黄色)和其中之一的变换面板。
为了生成帧,贝塞尔曲线被重新采样为折线,并从每个Control Object
对应点开始,有一个平行帧传输到Control Object
对应点。
这将导致帧的连续性中断,所以我所做的是围绕切轴进行加权旋转,因此帧的“Up Vector”逐渐与下一个Control Object
“ Up Vector”对齐。
问题是这种对齐是通过检查两个向量之间的角度来完成的,帧传输向上和下一个Control Object Up
在同一平面上。最大的不同是180度。除此之外,它会翻转到另一边:带有翻转帧的剪辑
现在,如果应用这种扭曲或滚动,我可以拥有超过 180 个,作为帧传输和后续对齐的偏移,但这是一个额外的步骤。 扭曲超过 180 作为偏移
我知道在处理矩阵时没有转弯的概念,因此我从与Euler构成的对象中提取的内容可能是不可能的。但我有一种感觉,可能有一个涉及四元数的解决方案,我通常将它们用作Axis-Angle,而不是我在概念上完全掌握它们。
我的问题似乎是我如何将一个控制对象与下一个控制对象联系起来,我可以掌握从一个控制对象到另一个控制对象需要多少扭曲。
寻找我应该研究的参考文献来对此进行排序。如果它甚至可能......
谢谢