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:权重