Unity3D的反向运动学动画简介和FAQ


请尊重原作者的工作,转载时请务必注明转载自:www.xionggf.com

本文所使用的U3D版本为5.1.2f1。

IK与FK对应,正向运动学就是根骨骼带动节点骨骼运动。而反向运动学就是反过来,由子节点带动父节点运动。

目前,IK只能使用在Humanoid类型的动画中,使用的方法很简单,在Animator窗口中,对于要使用IK的动画状态勾上Foot IK选项,在Base Layer中勾上IK Pass选项。然后在代码中实现OnAnimatorIK函数来控制IK,如下图:





使用3DS Max制作角色动画时是可以指定IK的,导出FBX文件时也能导出这些IK信息。但默认地Unity会过滤掉相关的数据而已。要保留这些信息,则需要导出动画之前做如下的操作:

  1. Set up the bone structure as you please.(按美术的想法指定好角色模型的骨骼)
  2. Create the animations you want, using FK and/or IK(使用FK或者IK创建你要创建的动画)
  3. Select all bones and/or IK solvers(给所有的骨骼选定【使用IK】或者不选定【FK】IK求解器)
  4. Go to Motion->Trajectories and press Collapse. Unity makes a key filter, so the amount of keys you export is irrelevant(在【Motion->Trajectories】面板,点击【Collapse】按钮。U3D会生成一个key过滤器。大部分你导出的key将会不相干)
  5. "Export" or "Export selected" as newest FBX format(导出或者部分导出这个模型为一个新的FBX文件)
  6. Drop the FBX file into Assets as usual(像平常一样把这些FBX文件导出U3D的工程资源目录)

注意,使用Collapse功能会修改动画的帧(使帧间隔变得一样),这样我们很多动作播放的时候就会被改变,比如攻击动作会变得很慢,没有力度。美术应该在Collapse后再次修改动画(或者是在制作动画之前使用Collapse)以保证动画的正确性。

返回首页