美文网首页
Unity 2D Animation——2.IK反向动力学

Unity 2D Animation——2.IK反向动力学

作者: Archy27 | 来源:发表于2021-11-12 15:37 被阅读0次

    上一回我们介绍了Unity2D Animation的骨骼绑定,这一回我们讲讲IK。

    1. 什么是IK

    IK是Inverse Kinematic的缩写,也就是反向动力学。是根据骨骼的终节点来推算其他父节点的位置的一种方法。比如通过手的位置推算手腕、胳膊肘的骨骼的位置。逆向动力学的过程在一些场景下十分有用,例如一个机械臂,你需要它去抓取一个放置在特定的空间位置的物体,那么就需要利用逆向动力学去计算出机械臂各个关节的旋转角度,进而驱动机械臂去抓取物体。与之对应的FK是正向动力学,是Forward Kinematic的缩写。正向动力学是根据父节点的运动来影响到子节点的位置的一种方法。

    IK系统能够极大程度的提高角色行走,跳跃,跑步等动画的制作效果和效率,是骨骼动画系统不可缺少的一个功能。大多数的2D骨骼动画软件中都有IK系统,比如Spine,DragonBones等。Unity 2D Animation中也引入了IK系统。

    2. 在Unity中安装IK插件

    Unity2020版本及以上的版本中的2D Animation中内置了IK系统,所以不需要专门安装。Unity2019版如果想使用2D IK系统则需要安装插件。

    打开Unity2019的版本,选择Package Manager包管理器,搜索IK,如果没有搜索到结果的话,需要将Package Manager设置为Preview预览模式。此时Unity会提示你是否确定使用预览包,点击确定。

    打开预览包

    设置好了之后可以搜到IK插件,点击Install安装。

    安装IK插件

    3. 给角色添加IK组件

    在场景中创建一个空物体(Create Empty),将其命名为你的角色名称(Player),选中上一节中我们创建好的角色,将其拖入到这个空物体中。IK系统,以及后面要用到的Animation动画系统,都需要在这个空物体“壳子”上挂载组件,既方便管理有能够保证后面加入的别的组件不会影响到动画或者IK系统。

    新建空壳

    在Player上添加组件——IK Manager 2D(2D反向动力管理器)。

    添加IK组件

    添加完成后可以看到一个IK Solvers的列表,初始状态是空的(List is Empty),这个就是每一个IK关节的控制单元。

    IK solvers

    点击左下角的加号,创建一个IK控制单元,选择Limb(肢体)选项,该选项对应了一般动物和人类的四肢,默认是控制两个骨节。而Chain(链条)则是控制多个骨节的单元,CCD是双向可动链条,FABRIK是单向可动链条。我们创建的是人物骨骼,所以选择Limb。

    创建IK Solvers

    选择之后会创建一个新的节点New LimbSolver2D,我们先从左腿开始做IK,所以可以将此节点命名为LeftLegSolver。

    创建Limb Solver

    然后选中左腿对应的骨骼,在这个骨骼上创建一个空物体作为IK控制的点。将这个点移动到肢端。

    创建空节点

    选中上一步创建的LeftLegSolver,将刚刚创建的空物体拖入到Limb Solver 2D组件的Effector(作用点)中。

    Limb Solver

    点击Create Target生成目标点。

    创建Target

    生成好目标点后可以看到如下结果,左腿两节骨骼均有绿色的点,肢端上有圆圈,圈中也有绿色点。此时表明IK目标点就生成好了。点击目标点进行拖动,可以实现腿部的IK运动效果。

    生成左腿的IK系统

    拖拽脚尖处的圆圈(Target)就可以实现如图显示的IK效果。

    IK运动演示

    重复上述操作,添加其余三个肢体的IK Solver。需要注意的一点,当创建出来的关节反向了,需要点击下图右侧的Flip单选框,反转当前的关节。

    反向关节

    四肢都添加了IK之后们就是如图显示的效果。

    四肢都进行了IK绑定

    4. IK效果演示

    在进行演示的时候一定要选中根节点骨骼进行移动,否则会将关节拉脱位。这样就能看到如下图所显示的IK动作了。

    IK动作演示

    相关文章

      网友评论

          本文标题:Unity 2D Animation——2.IK反向动力学

          本文链接:https://www.haomeiwen.com/subject/zvfozltx.html