融合上半身/下半身、全局或局部空间的骨骼动画



如果模型由两个立方体组成,则上立方体和下立方体沿 z 轴对齐,下立方体是上立方体的父立方体。

给出两个骨骼动画:

动画A:上立方体保持静止,下立方体顺时针旋转-z。

动画 B:上立方体保持静态

,下立方体保持静态

骨骼动画文件存储本地变换。

也就是说,在动画 A 中,下立方体可能有两个关键帧:帧 0:旋转 0 度,帧 50:旋转 360 度

然后混合 A 和 B

答:upper_weight = 1 lower_weight = 0

B: upper_weight = 0 lower_weight = 1

正确的结果是什么?

A. 上下都保持静止

B.上立方体逆时针旋转

我认为他们应该保持静止,这是在全球空间中的融合,因为 A 的较低权重 = 0,意味着忽略较低的变换?

但是如果我将它们混合在本地空间中,根据A上立方体的局部旋转,它将旋转。

我谷歌并看到人们说混合本地转换更好,但我认为它没有给出正确的结果,有什么建议吗?

我认为它们应该保持静态,即在全局空间中混合,因为 A 的较低权重 = 0,意味着忽略较低的变换?

不。

你说上半身是下半身的孩子。这意味着,如果下半身有局部旋转,这种旋转会影响该骨骼的每个子项的"全局"旋转。

因此,A上半身的"全局"旋转将是360度旋转。即使你屏蔽了下半身的变换,这仍然是 A 的动画数据中定义的累积旋转。因此,如果您的动画数据存储为"全局"转换,则即使局部转换是静态的,A 的上半身仍将具有该旋转。

这是动画不使用"全局"(更准确地说,模型相对(旋转的重要原因。如果希望能够合成多个动画,则唯一合理的方法是在本地进行,每个骨骼的动画相对于其父项。

最新更新