制作骨骼动画
我们看看这几步操作后,我们得到了那些数据:
1.每个皮肤顶点的初始世界坐标。
2.每个骨骼关节顶点的初始世界坐标。
3.每个顶点被骨骼顶点的影响信息。
4.骨骼如何移动。
骨骼动画原理
核心: 通过骨骼带动皮肤运动,也就是通过骨骼的移动动态计算mesh上的点的位置
过程:
1.将mesh上的点转换为骨骼空间上的点。
骨骼空间就是以关节为原点确定的空间,并不是一个实体。
2.通过缩放、旋转、平移将骨骼移动到新的位置。
3.根据骨骼的新位置计算mesh顶点新世界坐标(骨骼移动,但mesh顶点与骨骼的相对位置不变,所以产生了顶点随骨骼移动的感觉),若一个顶点被多个骨骼影响,则要进行顶点混合计算新世界坐标。
举例
初始位置(绑定姿势):
骨骼移动后的位置:
1.计算小臂上一点S在小臂空间中的位置。
这个就要根据初始的骨骼位置和mesh上顶点的位置来计算了,也就是常说的绑定姿势状态。
先说一下该例中每个坐标的意义:
(x1,y1,z1):左肩关节SL的世界坐标。
(x2,y2,z2):左肘关节在以左肩关节为原点的坐标系本地坐标。
(x3,y3,z3):附着于左小臂上的皮肤上的一点S的世界坐标。
这里为了简单,假设所有的关节都没有经过旋转和缩放