U3L16-1-d——2D Animation 反向动力学IK

IK

在骨骼动画中,构建骨骼的方法被称为正向动力学
它的表现形式是,子骨骼(关节)的位置根据父骨骼(关节)的旋转而改变
用我们人体举例子
当我们抬起手臂时,是肩部关节带动的整个手臂的运动,用父子骨骼理解的话就是父带动了子

而IK全称是Inverse Kinematics,翻译过来的意思就是反向动力学的意思
它和正向动力学恰恰相反
它的表现形式是,子骨骼(关节)末端的位置改变会带动自己以及自己的父骨骼(关节)旋转
用我们人体举例子
当我们拿起一个杯子的时候是用手掌去拿,以杯子为参照物,我们移动杯子的位置,手臂会随着杯子一起移动
用父子骨骼理解的话就是子带动了父

IK对于我们的意义

1.瞄准功能
2.头部朝向功能
3.拾取物品功能
等等有指向性的功能时 我们都可以通过IK来达到目的

最大的作用,可以方便我们进行动画制作

2D IK包引入

以下方法仅适用于Unity2020版及以前的版本,Unity2021及之后的版本的IK已经默认集成到了2D模块内无需再手动安装

在Package Manager窗口中引入2D IK工具包
需要在Advanced高级选项中选中Show preview packages(显示预览包)
这样才能看到2D IK相关内容

注意:如果在引入包时报错,需要在Windows防火墙中添加入站规则

2D IK的使用

image

  • IK Solvers:IK解算器,在这里添加

    • image
    • Chain(CCD):可以自定义影响N个关节点,不能反向
    • Chain(FABRIK):可以自定义影响N个关节点,可以反向
    • Limb:只会影响3个关节点
  • IK Weight:权重,当有多个IK控制同一点时权重会影响控制的百分比

  • Restore Default Pose:回复默认位置

image

  • Effector:默认的IK点位置
  • Target:会根据IK点位置生成真正的IK点对象
  • Flip:反向
  • Constrain Rotation:约束旋转程度
  • Solve from Default Pose:从默认姿势进行求解计算
  • Weight:权重

CCD Solver 2DFabrik Solver 2D 参数是一样的,两者的区别在于前者的根骨骼不能拉到反向,后者可以

image

  • Effector:默认的IK点位置
  • Target:会根据IK点位置生成真正的IK点对象
  • Chain Length:IK影响的骨骼数量
  • Iterations:算法运行的次数
  • Tolerance:容错程度
  • Velocity:速度
  • Constrain Rotation:约束旋转程度
  • Solve from Default Pose:从默认姿势进行求解计算
  • Weight:权重