今天看了一下骨骼动画系统的内容,对一起认识比较模糊的地方有了一些新的理解。仅以此文小计以备忘。
骨骼动画中每根骨骼记录了相对于父骨骼的transform数据。在骨骼动画更新过程中需要从骨骼树的根节点开始计算出所有骨骼相对根节点的transform。然后根据骨骼原始相对根节点(一开始需要计算出一根原始状态的transform的逆transform)的transform数据计算出一根自身偏移transform。
蒙皮的时候依据这个偏移transform对相应的顶点进行偏移计算即可得到蒙皮结果。
(1)为什么每根骨骼记录的是相对父节点的变换,而不是直接记录相对根节点的变换
原因:如果不考虑骨骼动画之间的差值是可以直接记录相对根节点的偏移的。甚至应该可以直接记录最终的偏移transform数据。考虑到差值的话考虑大差值动画必须是相对父骨骼的数据才能得到一个比较正确的差值结果。