(1)正向运动学方法 正向运动学是设置关节动画的有效方法。通过对关节角设置关键帧,得到相关联的各肢体的位置,这是正向运动学方法。 一种实用的解决方法是实时纪录真人各关节的运动数据。这就是运动捕获。为了克服运动捕获方法缺乏灵活性的缺点,Witkin通过混合动画曲线来编辑捕获的数据,从而可能建立可重用的运动库、运动过渡、运动时间的缩放。Gleicher提出了运动重定向的概念,把一个角色的动画赋给另一个具有相同关节结构的角色。 (2)逆向运动学方法 逆运动学方法可以减少正运动学方法的工作。用户指定末端关节的位置,计算机自动计算出各中间关节的角度。随着关节复杂性的增加,逆运动学的计算复杂性急剧增加,需要进行数值求解。Boulic提出了适合关节运动编辑的正向和逆向运动学结合的方法。他把要求的关节空间运动插入逆向运动学控制机制中,动画师可以对已有的关节运动作交互的基于目标的修改。 (3)动力学中的控制问题 与运动学相比,动力学方法能生成更复杂更逼真的运动,而且需要指定的参数较少,但是计算量很大,而且难以控制。动力学方法的一个重要问题是对运动的控制。若没有有效的控制,用户就必须提供力和力矩这样的控制指令,这几乎是不可能的。一种方法是预处理法,把所需的约束和控制转换成适当的力和力矩,然后包括到动力学方程中。另一种方法将约束以方程形式给出。如果约束方程的个数与未知数个数相等,则可以用稀疏矩阵法快速求解。如果系统是欠约束的,就会有无穷多解。 (4)时空约束动画 动画师的一种任务是,指定关节的运动,使之以符合物理规律的方式达到给定的目标,例如投篮球到球框中。为此,Witkin提出了时空约束方法。动画师指定角色的任务,角色的物理结构(如几何、质量、连接性质等),角色利用的物理资源(如肌肉)。这些描述, 加上牛顿定律,构成一个约束的优化问题。问题的解是符合物理规律的运动。 |