团结引擎中结合 AnimGraph 来实现运行时的 IK。AnimGraph 提供了 AnimationIKNode 节点来对动画添加 IK 效果,该节点可以关联 TRig 资产,在运行时修改 IK 目标的相关设置。可以在在添加 IK Node 后的 AnimGraph Inspector 界面关联 TRig 资产,也可以直接将 TRig 资产拖入图中自动生成 IK Node。
当 IK 节点的 Input 为空时,它将以对应 Avatar 的默认姿势作为输入姿势,它也可以使用 Clip 节点或者任意的动画流作为输入。
选中 IK 节点后,可在 AnimGraph Inspector 界面下配置 IK 目标的位置或旋转,具体设置如下:
设置为 Ignore 时,该目标的位置/旋转将同其绑定的骨骼位置/旋转,不发生变化;
设置为 Driven by Port 时,该目标的位置/旋转将由端口进行控制,此时 IK 节点会自动开放两个端口:
设置端口:用于设置目标的位置/旋转;
权重端口:用于调节该目标对 IK 计算的影响程度,默认为 1.0。
这两个端口的参数可直接在 Drawer 中修改,也可通过连接参数节点(Parameter Node)实现动态设置。此外,还可在 AnimGraph Inspector 界面中修改参数的相对坐标系,默认下为世界空间(Global),也可切换为角色空间下相对于目标骨骼的相对空间(Relative)。
设置为 Driven by Bone 时,该目标的位置/旋转将由 驱动骨骼(Driver Bone) 进行控制,同样提供了权重端口用于调节权重。驱动骨骼通过名字进行匹配,支持两种类型:
角色自身骨骼
额外添加的游戏对象(需确保该对象属于角色层级下,非骨骼类型的驱动对象会自动完成绑定)。
通过以上设置,可灵活调整运行时 IK 目标的控制方式,适配不同动画逻辑需求。