如果模型由两个立方体组成,则上部立方体和下部立方体沿z轴对齐,下部立方体是上部立方体的父级。
提供两个骨骼动画:
动画A:上方立方体保持静止,下方立方体顺时针旋转-z。
动画B:上方立方体保持静态,下方立方体保持静态
骨架动画文件存储了本地转换。
也就是说,在动画A中,较低的立方体可能有两个关键帧: 第0帧:旋转0度,第50帧:360度旋转
然后按
混合A和B.A:upper_weight = 1 lower_weight = 0
B:upper_weight = 0 lower_weight = 1
什么是正确的结果?
一个。上部和下部都保持静态
湾上方立方体逆时针旋转
我认为他们应该保持静止, 它融入了全球空间, 因为A的权重较低= 0,意味着忽略较低的转换?
但是如果我把它们混合在当地空间, 根据A立方体的局部旋转,它将旋转。
我谷歌并看到有人说它可以更好地融合本地变换,但我不认为它给出了正确的结果,任何建议?
答案 0 :(得分:0)
我认为他们应该保持静态,这是在全球空间中的混合,因为A的权重较低= 0,意味着忽略较低的转换?
没有
你说上半身是下半身的孩子。这意味着如果下半身具有局部旋转,则此旋转会影响该骨骼的每个孩子的“全局”旋转。
因此,A的上半身的“全局”旋转将是360度旋转。即使你屏蔽了下半身的变形,那仍然是A动画数据中定义的累积旋转。因此,如果您的动画数据存储为“全局”变换,那么即使局部变换是静态的,A的上半身仍将具有该旋转。
这是为什么动画不使用“全局”(更准确地说,模型相对)旋转的主要原因。如果您希望能够编写多个动画,唯一合理的方法是在本地,每个骨骼的动画相对于其父动画。