跳到主要内容

IK 约束(IK Constraint)

了解如何在 Rive 中使用反向运动学。

关于反向运动学(About Inverse Kinematics)

Youtube

正向运动学(Forward Kinematics)

Rive 中的大多数骨骼动画都是通过旋转骨骼的角度来完成的。子骨骼的位置会根据其父骨骼的旋转而改变。要将链末端的骨骼定位,需要旋转多个父骨骼(链上的骨骼)才能达到所需的姿势。这种类型的骨骼姿势称为正向运动学。

反向运动学(Inverse Kinematics)

反向运动学允许您在链的末端放置一个目标,系统会反向工作以找到其上方父骨骼的有效方向。

图片

这种技术有很多应用,但一些更常见的例子包括让角色指向某个物品或让角色的脚保持在地面上。

如何创建 IK 约束(How to Create an IK Constraint)

要使用 IK,您需要一个骨骼链和一个目标。目标可以是任何对象,不过在大多数情况下,您会想要使用一个样式设置为目标的组。

1. 创建骨骼链和目标(Create a Bone Chain and a Target)

使用 B 快捷键创建骨骼链。然后使用 G 快捷键创建。在检查器中将组的样式选项设置为目标。

图片

使用 B 和 G 快捷键激活骨骼和组工具

2. 添加 IK 约束(Add an IK Constraint)

选择您想要影响的最后一个骨骼,并使用检查器的约束部分添加 IK 约束。

图片

3. 选择目标(Select a Target)

打开约束弹出菜单,使用目标按钮选择在步骤 1 中创建的空组。

图片

4. 测试 IK 系统(Test the IK System)

移动目标组来测试系统是否正常工作。

图片

骨骼数量(Bone Count)

使用骨骼数量属性来设置 IK 系统应该在链上向上工作多远。注意,当选择目标时,受 IK 系统影响的骨骼会被高亮显示。

图片

反转方向(Invert Direction)

使用反转方向开关来交换 IK 系统解算的角度。

图片

强度(Strength)

使用强度属性来控制受影响的骨骼应该多大程度地跟随目标。0% 的强度意味着目标完全不会影响受影响的骨骼。

注意,和 Rive 中的大多数属性一样,强度也可以制作动画。使用这个特性来创建独特的效果或在两个或更多的 IK 约束(每个都有自己的目标)之间混合。

图片

约束顺序(Constraints Order)

约束的顺序很重要。例如,如果一个骨骼有两个 IK 约束,都具有 100% 的强度,第二个约束(最底部的)将取消第一个约束的效果。如果它们的强度不是 100%,那么 IK 系统将在两者之间混合。使用拖放来更改约束的顺序。

图片

使用拖放来更改约束的顺序

多重 IK 约束和嵌套目标(Multiple IK Constraints and Nested Targets)

您可以设置多个 IK 约束来创建更复杂的装配。一个常见的设置是在角色的脚上有一个 IK 约束(注意在我们下面的示例中它只影响 1 个骨骼)和另一个用于腿部骨骼的 IK 约束(两个骨骼)。腿部目标是脚部目标的子级,这样移动脚部也会移动腿部。

图片