有时你需要程序化的驱动你的角色骨骼. 例如你可能需要你的角色的头注视3d空间的某个点. 这个活最好让脚本来干. 幸运的是, Unity做这个很容易. 在Unity 中所有骨骼来驱动蒙皮网格(skinned mesh)的变换(Transforms). 因而你可以给角色的骨骼写脚本,就和其他GameObject一样.
很重要的一点是动画系统updates the Transforms 是在Update() function调用之后 ,LateUpdate() function 调用之前. 因而如果你要调用 LookAt() function 你应该在 LateUpdate() 中调用,覆盖动画播放.
布娃娃系统Ragdolls 也是用同样的方法制作出来的. 你可以简单的把刚性物体(Rigidbodies), 角色关节(Character Joints) 和 胶囊碰撞体(Capsule Colliders)连接给不同的骨骼. 这样物理系统就可以作用于蒙皮角色(skinned character).
动画播放时为了让角色受动画系统的控制,可以设置物体为动力学物体(isKinematic),当需要让他受物理控制时把该属性取消。
角色死亡时,可以销毁原始模型,创建一个布娃娃代替。同样,飞机车辆等的爆炸效果,最好也是替换成另外一个由一批带有刚体的部件组成的预制件,部件上可以增加一些粒子特效来实现烟雾火焰等效果。
动画融合(Animation Blending)可以实现动作转化时的平滑过渡。动画混合(Animation Mixing)和附加动画(Additive Animations)可以削减游戏创建的动画片段的数量。动画可以和其他动画以各种组合一起使