IK重定向器可用于将源角色的3D动画,快速重定向到具有不同骨骼结构和比例的目标角色上,并确保视觉效果依然出色。
IK重定向器使用操作栈来决定姿势和运动数据如何在源骨骼网格体和目标骨骼网格体之间传输。 重定向堆栈是一个模块化框架,可为重定向器添加自定义操作。 你可以移动重定向堆栈中的所有操作,调整操作的顺序。
每项操作都有自己的编辑器界面,具体取决于正在编辑的内容。 操作还可以创建子操作栈,用于执行需要以特定顺序或方法应用的逻辑和计算,扩展现有操作。 根据目标角色,你可能需要在重定向堆栈上使用不同的设置,以便更好地传递动画。
先决条件
操作列表
以下是可用于IK重定向的操作列表。 你可以调整操作栈中各项操作的顺序,也可以根据需要从列表中删除相应的操作。
骨盆运动
骨盆运动(Pelvis Motion)能够将源角色的臀部位置、旋转和平移准确地传递给目标角色,确保姿势和根骨骼运动保持正确。 骨盆运动在IK绑定中充当重定向骨盆,确保平移数据在不同比例的角色之间正确缩放。 这对实现逼真的移动效果和防止动画滑动来说至关重要。
骨盆运动工具会将源资产的骨盆映射到目标资产的骨盆。 骨盆运动操作的所有设置都与骨盆骨骼的运动和旋转有关。 该操作以前被称为根阶段。
这是一项默认操作。 当你点击添加默认操作(Add Default Ops)时,骨盆运动就会出现在操作栈列表中。 骨盆运动的调试操作会显示调试绘制。 它通过LOD阈值来启用和禁用操作可以运行的最大LOD。
骨盆运动设置
默认情况下,骨盆运动操作会从源角色和目标角色的IK绑定中获取已指定的重定向骨盆(如果已在其中定义)。 骨盆运动操作不需要IK绑定,你可以为源角色和目标角色设置自定义骨盆骨骼。
名称 | 说明 |
源骨盆骨骼 | 源骨架上用于拷贝运动的骨盆骨骼。 从下拉菜单中选择要操作的骨骼。 |
目标骨盆骨骼 | 目标骨架上用于拷贝运动的骨盆骨骼 从下拉菜单中选择要操作的骨骼。 理想情况下,这些骨骼应与“源骨盆骨骼”选项下选择的骨骼相对应。 |
骨盆运动 - 地面约束
地面约束(Floor Constraint)能将IK目标约束到地面。 每个目标都可以被约束到地面。 地面是静态的,或者说是世界为0。
名称 | 说明 |
地面约束权重 | 如果设置,地面约束会根据以下规则单独调整骨盆的垂直运动:
地面约束权重的范围是0-1。 默认值为0。 将值设置为1,以启用该选项。 |
源胯部偏移 | 相对于源骨盆骨骼的负垂直偏移量(以厘米为单位)。 调整该值,直到绿点大致位于角色的胯部。 |
目标胯部偏移 | 相对于目标骨盆骨骼的负垂直偏移量(以厘米为单位)。 调整该值,直到绿点大致位于角色的胯部。 |
使用地面衰减(Use Ground Falloff) | 切换该选项的开启和关闭。 |
地面衰减高度百分比(Ground Falloff Height Percent) | 控制地面约束开始混合的高度,此高度为重定向姿势中骨盆高度的百分比。 使用此项可防止地面约束抑制正常高度下的垂直骨盆运动。 值为1时,约束在正常站立高度下处于激活状态。 值为0时,约束仅在离地高度的10%以内时激活。 |
骨盆旋转
将源角色的核心运动、重量和姿势转移到目标角色上。
名称 | 说明 |
旋转透明度 | 在重定向姿势(0)和传入的重定向源(1)之间混合重定向骨盆上的动画。 |
局部旋转偏移 | 使用X、Y、Z坐标对骨盆应用静态本地空间旋转偏移。 |
全局旋转偏移 | 使用X、Y、Z坐标对骨盆应用静态全局空间旋转偏移。 |
骨盆平移
定义了如何将源角色的臀部运动从骨架转移到目标骨架,确保目标角色上的高度、缩放和定位正确。
名称 | 说明 |
平移透明度 | 在重定向姿势(0)和传入的重定向源(1)之间混合重定向骨盆上的动画。 |
局部平移偏移 | 使用X、Y、Z坐标对骨盆应用静态本地空间平移偏移。 |
全局平移偏移 | 使用X、Y、Z坐标对骨盆应用静态全局空间平移偏移。 |
混合到源平移 | 在重定向骨盆的重定向位置(0)和确切源位置(1)之间混合重定向骨盆的平移。 此属性类似于其他重定向工具中所见的“reach”。 |
混合到源平移权重 | 使用X、Y、Z坐标的BlendtoSource每轴混合控制乘数。 |
骨盆平移缩放
调整目标角色臀部相对于动画源的垂直或水平移动量。 该缩放用于校正角色之间的身高和比例差异,防止出现脚悬空、腿过长或躯干扭曲等问题。
名称 | 说明 |
水平缩放 | 缩放重定向骨盆在水平方向上的运动。 你可以将此项与IK目标和平移偏移一起使用,在重定向的角色上创建经过强化或弱化的动作。 |
垂直缩放 | 缩放重定向骨盆在垂直方向上的运动。 你可以将此项与IK目标和平移偏移一起使用,在重定向的角色上创建经过强化或弱化的动作。 |
影响IK设置
确定特定关节链是否使用反向动力学来匹配来源动画的手脚位置。
名称 | 说明 |
影响IK水平 | 如果你正在使用IK目标,当骨盆沿水平轴发生修改时,这些滑块可以控制所有IK目标是否应随骨盆一起移动。 如为0,IK目标停留在重定向后的位置;如为1,相对于修改后的骨盆变换移动。 |
影响IK垂直 | 如果你正在使用IK目标,当骨盆沿垂直轴发生修改时,这些滑块可以控制所有IK目标是否应随骨盆一起移动。 如为0,IK目标停留在重定向后的位置;如为1,相对于修改后的骨盆变换移动。 |
骨盆运动调试
名称 | 说明 |
调试绘制大小 | 调整目标骨盆中调试绘制的大小。 |
调试绘制厚度 | 调整骨盆中调试绘制的粗细度。 |
骨盆运动启用操作
名称 | 说明 |
启用(Enabled) | 打开和关闭该操作。 当某个操作被关闭时,它将被完全跳过,根本不会运行。 |
FK链
FK链(FK Chains)可用于处理目标IK绑定资产上的特定骨骼和骨骼链,将源骨架的旋转、朝向和平移复制到目标骨骼。 这些操作在IK Pass前运行,为每个关节创建基础姿势。 基础操作使用插值以实现更好的匹配。
这是一项默认操作。 当你点击“添加默认操作”时,FK链将会出现在操作栈列表中。 FK链通过LOD阈值来启用和禁用操作可以运行的最大LOD。 调试操作显示调试绘制。
重定向链设置
该设置中的工具执行以下操作:
IK绑定资产(IK Rig Asset):该属性根据资产设置中的默认目标IK绑定属性设置。 如下所示,该资产的骨骼链以可滚动的菜单显示。
你可以为该设置使用单独的目标。
链映射选项:使用不同的筛选选项筛选骨骼:
隐藏映射链(Hide Mapped Chains):隐藏映射到源链的链。
隐藏未映射链(Hide Unmapped Chains):隐藏未映射到源链的链。
隐藏无IK的链(Hide Chains Without IK):隐藏未使用IK的链。
清除过滤器(Clear Filters):清除过滤器选项。
自动映射链(Auto-Maps Chains):根据匹配规则自动分配源。
全部映射(模糊):将所有链映射到名称最接近的源链。
仅映射空(模糊):将所有未映射的链映射到名称最接近的源链。
全部映射(精确)(Map All (Exact)):映射名称相同的所有链。 如果未找到完全匹配项,则不改变映射。
仅映射空(精确)(Map Only Empty (Exact)):映射名称相同的未映射链。 如果未找到完全匹配项,则不改变映射。
清除过滤器(Clear Filters):清除过滤器选项。
FK链重定向
名称 | 说明 |
启用FK(Enable FK) | 允许使用旋转和平移从源角色复制链的形状。 |
旋转模式(Rotation Mode) | 设定如何将旋转从源链复制到目标链。 你可以从以下选项中进行选择:
|
旋转透明度 | 混合FK旋转复制的量。 |
平移模式(Translation Mode) | 设定如何将平移从源链复制到目标链中的所有骨骼。 你可以从以下选项中进行选择:
|
平移透明度 | 混合FK平移复制的量。 |
FK链调试
名称 | 说明 |
绘制链线(Draw Chain Lines) | 视口中每条链上的调试线。 |
绘制单骨骼链(Draw Single Bone Chain) | 视口中单骨链上的调试球体。 |
链绘制厚度(Chain Draw Thickness) | 在目标链绘制中,调试绘制链线的粗细。 |
链绘制尺寸(Chain Draw Size) | 在目标链绘制中,用于单骨骼链的调试绘制大小。 |
根骨骼运动
根骨骼运动(Root Motion)使用专门的设置来生成根骨骼运动,或将其从源传输到目标。 通过直接从源复制,或基于骨盆运动从头创建,生成根骨骼运动数据。
这些设置通常用于重定向动画或姿势。 这是默认操作之一。 当你点击添加默认操作(Add Default Ops)时,根骨骼运动(Root Motion)将出现在操作栈列表中。
骨骼
确定驱动骨骼运动的骨架和链。
名称 | 说明 |
源根(Source Root) | 源骨架的根。 |
目标根(Target Root) | 目标骨架的根。 |
主要源
定义源角色中的哪个特定骨骼链或移动组件作为角色根骨骼运动的驱动力。
名称 | 说明 |
根骨骼运动源(Root Motion Source) | 设定从何处复制根骨骼运动。
根骨骼运动由骨盆生成。 |
目标骨盆(Target Pelvis) | 目标骨架的骨盆。 仅在根骨骼运动源设为目标骨盆时使用。 |
随骨盆旋转(Rotate with Pelvis) | 启用此设置后,从骨盆生成根骨骼运动时,将随着骨盆应用旋转偏移。 这可能导致不必要的旋转,例如当骨盆偏转已设置动画时。 |
高度源
定义使用哪个骨骼的垂直移动来驱动骨盆运动。
名称 | 说明 |
根高源(Root Height Source) | 定义如何设置根骨骼的高度。
|
根骨骼运动偏移
调整源骨架和目标骨架之间骨盆骨骼的空间差异。
名称 | 说明 |
全局偏移(Global Offset) | 在全局空间中对根骨骼应用手动偏移,基于:
|
保持与骨盆的偏移(Maintain Offset from Pelvis) | 仅在从骨盆生成根骨骼运动时应用。 保持目标重定向姿势中记录的根和骨盆之间的偏移。 如为False,根骨骼将直接放置在骨盆骨骼下方。 |
更新子项
确保在重定向动画期间,骨盆的移动或旋转在子骨骼中按比例移动。
名称 | 说明 |
传播给非重定向的子项(Prepare to Non Retargeted Children) | 启用此项后,变换目标中不属于重定向链的所有子项。 |
重映射曲线
重映射曲线(Remap Curves)用于根据自定义曲线,将源的输入值映射到目标的新输出值。 通过调整曲线的形状,你可以控制输入范围如何转换为新的输出范围,从而实现非线性和定制化的数值变换。
这是默认操作之一。 当你点击添加默认操作(Add Default Ops)时,重新映射曲线将出现在操作栈列表中
复制曲线
将运动从一个骨架转换到另一个骨架。
名称 | 说明 |
拷贝所有源曲线(Copy All Source Curves) | 定义是否将所有曲线复制到目标动画实例。
该设置在导出重定向的动画时也适用。 |
重映射曲线
将命名曲线从源角色映射到目标角色。
名称 | 说明 |
重映射曲线(Remap Curves) | 切换曲线映射开关。 |
要重映射的曲线(Curves to Remap) | 将源曲线和目标曲线名称对添加到数组中,以进行重新映射。 重定向时,源曲线的动画会被重定向到目标骨骼网格体上的曲线。 可用于驱动混合形状或其他下游系统。 默认情况下,IK重定向器会自动将所有同名曲线从源复制到目标。 仅在目标曲线名称不同时才需要重新映射。 |
重映射曲线启用操作
名称 | 说明 |
启用(Enabled) | 打开和关闭该操作。 当某个操作被关闭时,它将被完全跳过,根本不会运行。 |
重定向姿势
重定向姿势(Retarget Pose)可以重载源或目标骨骼网格体的默认重定向姿势,然后再评估操作栈中的其余操作。 重定向姿势会重载源或目标的重定向姿势。
在操作栈中,重定向的资产一次只能使用一项操作的副本。
重定向姿势必须是操作栈中的第一个操作,重定向操作才能按预期工作。
源姿势
名称 | 说明 |
重载源姿势 | 开启和关闭重载源姿势。 设为True时,重载源骨架的默认重定向姿势。 |
要使用的源姿势 | 应用于源骨架的重定向姿势。 姿势名称必须与该资产中存储的重定向姿势的名称匹配。添加要被重载的源姿势的名称。 |
目标姿势
名称 | 说明 |
重载目标姿势 | 开启和关闭重载目标姿势。 设为True时,重载目标骨架的默认重定向姿势。 |
要使用的目标姿势 | 应用于目标骨架的重定向姿势。 姿势的名称必须与该资产中存储的重定向姿势的名称匹配。添加要被重载的目标姿势的名称。 |
重定向姿势启用操作
名称 | 说明 |
启用操作 | 开启和关闭重定向姿势操作。 已禁用的操作将被完全跳过,根本不会运行。 |
添加姿势
添加姿势(Additive Pose)操作可用于在目标角色上添加重定向姿势。 该操作用于在现有重定向结果的基础上应用精确的分层调整,以处理额外的修正。
可以将此操作添加到默认操作栈中,并按任意顺序排列,以优化重定向。
添加姿势操作设置
名称 | 说明 |
要应用的姿势(Pose to Apply) | 应用于目标骨架输出的重定向姿势的名称。 |
透明度(Alpha) | 根据设定的值,在目标上混合姿势。 |
锁定骨骼
锁定骨骼(Pin Bones)是IK重定向器中使用的一项后期处理功能,用于将特定骨骼(例如ik_hand_weapon)锁定到另一个骨骼(例如hand_r)。 此操作可确保特殊骨骼跟随动画角色,防止武器吸附等问题,并在动画过程中保持正确的手部位置。
可以将此操作添加到默认操作栈中,并按任意顺序排列,以优化重定向。
将锁定骨骼操作与缩放源结合使用,可以改善不同身高角色之间的动画传递效果。
锁定骨骼设置
设定锁定骨骼操作中的目标骨骼和链条。
名称 | 说明 |
要锁定的骨骼(Bones to Pin) | 用于拷贝变换的骨骼对列表。
|
从中拷贝骨架(Skeleton to Copy From) | 设定从哪个骨架拷贝动画。 可在源角色和目标角色之间选择。 |
平移(Translation)
确保精确的接触点,以便复制平移数据。
名称 | 说明 |
复制平移(Copy Translation) | 切换开启和关闭复制骨骼平移的功能。 |
平移模式(Translation Mode) | 用于计算骨骼平移的方法。 |
旋转
确保精确的接触点,以便复制旋转数据。
名称 | 说明 |
复制旋转(Copy Rotation) | 切换开启和关闭复制骨骼旋转的功能。 |
旋转模式(Rotation Mode) | 用于计算骨骼旋转的方法。 |
缩放
确保骨骼的缩放准确,以便将运动从一个角色复制到另一个角色。
名称 | 说明 |
复制缩放(Copy Scale) | 拷贝骨骼的缩放。 |
传播变换
强制目标骨架的骨骼与源骨架的骨骼精确匹配位置和旋转,然后将变换沿链向下传播到子骨骼。
名称 | 说明 |
传播到子项(Propagate to Children) | 设置是否递归更新子骨骼变换。 |
锁定骨骼偏移
保持目标骨骼相对于源骨骼位置的位置关系。
名称 | 说明 |
全局偏移(Global Offset) | 在全局空间中对根骨骼应用手动偏移,基于:
|
局部偏移(Local Offset) | 在本地空间中对根骨骼应用手动偏移,基于:
|
筛选骨骼
筛选骨骼(Filter Bones)操作适用于大型生物的动画,可在将动画从源骨架传递到目标骨架时,选择、隔离或修改特定骨骼链。 此操作以分层方式向下过滤,以确保结构差异(如骨骼数量、手臂和腿部的比例)不会导致诸如脚部悬空、肢体变形、道具交互不准确等问题。
可以将此操作添加到默认操作栈中,并按任意顺序排列,以优化重定向。
筛选骨骼设置
设置以哪些骨骼为目标。
名称 | 说明 |
要过滤的骨骼(Bones to Filter) | 将多个或单个骨骼添加到数组中。 选定的骨骼已应用了使用此工具所做的任何更改。 |
一欧元滤波器
名称 | 说明 |
最小频率(Min Frequency) | 设定运动接近零时的低通截止点。 值以赫兹(Hz)为单位设置。
|
响应度(Responsiveness) | 随着角速度增加提高截止频率。 使用介于0.3-0.8之间的值,以获得最佳效果。
|
速度截止频率(Velocity Cutoff Hz) | 在原始角速度可被用于调整导数截止前,对其进行低通滤波。 为了获得最佳效果,请从15-30Hz之间的值开始。 如果平滑开始或方向反转时出现呼吸或跳动现象,请降低该值。 例如在30-20 Hz之间。 如果响应快速变化的速度过慢,请略微提高速度截止值。 需保持低于奈奎斯特频率(帧率/2)。 |
重置播放(Reset Playback) | 选择True或False。 如果设为True,当编辑器中循环播放时,过滤器将重置。 |
缩放源
缩放源(Scale Source)操作的功能包括控制源动画的缩放和比例驱动的平移如何适配不同大小的目标角色。 该操作不能在操作栈中多次使用。
缩放源操作会影响使用混合到源子操作的IK目标。
缩放源操作位于操作栈顶部时,重定向优化效果最佳,但你可以将缩放源添加到默认操作栈中,并按任意顺序排列。
缩放
名称 | 说明 |
源比例因子(Source Scale Factor) | 使用自定义范围设置缩放传入的源姿势。 设定的缩放会影响整个骨架和所有IK目标。 默认值为0。 |
缩放枢轴点
名称 | 说明 |
缩放枢轴点(Scale Pivot) | 缩放应从组件或源骨骼上的特定骨骼进行旋转的空间。 |
缩放枢轴点骨骼(Scale Pivot Bone) | 缩放枢轴所在的源骨骼骨骼空间。 |
将缩放枢轴点投影到地面(Project Scale Pivot to Floor) | 可使缩放枢轴骨骼的缩放基于Z=0进行投影。 |
缩放源启用操作
名称 | 说明 |
启用(Enabled) | 打开和关闭该操作。 当某个操作被关闭时,它将被完全跳过,根本不会运行。 |
拉伸链
拉伸链(Stretch Chains)可用于确定每条骨骼链的长度或拉伸,以匹配源骨骼链的长度。 这可以通过复制骨骼链,或选择骨骼链,并且逐一拉伸它们以匹配源角色来实现。
你可以从复制中排除骨骼链,从而仅在形体的必要部分执行操作,从而优化性能。
可以将此操作添加到默认操作栈中,并按任意顺序排列,以优化重定向。
拉伸链设置
该设置中的工具执行以下操作:
IK绑定资产(IK Rig Asset):自动设置目标资产,并在下面的可滚动菜单中列出目标骨骼链。
链映射选项:使用不同的筛选选项筛选骨骼:
隐藏映射链(Hide Mapped Chains):隐藏映射到源链的链。
隐藏未映射链(Hide Unmapped Chains):隐藏未映射到源链的链。
隐藏无IK的链(Hide Chains Without IK):隐藏未使用IK的链。
清除过滤器(Clear Filters):清除过滤器选项。
自动映射链(Auto-Maps Chains):根据匹配规则自动分配源。
全部映射(模糊):将所有链映射到名称最接近的源链。
仅映射空(模糊):将所有未映射的链映射到名称最接近的源链。
全部映射(精确)(Map All (Exact)):映射名称相同的所有链。 如果未找到完全匹配项,则不改变映射。
仅映射空(精确)(Map Only Empty (Exact)):映射名称相同的未映射链。 如果未找到完全匹配项,则不改变映射。
清除过滤器(Clear Filters):清除过滤器选项。
拉伸链
名称 | 说明 |
启用(Enabled) | 启用和禁用拉伸链设置。 |
匹配源长度(Match Source Length) | 将该链的总长度与映射的源链匹配,使用0-1的范围。 值为0时,链条的长度保持不变。 值为1时,链条被拉伸以匹配源的长度。 默认值为0。 |
缩放链长度(Scale Chain Length) | 链长度的乘数,在使用自定义值匹配源长度后应用。 默认值为1。 |
极向量对齐
极向量对齐(Pole vector alignment)是将膝盖或肘部的方向从源角色映射到比例不同的目标角色的过程,以确保关节按正确的方向弯曲。 将目标肢体链的旋转角度与源匹配,通常通过扭转关节链使其与极向量对齐,而不改变末端执行器(如手或脚)的位置。
可以将此操作添加到默认操作栈中,并按任意顺序排列,以优化重定向。
该操作的运行方式与FK链相同。
极向量对齐设置
该设置中的工具执行以下操作:
IK绑定资产(IK Rig Asset):自动设置目标资产,并在下面的可滚动菜单中列出目标骨骼链。
链映射选项:使用不同的筛选选项筛选骨骼:
隐藏映射链(Hide Mapped Chains):隐藏映射到源链的链。
隐藏未映射链(Hide Unmapped Chains):隐藏未映射到源链的链。
隐藏无IK的链(Hide Chains Without IK):隐藏未使用IK的链。
清除过滤器(Clear Filters):清除过滤器选项。
自动映射链(Auto-Maps Chains):根据匹配规则自动分配源。
全部映射(模糊):将所有链映射到名称最接近的源链。
仅映射空(模糊):将所有未映射的链映射到名称最接近的源链。
全部映射(精确)(Map All (Exact)):映射名称相同的所有链。 如果未找到完全匹配项,则不改变映射。
仅映射空(精确)(Map Only Empty (Exact)):映射名称相同的未映射链。 如果未找到完全匹配项,则不改变映射。
清除过滤器(Clear Filters):清除过滤器选项。
对齐极向量
对齐极向量设置可在细节面板中找到。
确保目标角色肢体中的关节弯曲方向与源动画相同。
名称 | 说明 |
启用(Enabled) | 是否开启该链上的极向量对齐功能。 |
对齐Alpha(Align Alpha) | 将此链沿极点方向的扭转角度与源链匹配,使用0-1的范围。
|
静态角偏移(Static Angular Offset) | 链的极方向的角偏移(以度为单位)。 偏移值不一定是正数。 默认值为0。 |
保持偏移(Maintain Offset) | 如果设为True,对齐极向量时,保持源极向量与目标极向量之间的原始角偏移。 默认关闭。 |
拷贝基本姿势
拷贝基本姿势(Copy Base Pose)将定义并对齐目标角色的默认静止姿势,使其与源角色相匹配。 该操作可确保步行或空闲等动画的准确传递,不会出现肢体断裂或关节旋转错误的情况,尤其是在两个角色以不同姿势建模时,例如T形姿势和A形姿势。
该操作可修复源骨架和目标骨架静止姿势之间的差异,以实现准确、高质量的动画重定向。 通过正确定义基础姿势,IK重定向器可以准确计算两个角色之间的关节旋转差异,从而使源动画在目标角色上看起来更自然。
可以将此操作添加到默认操作栈中,并按任意顺序排列,以优化重定向。
重定向阶段
定义将动画数据从源骨架映射到目标骨架的各个阶段。
名称 | 说明 |
拷贝基本姿势(Copy Base Pose) | 设为True时,此设置将复制所有名称匹配的源骨骼变换,用作基础姿势。 这在部分重定向时很有用。 不对骨骼变换应用重定向,默认骨骼变换在源骨架和目标骨架之间完全兼容。 |
从起始位置拷贝(Copy from Start) | 使用拷贝基本姿势时,筛选要拷贝的骨骼。 如果指定,仅复制指定骨骼的子骨骼(包括指定骨骼本身)。 |
要排除的骨骼(Bones to Exclude) | 添加到此列表中的骨骼(及其子项)不会拷贝其姿势。 保持参考姿势。 |
拷贝基本姿势启用操作
名称 | 说明 |
启用(Enabled) | 打开和关闭该操作。 当某个操作被关闭时,它将被完全跳过,根本不会运行。 |
运行IK绑定
运行IK绑定(Run IK Rig)指的是在动画重定向期间,将反向运动学(IK)解算器和目标应用于骨骼网格体的过程,以确保精确的肢体定位,尤其是在不同比例的角色之间传递动画时。
运行IK绑定包含所有使用IK绑定的操作和工具。 你可以添加并按任意顺序排列运行IK绑定的子操作,以捕捉不同的运动,从而实现更好的重定向。
子操作是重定向操作的IK阶段。 将它们分成可自定义的操作栈,可提供不同类型的IK目标调整。 运行IK绑定被视为一项默认操作。 当你点击添加默认操作时,运行IK绑定将出现在操作栈列表中。
运行IK绑定通过LOD阈值启用和禁用操作可运行的最大LOD。
解算IK目标设置
该设置中的工具执行以下操作:
IK绑定资产(IK Rig Asset):该属性根据资产设置中的默认目标IK绑定属性设置。 如下所示,该资产的骨骼链以可滚动的菜单显示。
你可以为该设置使用单独的目标。
链映射选项:使用不同的筛选选项筛选骨骼:
隐藏映射链(Hide Mapped Chains):隐藏映射到源链的链。
隐藏未映射链(Hide Unmapped Chains):隐藏未映射到源链的链。
隐藏无IK的链(Hide Chains Without IK):隐藏未使用IK的链。
清除过滤器(Clear Filters):清除过滤器选项。
自动映射链(Auto-Maps Chains):根据匹配规则自动分配源。
全部映射(模糊):将所有链映射到名称最接近的源链。
仅映射空(模糊):将所有未映射的链映射到名称最接近的源链。
全部映射(精确)(Map All (Exact)):映射名称相同的所有链。 如果未找到完全匹配项,则不改变映射。
仅映射空(精确)(Map Only Empty (Exact)):映射名称相同的未映射链。 如果未找到完全匹配项,则不改变映射。
清除所有映射(Clear All Mapping):清除映射并将映射设置为无。
运行IK绑定链设置
从列表中选择一条链,打开链设置选项。
名称 | 说明 |
启用IK(Enable IK) | 设定是否修改此链上IK目标的位置。 此设置默认设为true。 在带IK目标的资产上禁用此选项时,仍会计算IK,但目标会设置为FK通道的输入骨骼位置。 仅当链在目标IK绑定资产中分配了IK目标时,此设置才有效。 |
链位置Alpha(Chain Position Alpha) | 根据源长度和源方向重定向目标位置。 此工具的范围为0-1。 值为0时,目标将保留在输入姿势骨骼位置。 值为1时,目标将沿源链的方向传递,与链基部的距离和链被压缩或拉伸的程度成比例。 |
链旋转Alpha(Chain Rotation Alpha) | 基于源链末端骨骼旋转重定向目标旋转。 此工具的范围为0-1。 此设置适用于在IK操作之前未在此链上执行IK重定向的情况。 值为0时,目标将保留在输入姿势骨骼旋转处。 值为1时,目标将采用与应用于源链末端骨骼相同的世界空间旋转进行旋转。 如果目标末端骨骼旋转在此操作之前已被重定向,则此设置可能无效。 操作栈不会双重旋转目标。 |
重载目标Alpha(Override Goal Alpha) | 开启或关闭此选项。 启用时,此处的alpha值将重载IK绑定资产中的目标alpha设置。 默认值为0。 |
最终位置Alpha(Final Position Alpha) | 开启和关闭混合所有目标平移偏移。 此工具的范围为0-1。 值为0时,目标将保留在输入骨骼位置。 值为1时,目标将被移动到IK目标操作生成的位置。 |
最终旋转Alpha(Final Rotation Alpha) | 开启和关闭混合所有目标平移偏移。 此工具的范围为0-1。 值为0时,目标将保留在输入骨骼位置。 值为1时,目标将被移动到IK目标操作生成的位置。 |
运行IK绑定调试
运行IK绑定具有默认调试操作,用于计算不同的绘制参数。
名称 | 说明 |
绘制最终目标(Draw Final Goals) | 绘制最终IK目标位置。 |
绘制源位置(Draw Source Locations) | 开启后,调试器将使用源骨骼的绘制位置(预解算)。 |
目标绘制大小(Goal Draw Size) | 调整视口中目标调试绘制的大小。 |
目标绘制厚度(Goal Draw Thickness) | 调整目标IK目标视口中目标调试绘制的粗度。 |
子操作列表
以下是与运行IK绑定操作配套的子操作列表。 你可以在运行IK绑定操作栈框架中添加、调整顺序或删除子操作。
混合到源
评估重定向IK目标的子操作,运行评估需要这些工具。 专门的重定向IK目标工具会通过一系列影响IK目标结果的子操作,在目标角色上执行反向运动学。
混合到源设置
链映射选项 - 使用不同的筛选选项筛选骨骼:
隐藏映射链(Hide Mapped Chains) - 隐藏映射到源链的链。
隐藏未映射链(Hide Unmapped Chains) - 隐藏未映射到源链的链。
隐藏无IK的链(Hide Chains Without IK) - 隐藏未使用IK的链。
清除过滤器(Clear Filters) - 清除过滤器选项。
混合到源链设置
在列表中选择一条链,打开这些选项。
名称 | 说明 |
混合到源(Blend to Source) | 在重定向骨盆的重定向位置(0)和精确源位置(1)之间混合重定向骨盆的平移。 此属性类似于其他重定向工具中所见的“reach”。 |
平移透明度 | 混合BlendToSource的平移分量,范围为0-1。 值为0时,目标被放置在该位置。 值为1时,目标放置在源链末端骨骼的位置。 默认设置为1。 |
旋转透明度 | 在链末端骨骼的重定向旋转(0)和精确源旋转(1)之间,混合FK旋转复制量。 默认设置为0。 值为0时,目标朝向输入旋转。 值为1时,目标朝向源链的末端骨骼旋转。 |
每轴平移Alpha(Translation Per Axis Alpha) | 使用混合到源功能时,在链末端骨骼的重定向位置(0)和精确源位置(1)之间,分别对每个轴进行加权。 默认设置为1。 |
应用骨盆偏移(Apply Pelvis Offset) | 设为True时,源位置会受目标骨盆运动的影响。 设为False时,如果存在骨盆运动操作,或者骨盆运动操作中的影响IK权重为零,则此设置无效。 默认设置为False。 该设置将应用骨盆运动操作中生成的所有偏移。 |
混合到源操作设置
名称 | 说明 |
透明度(Alpha) | 混合所有链上的偏移效果。 此工具的范围为0-1。 |
混合到源调试
名称 | 说明 |
调试绘制大小 | 调整视口中目标调试绘制的大小。 |
偏移目标
对目标链上的IK目标应用平移或旋转偏移。
偏移目标设置
链映射选项 - 使用不同的筛选选项筛选骨骼:
隐藏映射链(Hide Mapped Chains) - 隐藏映射到源链的链。
隐藏未映射链(Hide Unmapped Chains) - 隐藏未映射到源链的链。
隐藏无IK的链(Hide Chains Without IK) - 隐藏未使用IK的链。
清除过滤器(Clear Filters) - 清除过滤器选项。
偏移目标链设置
在列表中选择一条链,打开这些选项。
名称 | 说明 |
全局平移偏移(Global Translation Offset) | 对IK目标应用全局空间平移偏移。 |
局部平移偏移(Local Translation Offset) | 将本地空间平移偏移应用到IK目标。 |
全局旋转偏移(Global Rotation Offset) | 对IK目标应用全局空间旋转偏移。 |
局部旋转偏移(Local Rotation Offset) | 将本地空间旋转偏移应用到IK目标。 |
偏移目标操作设置
名称 | 说明 |
透明度(Alpha) | 混合所有链上的偏移效果。 此工具的范围为0-1。 |
平移透明度 | 混合所有链条上的平移偏移效果。 此工具的范围为0-1。 |
旋转透明度 | 混合所有链上的旋转偏移效果。 此工具的范围为0-1。 |
缩放目标
根据链设置缩放目标的指定骨骼和链。
缩放目标设置
链映射选项 - 使用不同的筛选选项筛选骨骼:
隐藏映射链(Hide Mapped Chains) - 隐藏映射到源链的链。
隐藏未映射链(Hide Unmapped Chains) - 隐藏未映射到源链的链。
隐藏无IK的链(Hide Chains Without IK) - 隐藏未使用IK的链。
清除过滤器(Clear Filters) - 清除过滤器选项。
缩放目标 - 链设置
名称 | 说明 |
垂直缩放 | 缩放IK目标位置的垂直分量。 |
水平缩放 | 缩放IK目标垂直位置的水平分量。 |
沿链缩放(Scale Along Chain) | 使IK目标离链原点更近(0)或更远(1+)。 该链的默认值为1,但可以上下调整。 值为0时,执行器放在链的原点,例如肩部或臀部。 值为1时,执行器位于链的末端,例如手腕或脚部。 介于0-1之间的值将使执行器沿向量从链的起点滑动到终点。 大于1的值将使链的长度超出目标长度。 |
缩放目标操作设置
名称 | 说明 |
透明度(Alpha) | 混合所有链上的效果。 此工具的范围为0-1。 |
地面约束
该子操作可根据源角色,对特定IK目标应用地面约束,防止角色手脚根据源角色穿透地面。 它将专门的地面约束链工具应用于重定向链设置中选择的骨骼链。
地面目标操作设置
地面目标操作设置使用不同的链映射选项筛选骨骼:
隐藏映射链(Hide Mapped Chains) - 隐藏映射到源链的链。
隐藏未映射链(Hide Unmapped Chains) - 隐藏未映射到源链的链。
隐藏无IK的链(Hide Chains Without IK) - 隐藏未使用IK的链。
清除过滤器(Clear Filters) - 清除过滤器选项。
地面约束链设置
在列表中选择一条链,打开这些选项。
名称 | 说明 |
启用地面约束(Enable Floor Constraint) | 设定是否在此链上的IK目标位置应用地面约束。 默认值为False。 启用此选项后,地面约束会根据以下规则调整IK目标的垂直位置:
地面假定为XY平面,Z=0。 仅当链在目标IK绑定资产中分配了IK目标时,此设置才有效。 |
透明度(Alpha) | 混合此目标上的约束效果。 启用此选项时,取值范围为0-1。 默认设置为0。 |
保持高度偏移(Maintain Height Offset) | 使用0-1之间的范围,保持重定向姿势中源和目标之间的高度差。 默认设置为0。 |
足部设置
使用足部设置(Foot Settings)时,你就不再受限于特定骨骼链,而是可以开启或关闭足部和脚趾选项,或将某个选项默认设为关闭。 你还可以配置定义足部平面的属性。
名称 | 说明 |
使用足部(Use Foot) | 开启或关闭选项。 设为True时,使用足部定义实现更精确的足部和地面重定向。 设为False时,此操作将足部视为一个点。 |
使用脚趾(Use Toes) | 开启或关闭选项。 设为True时,使用脚趾定义实现更精确的脚趾和地面碰撞。 |
足部操作 | 针对足部平面的操作。 |
内侧偏移(Medial Offset) | 从足部平面的中心开始,直接对齐到源骨骼高度的高度(以厘米为单位)。 默认设置为10;通过滑块设置目标资产的高度。 |
横向偏移(Lateral Offset) | 从足部平面的左侧和右侧开始,直接对齐到源骨骼高度的高度(以厘米为单位)。 默认设置为10;通过滑块设置目标资产的高度。 |
脚跟偏移(Heel Offset) | 从足部平面的脚跟开始,直接对齐到源骨骼高度的高度(以厘米为单位)。 默认设置为10;通过滑块设置目标资产的高度。 |
脚趾偏移(Toe Offset) | 从足部平面的脚趾开始,直接对齐到源骨骼高度的高度(以厘米为单位)。 默认设置为10;通过滑块设置目标资产的高度。 |
垂直偏移(Vertical Offset) | 从足部平面的顶部开始,直接对齐到源骨骼高度的高度(以厘米为单位)。 默认设置为10;通过滑块设置目标资产的高度。 |
脚趾操作(Toes Op) | 针对脚趾骨骼的操作。 脚趾将根据足部定义和脚趾定义做出相应的弯曲。 |
透明度(Alpha) | 混合此目标上脚趾操作的效果。 启用“使用脚趾选项”时,此工具的范围为0-1。 默认设置为1。 |
响应度(Responsiveness) | 速度系数;当信号快速变化时增加截止频率(反应性)。 |
截止频率(Cutoff Frequency) | 一欧元滤波器的最小截止频率(数值更高,平滑度越低)。 |
速度截止频率(Velocity Cutoff) | 导数平滑步骤的截止频率。 |
所有脚趾(All Toes) | 针对所有脚趾中骨骼定义的操作。 将脚趾骨骼添加到索引中,以链中该骨骼为目标。 |
脚趾骨骼(Toe Bone) | 来自骨骼链层级的选定脚趾骨骼。 |
长度(Length) | 骨骼长度,以厘米为单位。 这有助于为具有复杂脚趾和足部结构的大型资产定义脚趾。 |
偏转偏移(Yaw Offset) | 从脚趾定义的左右方向开始,直接对齐到源骨骼高度的高度(以厘米为单位)。 默认设置为10;通过滑块设置目标资产的高度。 |
垂直偏移(Vertical Offset) | 从脚趾定义顶部开始,直接对齐到源骨骼高度的高度(以厘米为单位)。 默认设置为10;通过滑块设置目标资产的高度。 |
速度植入IK目标
该子操作可根据速度曲线,快速放置指定IK目标。 这些工具将应用于重定向链设置中选择的骨骼链。
速度植入设置
链映射选项 - 使用不同的筛选选项筛选骨骼:
隐藏映射链(Hide Mapped Chains) - 隐藏映射到源链的链。
隐藏未映射链(Hide Unmapped Chains) - 隐藏未映射到源链的链。
隐藏无IK的链(Hide Chains Without IK) - 隐藏未使用IK的链。
清除过滤器(Clear Filters) - 清除过滤器选项。
速度植入链设置
名称 | 说明 |
透明度(Alpha) | 仅在0-1的范围内混合速度植入在此链上的效果。 设为0时,无效果。 |
速度曲线名称(Speed Curve Name) | 包含速度曲线数据的动画曲线的名称。 |
速度植入操作设置
名称 | 说明 |
透明度(Alpha) | 在0-1的范围内混合速度植入的效果。设为0时,无效果。 |
速度阈值(Speed Threshold) | 在被快速栽植系统视为未移动的前提下,源骨骼可以移动的最大速度。 这可导致目标IK目标在源骨骼速度低于此阈值时不移动。 |
混合方法(Blend Method) | 混合植入位置的IK目标时使用的方法。 弹簧方法使用临界阻尼弹簧方程来混入和混出植入状态。 移动朝向(Move Towards)方法可以更准确地追踪快速运动,而不会显得模糊。 仅混出植入状态。 |
临界阻尼(Critical Damping) | 将多少阻尼应用于弹簧。 值为0表示无阻尼,值为1表示达到临界阻尼,不会引起振荡。 |
步幅扭曲IK目标
该子操作可根据指定的向前方向,缩放和扭曲指定的IK目标。 这些工具将应用于重定向链设置中选择的骨骼链。
步幅扭曲设置
链映射选项 - 使用不同的筛选选项筛选骨骼:
隐藏映射链(Hide Mapped Chains) - 隐藏映射到源链的链。
隐藏未映射链(Hide Unmapped Chains) - 隐藏未映射到源链的链。
隐藏无IK的链(Hide Chains Without IK) - 隐藏未使用IK的链。
清除过滤器(Clear Filters) - 清除过滤器选项。
步幅扭曲链设置
名称 | 说明 |
启用步幅扭曲(Enable Stride Warping) | 启用步幅扭曲功能,该功能可控制重定向动画的步幅长度、宽度和斜面。 步幅扭曲要求你使用重定向IK目标来设置角色。 |
透明度(Alpha) | 仅在0-1的范围内混合在此链上的步幅扭曲效果。 设为0时,无效果。 |
步幅扭曲操作设置
名称 | 说明 |
透明度(Alpha) | 仅在0-1的范围内混合在此链上的步幅扭曲效果。 设为0时,无效果。 |
方向源(Direction Source) | 用于确定“最适合”的全局旋转的源,以模拟角色随时间变化的朝向。 你可以从以下选项中进行选择:
|
向前方向(Forward Direction) | 你的角色的世界空间朝向。 大部分情况下是Y。 |
方向链(Direction Chain) | 如果设置 |
扭曲向前(Warp Forwards) | 沿向前进向扭曲IK目标。 值低于1时步幅较小,高于1时步幅长度增加。 |
横向偏移(Sideways Offset) | 扭曲角色的侧向站姿。 值低于0会将IK目标整体拉向垂直于前进方向的位置,值高于0会将其推开。 |
扭曲斜面(Warp Splay) | 扭曲角色的整体站姿。 值低于1会将IK目标整体拉向平均位置,值高于1会将其推开。 |
步幅扭曲调试
名称 | 说明 |
调试绘制大小 | 调整调试绘制的大小。 |
调试绘制厚度 | 调整调试绘制的大小。 |
相对IK重定向
要使用此实验性子操作,请将Spatially Aware Retarget Ops插件添加到你的项目中。
该子操作将获取从一个角色创建的动画数据,并将其映射到比例不同的另一个角色。 动画通知数据记录了动画过程中角色的哪些部位相互接触,例如手触摸肩膀。 然后,当动画应用于比例不同的不同角色时,相同的形体部位会根据新的比例在正确的位置连接起来。
创建动画通知数据
在创建动画通知数据并将其用于相对IK重定向子操作之前,你必须有两个角色,每个角色都有一个关联的物理资产和一个设置为可碰撞的骨骼网格体。
要为相对IK重定向子操作创建动画通知数据,请按照以下步骤操作:
打开你想重定向的动画序列。
选择窗口(Window) > 动画数据修饰符(Animation Data Modifiers)。
点击添加修饰符(Add Modifier),选择RelativeBodyAnimModifier。
在RelativeBodyAnimModifier设置中,设置使用动画的角色的骨骼网格体资产和物理资产重载。
点击应用所有修饰符(Apply All Modifiers)。
设置修饰符应查看的骨骼名称,以生成动画通知数据:
接触形体名称(Contact Body Names):物理资产中与任何主体形体部位接触的骨骼名称。
每个动画都可以有一组不同的主体形体和接触形体,具体取决于哪些部位发生接触。 在下图中,主体形体部位是角色的臀部、腿部、手臂、颈部、头部和脊柱,接触形体部位是手部。
主体形体部位名称:你希望修饰符在主体空间中记录的物理资产中的骨骼名称。
应用修饰符时,它会创建RelativeBodyBakeAnimNotify数据,并将其添加到动画序列的时间轴中。 这些数据可由相对IK目标子操作读取。
如果你在创建动画数据后编辑了物理资产,必须再次应用修饰符,以创建包含你所编辑的内容的新动画数据。
添加相对IK重定向子操作
从第一个角色创建动画通知数据后,你可以使用IK重定向器中的相对IK子操作,将数据应用到新骨架。 这需要使用重定向IK操作,并指定IK绑定、IK解算器和IK目标。
要添加相对IK重定向子操作,请按照以下步骤操作:
在操作栈选项卡中,点击运行IK绑定旁边的加号(+)按钮。
点击相对IK重定向(Relative IK Retarget)添加子操作。
在细节面板的物理(Physics)中,添加源物理资产重载(Source Physics Asset Override)和目标物理资产重载(Target Physics Asset Override)。 将源资产设置为生成动画通知数据时使用的物理资产,并将目标资产设置为要应用动画的角色的物理资产。
如果源资产和目标资产的骨骼具有不同的层级和名称,则使用形体映射(Body Mapping)属性,将目标资产的骨骼映射到源资产的骨骼。 目标骨骼和源骨骼之间的关系被称为形体对。
如果新角色没有播放动画,请确保原始动画序列包含动画通知数据。 如果没有动画通知数据,相对IK重定向子操作将无法工作。
相对IK重定向设置
名称 | 说明 |
地面阈值(Floor Threshold) | 骨骼到地面连接应用于IK目标的最大距离。 |
地面约束标量(Floor Constraint Scalar) | 调整角色的足部骨骼与地面连接的位置。 |
距离阈值(Distance Threshold) | 形体对应用于IK目标的最大距离。 |
距离半点Lambda(Dist Half Point Lambda) | 距离权重值为0.5的点。 数值越低,衰减越快。 |
距离权重模式(Distance Weight Mode) | 要应用于距离阈值的淡化类型。 可以是线性、二次、三次或四次。 |
可行性长度偏差(Feasibility Length Bias) | 相对于IK链半径的偏差目标可行性距离。 默认可行性通过比较IK目标距离和最大IK链长度进行加权。 |
贡献总和权重(Contribution Sum Weight) | 应用于归一化IK目标的权重。 |
时间平滑半径(Temporal Smoothing Radius) | 应用于形体对顶点的时间平滑帧数。 可用于帮助解决抖动问题。 |
忽略源缩放(Ignore Source Scale) | 计算相对源距离时是否忽略源缩放操作。 |
相对IK重定向调试设置
名称 | 说明 |
调试绘制形体对(Debug Draw Body Pairs) | 绘制当前动画的源形体和目标形体对关系。 |
调试完整重定向对骨骼(Debug Full Retarget Pair Bones) | 绘制指定骨骼名称的完整重定向四边形关系。 |
调试绘制目标贡献(Debug Draw Goal Contributions) | 绘制每对形体的目标贡献(白色)并显示加权的最终目标位置(黄色)。 |
调试绘制重定向顶点平均值(Debug Draw Retarget Vert Averages) | 为每对形体贡献绘制重定向配对线 它使用以下颜色:
|
调试绘制物理形体(Debug Draw Physics Bodies) | 从物理重载中绘制源和目标物理形体。 |
调试绘制形体变换(Debug Draw Body Transforms) | 绘制形体局部变换设置,如烘焙顶点。 |
形体相交目标
要使用此实验性子操作,请将Spatially Aware Retarget Ops插件添加到你的项目中。
形体相交目标(Body Intersect Goals)子操作会根据碰撞移动指定的IK目标,防止角色的身体部位在动画过程中相交。 它从物理资产中获取IK目标列表和身体名称列表。 该子操作会检查IK目标是否与形体相交,并调整IK目标的位置以防止穿模。
如果将该子操作与相对IK重定向子操作结合使用,请在操作栈中将相对IK重定向放在形体相交目标之前。 否则,形体相交目标子操作将被覆盖。
在使用形体相交目标子操作之前,你必须有一个目标角色,该角色具有关联的物理资产和一个设置为可碰撞的骨骼网格体。
要设置形体相交目标,请按照以下步骤操作:
在形体相交目标子操作的细节面板中,为目标角色分配目标物理资产重载。
设置相交目标,这些目标必须是带有IK目标(如手)的链上的末端骨骼。
设置相交形体,使其包含角色身体中相交目标应避免与之发生碰撞的任何部位,防止视觉穿模。
要打开或关闭调试绘制,请点击操作栈中形体相交目标旁边的调试按钮。