逆向运动学
本教程说明如何在 PixelOver 中使用逆向运动学(IK)。
你将学习如何创建骨骼链、为其附加图像、设置 IK 约束,以及使用目标(以及可选的极向目标)来控制骨骼链。
以下是关于如何在 PixelOver 中制作 IK 设置动画的视频示例。
Hey, let's review another #PixelOver functionality, inverse kinematics ! Used to animate bones by moving the chain target.https://t.co/FjZM9FyuZi #GodotEngine #madewithgodot #indiedev #pixelart #gamedev pic.twitter.com/n0FEGmJp6l
— Deakcor (@deakcor) November 28, 2022
什么是逆向运动学?
逆向运动学(IK)让你能够通过移动目标来控制骨骼链。
你无需手动旋转每根骨骼,骨骼链会自动求解旋转,使链的末端跟随目标。
IK 非常适合:
- 手臂和腿
- 尾巴和绳索
- 触手
- 任何需要快速摆姿势和制作动画的绑定
IK 与静止 / 姿态工作流
逆向运动学仅在姿态模式下激活。
- 在姿态模式下,IK 约束已启用,骨骼链会跟随目标。
- 在静止模式下,IK 约束被禁用。此模式用于在不进行任何 IK 求解的情况下设置骨骼的默认放置。
这让你能够在静止模式下构建整洁的绑定,并在姿态模式下安全地制作动画。
1. 创建骨骼链(并附加图像)
创建骨骼
- 选择骨骼工具
- 在视图中点击以创建第一根骨骼
- 再次点击以将下一根骨骼创建为子级
- 重复直到获得完整的链
典型的链如下所示:
- 上臂 → 前臂 → 手
或 - 大腿 → 小腿 → 脚
提示
保持你的链简单。在大多数情况下,一条肢体使用 2 或 3 根骨骼就足够了。
将图像附加到链
要为像素画角色制作动画,通常的工作流是将图像部件附加到骨骼上。
- 导入你的图像(或使用绘图工作流将角色拆分为部件)
- 在场景树中,将每张图像放在应驱动它的骨骼下
(使用剪切/粘贴或拖放建立父子关系)
结构示例:
- 骨骼_上臂
- 图像_上臂
- 骨骼_前臂
- 图像_前臂
- 骨骼_手
- 图像_手
信息
将图像与骨骼建立父子关系可确保图像自动跟随骨骼的变换。
2. 添加 IK 约束(在链的第一根骨骼上)
IK 应用于链的根骨骼(第一根骨骼)。
- 选择链的第一根骨骼
- 查看属性面板
- 在约束部分设置 IK 约束
3. 创建或选择 IK 目标
IK 目标是骨骼链试图到达的对象。
创建目标
有两种常见的选择:
- 创建一个专用的 IK 目标对象
- 复用现有对象作为目标
创建后,在 IK 约束中将其指定为目标。
目标的最佳实践
为使绑定整洁,强烈建议:
- 清晰地重命名目标
示例:IK_Hand_Target、IK_Foot_Target - 将其长度设为
0px(使其表现得像一个控制点)
这让目标更易于管理,并防止它表现得像一段可见的骨骼。
提示
目标旨在作为控制器,而非变形器。将其保持为 0px 可让你更精确地定位。
4. 配置角度约束
角度约束强制骨骼链应如何弯曲。
这对于以下情况很有用:
- 防止不自然的弯曲
- 强制肢体朝正确的方向弯曲
- 在制作动画时稳定姿态
正角度约束 vs 负角度约束
根据你绑定的朝向,骨骼链可能需要弯曲:
- 顺时针
- 逆时针
这就是约束可以设为正或负角度范围的原因。
使用示例:
- 肘部应只朝一个方向弯曲(不能向后)
- 膝盖应只向前弯曲
提示
如果链朝错误的方向弯曲,尝试切换角度约束的符号(正 ↔ 负)。
5.(可选)添加极向目标以获得更好的控制
极向目标有助于控制 IK 链的平面,使弯曲方向更稳定、更可预测。
极向目标特别适用于:
- 2D 中的肘部和膝盖
- 链可能不可预测地扭曲的 3D 绑定
- 角度约束不可用或不足的设置
使用极向目标
- 创建一个新的目标对象(或复用现有对象)
- 清晰地重命名它
示例:IK_Elbow_Pole、IK_Knee_Pole - 在 IK 约束中将其指定为极向目标
- 移动极向目标以控制链的弯曲方式
一条简单的规则:
- 链会朝极向目标弯曲
提示
将极向目标放在肢体的稍侧方(而非 IK 目标的正上方),以便求解器有明确的弯曲方向。
警告
在 2D 中,避免在与极向目标相反的方向使用角度约束,因为这可能导致意外行为。 如果你使用极向目标,通常最好将角度约束设为自由,或确保它们不与极向方向冲突。
小结
要在 PixelOver 中设置 IK:
- 创建一条骨骼链
- 将图像附加到骨骼(在场景树中建立父子关系)
- 在第一根骨骼上添加 IK 约束
- 创建并指定一个目标(重命名它并将长度设为
0px) - 使用角度约束控制弯曲方向(正或负)
- 可选择添加极向目标以获得更稳定、更精确的控制(尤其是在 3D 中)
更进一步
设置好 IK 后,你可以:
- 使用动画为目标制作动画
- 将 IK 与关键帧和导入的动画结合
- 使用多条 IK 链(手臂 + 腿)构建完整的角色绑定