从源角色的运动中获得的骨骼状态称为关键动作状态,是角色运动过程中标准的动作状态,类似于动画制作中的关键帧。关键动作状态的迁移过程可描述为
(1)针对源角色的每个关节点,根据关节点位置和前后两侧关节点位置,计算该关节点的旋转角;
(2)将旋转角同步到目标角色的对应关节点上;
(3)旋转角同步完毕,针对每一条关节链,根据旋转角更新关节点的位置,从而求得整个骨骼框架中的关节点新位置。
关键动作状态迁移中目标角色关节点位置求取的原理如图5-6所示,通过同步旋转角的方法,剔除了两角色骨骼长度不同的影响。图中的P0P1P2P3为源角色的一条关节链,Q0Q1Q2Q3为目标角色中与之对应的关节链。
图5-6 关键动作状态迁移原理图
根据其骨骼框架查找各关节点两侧相连的骨骼,由相连的三个关节点的位置,计算中间关节点的旋转角,该旋转角用式(5-2)进行计算,即
式中,αBet是两骨骼之间的几何夹角;和
分别是从当前关节点P0出发的两侧骨骼向量;lengthl和lengthr分别是它们的长度;flag是旋转角是否大于180°的标志,其计算见式(5-3),(x0,y0)、(xl,yl)和(xr,yr)分别是当前关节点与上下关节点在视频中的对应点位置坐标。(www.xing528.com)
根据旋转角αBone和虚拟角色的骨骼长度,可以利用式(5-4)计算当前关节点的下一关节点位置,其中α即为关节点旋转角。
当某一关节点的旋转角发生变化,则从该点开始,同一链的关节点都需要重新计算其位置,最终可以得到对应于当前动作状态的虚拟角色动作状态。
关键动作状态的迁移步骤可以描述为
(1)通过P0P1P2点的位置计算αB′one;
(2)使用该角度设定2D虚拟角色中Q1的旋转角,使;
(3)根据Q0Q1的位置计算Q2的新位置;
(4)使,实现Q0Q1Q2部分的姿态与P1P2P3部分相同。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。