如果源角色与目标角色之间存在大小差异,您可以调整“重定目标特定”(Retarget Specific)属性,以精细调整重定目标的结果。
设置场景
- 打开名为 Pepe.mb 的场景文件。您将不保存之前的场景。
可以在设定为 Maya 项目的 GettingStarted2020LessonData\HumanIK 目录中找到此文件。
两个已定义的 HumanIK 角色将显示在 Maya 场景中:目标角色 (Pepe) 和源角色 (WalkExample)。
- 选择“骨架 > HumanIK”(Skeleton > HumanIK),以打开“角色控制”(Character Controls)窗口。
- 确保 Pepe 已在“角色”(Character)菜单中选中,WalkExample 已在“源”(Source)菜单中选中。
- 当场景处于侧视图时,播放动画。
注: 您可能需要推拉和平移摄影机以同时查看场景中的两个角色。
默认情况下,目标角色 (Pepe) 在其自己的动作空间(角色在此处执行运动)中活动,在这里会自动补偿源角色与目标角色之间的比例差异。但是,在本示例中,重定目标不会考虑该 Pepe 的脚部比例也不同。由于他的脚比 WalkExample 的脚长,因此重定目标的结果会受影响。例如,在第 1 帧处 Pepe 的右脚穿透地面且步幅很小。
几个“重定目标特定”(Retarget Specific)属性可以进行调整,以反映源角色与目标角色之间的比例差异和比例。
使用“匹配源”(Match Source)特性
- 将“时间滑块”(Time Slider)设定为第 23 帧。
两个角色都在步幅中间进行重新定位。
- 在“角色控制”(Character Controls)中,选择
>“编辑角色定义 > 编辑 HIK 特性”(Edit Character Definition > Edit HIK Properties)。
注: 如果该选项灰显,则可能需要先切换到“定义”(Definition)选项卡。
“HIKProperties1”选项卡将在
“属性编辑器”(Attribute Editor)中打开。
提示: 单击“属性编辑器”(Attribute Editor)底部的“复制选项卡”(Copy Tab),在一个新窗口中创建这些属性的副本。
- 展开“重定目标特定”(Retarget Specific)区域。
通过这些属性,可以定义目标角色的特殊设置。
- 启用“匹配源”(Match Source)
。
启用后,此特性会使目标角色在源角色的动作空间中活动,从而使您达到源的 IK 融合目标。
默认情况下,Pepe 的髋部和双脚上的 IK 融合(
“IK 融合平移”(IK Blend T)和
“IK 融合旋转”(IK Blend R))均设定为 1.00,表示这些身体部位正在到达 WalkExample 的身体部位。
因此,髋部和双脚将到达以匹配 WalkExample 的位置。
但是,当 Pepe 的双脚与 WalkExample 放在同一位置时,其步幅看起来很夸张且不真实。
- 在“角色控制”(Character Controls)中,选择 Pepe 左手的效应器,然后将“IK 融合平移”(IK Blend T)特性设定为 1.00。
- 对 Pepe 的右手重复上一步骤。
Pepe 的手将到达源角色手的位置。
- 在“角色控制”(Character Controls)中选择 Pepe 的参照定位器。
- 选择“缩放”(Scale)工具并增加 Pepe 的参照定位器的比例。
在增加比例后,Pepe 将明显变大,其双手将与 WalkExample 手的位置紧密匹配。这说明,根据目标角色比例的不同,源角色的 IK 融合目标的达到方式也有所不同。
使用“缩放”(Scale)工具的另一种方法是,您也可以选择“通道盒”(Channel Box),并将每个“缩放 X”(Scale X)、“缩放 Y”(Scale Y)和“缩放 Z”(Scale Z)的值设定为 2.5。
- 在“HIKproperties1”选项卡的“重定目标特定”(Retarget Specific)部分(
>“编辑角色定义 > 编辑 HIK 特性”(Edit Character Definition > Edit HIK Properties))中,禁用“匹配源”(Match Source)
,因为在本示例中此调整的结果不令人满意。
我们可以调整其他属性以获得更加真实的 Pepe 步幅。
- 如果更改了 Pepe 参照的比例,请使用以下步骤进行重置:
- 在“角色控制”(Character Controls)中选择参照定位器。
- 打开“通道盒”(Channel Box)并将“缩放 X”(Scale X)、“缩放 Y”(Scale Y)和“缩放 Z”(Scale Z)的值设定为 1。
别忘了将两个手臂的“IK 融合平移”(IK Blend T)设定回 0。
让我们来调整其他特性,以获得更加真实的 Pepe 步幅。
获得真实的 Pepe 步幅
- 在“HIKproperties1”选项卡中,将“动作空间补偿模式”(Action Space Comp Mode)设定为“用户”(User)。
通过此属性,可以设定一个精确的值,以确定重定目标如何缩放以补偿源角色和目标角色的不同大小。
注: 当“动作空间补偿”(Action Space Compensation)值为 0.000 时,目标角色 (Pepe) 静止不动,并从场景中消失。
- 在“动作空间补偿”(Action Space Compensation)字段中输入 10.000。
在确定目标角色的位置时,Maya 会将此值以百分比形式应用到由源角色执行的所有移动的大小。该值越高,角色的步幅越大。值越小,步幅越小。
- 播放动画。
由于“动作空间补偿”(Action Space Compensation)值较低,因此 Pepe 的步幅仍然很小。
- 将“动作空间补偿”(Action Space Compensation)值更改为 48.000。
- 播放动画。
当我们应用用户定义的值而不是保持默认的“自动”(Auto)设置时,Pepe 的步幅明显变大。我们可以在第 54 帧处看到这一改进:
仅设定此属性便可获得良好的重定目标结果。现在,我们已固定步幅,我们可以查看其他特性,从而可以帮助我们获得理想的重定目标结果。
使用其他特性调整重定目标
- 将“时间滑块”(Time Slider)设定为第 54 帧。
- 将“踝部高度补偿模式”(Ankle Height Comp Mode)设定为“用户”(User)。
默认情况下,“自动”(Auto)模式可确保脚与地板正确接触。当设定为“禁用”(Off)时,禁用踝部高度补偿。当设定为“用户”(User)时,您可以通过设定“踝部高度补偿”(Ankle Height Compensation)值来手动调整模型的双脚与地板之间的距离。
- 将“踝部高度补偿”(Ankle Height Compensation)值设定为 5.000。
此值将调整角色的双脚与地板之间的距离。在角色具有特殊高度要求(例如,高跟鞋或靴子)或者角色的脚很大时,通常会调整此值。
- 将“踝部高度补偿模式”(Ankle Height Comp Mode)重置为“自动”(Auto)。
其他“重定目标特定”(Retarget Specific)属性
通过 HIKproperties 中的以下属性,可以进一步细化重定目标结果。
-
镜像动画(Mirror Animation)
- 启用后,目标角色将镜像源角色的移动。解算器沿 X 轴翻转源角色每个节点的位置,以确定目标角色的对应节点的所需位置。在以下示例中,“镜像动画”(Mirror Animation)处于启用状态,并且 Pepe 将镜像 WalkAnimation 的动作。
-
脚间距模式(Feet Spacing Mode)
- 默认情况下,“自动”(Auto)模式会调整目标角色左踝与右踝之间的距离。解算器将它的值与源角色左踝与右踝之间的间距相加,以确定目标角色左踝与右踝之间的间距。当设定为“禁用”(Off)时,不进行任何调整。当设定为“用户”(User)时,可以输入特定“脚间距”(Feet Spacing)值以调整踝部。在以下示例中,红色亮显版本中的“脚间距”(Feet Spacing)值设定为 8.000。左侧版本处于“自动”(Auto)模式。
-
质心补偿模式(Mass Center Comp Mode)
- 启用“质心补偿模式”(Mass Center Comp Mode)时,可通过在腿移动时防止角色的髋部过快降低以及通过防止脚步沉重来平滑腿的移动。默认的“质心补偿”(Mass Center Compensation)值为 80.000。
-
髋部高度模式(Hips Level Mode)
- 此属性将计算角色髋部的高度。调整“髋部高度”(Hips Level)值可控制髋部相对于其重心的高度。