需求:
做一个火柴人,做呼吸状动画等待,身体中箭后,射中头部头、身分离;射中身体头、身、脚分离;射中脚 身脚分离;分离后根据物理状态自由落地。
方案一:
如上图,节点包含身体各个部位,之后在各各部位上设置物理刚体和贴图。
1、身体中箭,采用物理刚体碰撞完美解决。
2、中箭后根据不同的碰撞位置,对不同的刚体使用关节链接,形成不同地方锻炼和物理肢体挑落,完美解决。
3、当小人在等待时播放身体起伏的呼吸动画或小人射箭时播放射箭动画时(动画采用Animation组件),此时在动画中旋转大腿节点(NODE)时,由于小腿节有物理刚体导致小腿不跟着旋转(不论小腿刚体属性是任何时),小腿都不会跟着旋转(如下图)。
在动画编辑器中,大腿可带动小腿旋转。因为大腿是小腿的父NODE
而在网页中,大腿旋转,小腿NODE没有旋转。原因是小腿NODE上有物理刚体,去掉择恢复正常,可是去掉刚体就不能保证小人在做不同动作时,被箭射中不同位置。
方案二:
制作骨骼动画,将所有动画做完,根据骨骼边界自动创建物理刚体,根据骨骼角度自动调整刚体角度。
1、身体中箭,采用物理刚体碰撞完美解决。
2、中箭前播放骨骼动画,中箭后根据刚体变换不同的角度控制骨骼动画人物身体分离。但是极度耗资源