FBIK

为你的角色创建FBIK。

Choose your operating system:

Windows

macOS

Linux

使用Control Rig的全身反转运动学(FBIK)功能,在Control Rig中构建具有高度控制和灵活性的rig。整体解算器方法在 基于位置IK 框架的基础上构建,可实现速度更快的rig性能、逐骨骼设置、首选角度、挤压和拉伸等。FBIK旨在充当Control Rig中的程序调整工具,例如用于地面对齐或手臂伸展行为。

本文档概述了如何创建FBIK节点及其各种功能。

先决条件

  • FBIK是Control Rig图表中的节点,因此你应该了解Control Rig编辑器。

  • 必须启用 FullBodyIK 插件。启用方法是,在虚幻编辑器菜单栏中找到 编辑(Edit)>插件(Plugins) ,并找到 FullBodyIK 。确保启用插件并重启编辑器。

    全身ik插件

  • 你必须已经为角色创建Control Rig资产,并且知道如何创建功能按钮。有关如何执行此操作的信息,请参阅 Control Rig快速入门指南 页面。

创建和设置

创建FBIK节点,然后将骨骼和执行器分配给相应的引脚,可以在Control Rig中实现FBIK。

首先,在Control Rig图表中点击右键,并在上下文菜单中,选择 层级(Hierarchy)>全身IK(Full Body IK) 。这将创建Full Body IK节点。将该节点连接到 Forwards Solve 节点。

创建full body ik control rig节点

Rig图表设置

接下来,在Full Body IK节点上设置 根(Root) 骨骼属性。在标准的全身设置中,这可能是臀部或骨盆骨。

全身ik根骨骼

为FBIK系统创建并添加你选择的功能按钮。通常,这些功能按钮对应于你要影响的四肢,并且基于链的主要结束骨骼。在此示例中,为头、手和脚创建了功能按钮。

全身ik功能按钮

执行器设置

你需要为添加到图表中的每个功能按钮添加执行器引脚。为此,请点击 执行器(Effectors) 属性旁边的 添加(Add)(+) 按钮。需要为每个功能按钮创建执行器。

全身ik执行器

展开执行器条目之一,将显示其属性。在每个执行器中,你将为功能按钮设置相应的 骨骼(Bone) 值,然后从相应的 Get Transform 节点连接变换(Transform)引脚。

全身ik执行器

以相同的方式将每个执行器连接到其对应的Get Transform节点,直到连接所有执行器和功能按钮。

全身ik执行器

设置结果

现在你的角色应该有了一个基本的FBIK设置。你可以在Control Rig视口中操作功能按钮,查看效果。

全身ik执行器

骨骼设置

根据你的设置,基础FBIK行为可能不会按预期运行。这可能是因为没有启用某些骨骼设置。 骨骼设置(Bone Settings) 是Full Body IK节点中的属性,用于控制受FBIK影响的每个骨骼的行为。

点击 骨骼设置(Bone Settings) 旁边的 添加(Add)(+) 按钮,然后在 骨骼(Bone) 属性中指定你要影响的骨骼,将骨骼设置(Bone Settings)添加到Full Body IK节点。每个骨骼设置仅影响单个骨骼,因此你可能需要根据你的rig遇到的特定问题,添加多个骨骼设置。

全身ik骨骼设置

人体模型示例中可以看到以下问题:

  • 臀部的旋转和平移太激进。

    fbik臀骨盆

  • 腿部没有足够弯曲,外观僵硬。

    fbik腿部弯曲

  • 脚踝旋转过于朝上,姿势不自然。

    fbik脚踝弯曲

骨骼设置(Bone Settings) 可以用于解决此类问题,以便支持你偏好的IK设置。

旋转和位置刚度

旋转(Rotation)位置刚度(Position Stiffness) 属性用于控制IK链中受功能按钮和执行器影响的程度。使用这些属性更改骨盆骨骼受功能按钮移动影响的程度。值为 0 时,完全自由移动,而值为 1 时会完全锁定骨骼,使其无法移动。

fbik刚度

在人体模型示例中,骨盆骨骼通过骨骼设置指定,并且 旋转(Rotation)位置刚度(Position Stiffness) 的值设置为 0.8 。在这种情况下,仍然可以做一些移动。

fbik刚度

偏好角度

可以使用偏好角度(Preferred Angles)优先关节沿特定轴旋转,达到执行器。在人体模型示例中,它们可以用于解决腿部和膝盖的僵硬问题。

骨骼设置的底部旁边是 偏好角度(Preferred Angles) 的属性。你还必须确保启用 使用偏好角度(Use Preferred Angles) 才能使用这些偏好角度。

