本文由 祝你万事顺利 出品,转载请注明出处。
简介
2D Inverse Kinematics包可以让我们将2D IK应用到骨骼和角色的骨骼动画中。2D IK将自动计算移动到目标位置骨骼的移动和旋转。这样我们可以更加容易地摆出姿势和角色的四肢,或实时的操纵骨骼,不再需要关键帧。
工作流
笔者使用的是Unity2019.3 Beta,在此版本中2D IK 在Package Manager中属于Preview Package,直接打开Package Manager找不到2D IK。需要点击 Advanced>Preview Packages
以下工作流将继续2D Animation的工作流,并将2D IK应用到我们的角色骨骼中。
1.使用Sprite Editor创建骨骼
2.给游戏物体添加IK Manager 2D组件。通常这个组件添加在根节点
3.在IK Manager 2D中点击’+'号,添加IK Solvers,IK Solvers将添加一个额外的游戏物体。
4.选中IK Solver,选择Effector,将骨骼添加进去,点击下面的CreateTarget生成一个Target
5.调整Target位置,移动Target骨骼链将随之移动。
IK Solvers
IK Solvers将计算为了达到Target position,Effector的位置和角度和其连接的骨骼的位置和角度。每种IK Solver有自己的算法。
Property | Description |
---|---|
Effector | 默认的骨骼或IK Solver 的位置 |
Target | 指定Effector的目标位置 |
Constrain Rotation | 约束旋转的程度 |
Restore Default Pose | 启用此选项可将骨骼恢复到应用2D IK之前的原始位置。 禁用与效果器当前位置和旋转有关的2D IK。 |
Weight | 调整IK Solver对原始Transform的影响程度 |
Chain Length | IK影响骨骼链中的数量 |
Iterations | 算法的运行次数 |
Tolerance | 指定Effector的目标位置,,何时IK Solver 停止iterating |
IK Manager 2D
IK Manager 2D组件控制IK Solvers。在根节点添加此组件。
1.在根节点添加Manager
2.添加IK Solver
3.根据不同的算法生成IK Solver
IK Solver在上面的顺序中降序遍历,此顺序一般根据骨骼在组织上的形式进行排序。
比如胳膊是躯干的一个子物体,那么IK顺序应该是 IK Solver在arm Solver之上。
Weight
IK Manager 2D中的Weight控制全部的Solvers对骨骼的影响程度
创建一个Target
再创建一个IK Solver后,通过Create Target创建于给Target。Target将反应Effector尝试去到达的位置。在Effector朝着Target Pos移动的时候,IK Solver将计算Effector的旋转和其连接的骨骼的旋转。
API
可以通过代码继承Solver2D类来实现自己的solver。拓展的类将作为一个新的solver显示在IKManager2D的组件中。