fbik偏好角度

你指定的偏好角度(Preferred Angle)属性取决于角色的类型及其关节结构。对于此示例,人体模型的膝盖应该沿着 Z轴 向正方向弯曲,因此在本例中,Z 属性的值将设置为 45

fbik偏好角度

限值

限值(Limits) 可以用于限制骨骼轴沿IK链旋转的范围,或完全锁定该旋转。这些设置位于刚度(Stiffness)和偏好角度(Preferred Angles)属性之间。

fbik限值

每个轴都有允许以下限制的设置:

  • 自由(Free) ,允许骨骼自由移动。

  • 有限(Limited) ,只允许在指定范围内移动。如果选择有限(Limited),则使用 最小值/最大值(Min/Max) 属性来定义移动范围。

  • 锁定(Locked) ,禁用沿该轴的移动。

在人体模型示例中,这些限值可以用于纠正不自然的脚踝旋转问题。 Z最小值(Min Z) 的值设置为 -70Z最大值(Max Z) 的值设置为 70Z 轴设置为 有限(Limited)

fbik限值

排除骨骼

根据你的rig需求,在某些情况下你可能要从FBIK解算中排除骨骼。在纠正看起来不自然的姿势或简化FBIK行为方面,此功能非常有用。

fbik排除骨骼

建议排除骨骼,而不是专门使用骨骼设置(Bone Settings)将骨骼设置为完全僵硬或锁定。

要排除骨骼,请点击 排除骨骼(Excluded Bones) 旁边的 添加(Add)(+) 按钮,然后从下拉菜单中选择要排除的骨骼。

fbik排除骨骼

节点引用

以下是全身IK节点上所有引脚和设置的列表。

名称

说明

根(Root)

FBIK链的根骨骼。

骨骼(Bone)

IK链的端点骨骼,对应于功能按钮。

变换(Transform)

用于控制端点骨骼的变换。这通常是由链接到功能按钮的 Get Transform 节点提供的,该功能按钮与端点骨骼共享相同的变换信息。

偏移Alpha(Offset Alpha)

此属性衡量执行器骨骼到达目标变换的能力。设置为 1 时,执行器会尽力达到目标变换。设置为 0 时,执行器保持在输入姿势。

强度Alpha(Strength Alpha)

此属性影响此执行器对IK链的作用强度。设置为 0 时,执行器不会将IK链拉向自己,其他执行器优先。

骨骼(Bone)

应用这些设置的指定骨骼。可以是 执行器(Effectors)根(Root) 之间层级中的任何骨骼。

旋转/位置刚度(Rotation/Position Stiffness)

应用于骨骼旋转或平移属性的刚度。值为 0 表示可以完全自由移动,值为 1 则是完全锁定骨骼。

XYZ限值设置

所选骨骼轴上允许的移动类型。

  • 自由(Free),允许骨骼自由移动。

  • 有限(Limited) ,允许在指定范围内移动。如果选择有限(Limited),则使用 最小值/最大值(Min/Max) 属性来定义移动范围。

  • 锁定(Locked),禁用沿该轴的移动。

XYZ最小值/最大值(Min/Max XYZ)

如果将 有限(Limited)限值设置(Limit Setting) 设置,则将使用XYZ最小值/最大值(Min/Max XYZ)属性指定允许的移动范围。

使用偏好角度(Use Preferred Angles)

启用使用 偏好角度(Preferred Angles)

偏好角度(Preferred Angles)

指定当IK链被挤压时,骨骼在各个轴上旋转的程度。

迭代(Iterations)

增大此值,直至执行器收敛于预期目标位置。增加此值也会增加FBIK链的CPU成本。增加 刚度(Stiffness) 、高 质量乘数(Mass Multiplier)和 旋转限值(Rotation Limits)** 都会影响收敛速度,从而需要对此值进行更多调整。

质量乘数(Mass Multiplier)

这是全局值,影响骨骼对旋转和平移的抵抗程度。值的范围通常为 0.0 到 5.00.0 表示完全活络, 5.0 表示非常僵硬。 质量乘数(Mass Multiplier) 值越高,实现收敛所需的迭代越多。

允许拉伸(Allow Stretch)

启用此设置将导致骨骼沿着IK链平移,以到达执行器。位置刚度值会影响此结果,其中刚度越高,拉伸较少。

固定根(Pin Root)

启用此设置会将根骨骼的平移锁定为初始姿势。旋转仍会受影响。

绘制比例(Draw Scale)

控制调试行大小的乘数。

绘制调试(Draw Debug)

启用此设置会显示沿着此FBIK节点IK链的所有受影响骨骼。