Choose your operating system:
Windows
macOS
Linux
在Control Rig中创建可靠的绑定效果时,离不开 控制点(Controls) 、骨骼(Bones) 和 Null 这三个主要绑定元素。它们每个都拥有十分广泛的应用,搭配后可以创建完整的骨骼绑定。
本文介绍了控制点、骨骼和Null,并提供了使用简单的工作流程示例。
先决条件
你已创建并打开骨骼网格体的Control Rig。
元素介绍
控制点、骨骼和Null的创建方式是在 Rig层级(Rig Hierarchy) 面板中右键点击,然后在 新建(New) 菜单中选择对应的选项。
默认情况下,新建元素位于视口原点(0,0,0)。如果创建前,你在"Rig层级(Rig Hierarchy)"面板中选中了某个元素,则会在该元素位置创建,并以该元素为父节点。这样有助于不同元素彼此排列整齐。
组织
你可以在 Rig层级(Rig Hierarchy) 中右键点击元素并选择 重命名(Rename) ,或者按 F2 来重命名元素。
你可以在 Rig层级(Rig Hierarchy) 中拖动元素来重新组织结构。
将一个元素拖到另一个元素上,会使前者成为子节点,后者成为父节点。
将一个元素拖到空区域会取消父子关系。
按 Shift+P 也会取消所选元素的父子关系。
控制点
控制点(Controls) 是实现Control Rig交互的主要元素。它们用于驱动骨骼链,在 Sequencer 中制作动画,并提供更多自定义属性。你还可以让控制点以使用自定义的形状和颜色、属性类型和变换限值。
创建上下文
当你为于某个骨骼创建控制点时,控制点会自动继承该骨骼的名称,并添加 _ctrl
作为后缀。
创建多个控制点
除了一般创建方法之外,你还可以在选中多个骨骼时,使用提供的Python脚本创建控制点。在Rig层级中,选择多个骨骼,然后右键点击,选择 新建(New)> 为所选内容添加控制点(Add Controls For Selected) 。这将为所有所选骨骼创建控制点,使用后缀 _ctrl
匹配其名称,并匹配层级结构。
你可以按住 Alt 并点击 新建(New)> 为所选内容添加控制点(Add Controls For Selected) 来自定义此创建方法。这会打开对话框窗口,你可以在其中自定义以下设置:
名称 |
说明 |
---|---|
输出格式(Output Format) |
在创建控制点之后如何编排。你可以选择以下选项:
|
后缀(Suffix) |
要在控制点名称后应用的文本,该名称是从骨骼名称复制的。 |
前缀(Prefix) |
要在控制点名称前应用的文本,该名称是从骨骼名称复制的。 |
控制点类型
你可以为控制点指定各种控制点类型,这些类型会指定替代属性或限制性更强的属性。如果你想创建基于滑块的控制点,或带有布尔值等简单属性的控制点,这会很有用。
你可以在"细节(Details)"面板中点击所选控制点的 控制点类型(Control Type) 下拉菜单来指定控制点的类型。可以选择以下控制点类型:
名称 |
说明 |
---|---|
布尔(Bool) |
将控制点设置为 布尔类型 ,这样你可以在动画中设置 True / False 状态。布尔类型的控制点在 视口(Viewport) 中不可见。
|
浮点(Float) |
将控制点设置为 浮点类型,这样你可以沿某根位置轴移动控制点。你可以在 主轴(Primary Axis) 属性中指定轴。使用此类型时,控制点可以移动的范围默认限制在 0 - 100 之间。如果你想创建滑块型控制点,浮点会很有用。
|
整型(Integer) |
将控制点设置为 整型类型,这样你可以沿某根位置轴移动控制点,以1为增量。你可以在 主轴(Primary Axis) 属性中指定轴。使用此类型时,控制点可以移动的范围默认限制在 0 - 100 之间。你还可以在 控制点枚举(Control Enum) 属性中引用 枚举(Enumeration),将此控制点类型转换为枚举。
|
向量2D(Vector 2D) |
将控制点设置为 向量2D类型,这样你可以沿两根位置轴移动控制点。主轴(Primary Axis) 中指定的轴不会用到;其余轴负责提供2D平面。使用此类型时,控制点可以沿两个轴移动的范围默认限制在 0 - 100 之间。
|
位置(Position) |
将控制点设置为 位置类型,你只能调整控制点的位置。
|
缩放(Scale) |
将控制点设置为 缩放类型,你只能调整控制点的缩放比例。
|
旋转(Rotator) |
将控制点设置为 旋转类型,你只能调整控制点的旋转角度。
|
欧拉变换(Euler Transform) |
将控制点设置为 变换类型,你可以自由调整控制点的所有平移、旋转和缩放。这是默认类型。
|
对于空间类控制点,例如 欧拉变换(Euler Transform) 、 旋转(Rotator) 、 缩放(Scale) 和 位置(Position) ,在"细节(Details)"面板中查看 变换(Transform) 属性时,会显示一些额外的变换功能:
旋转(Rotation) 下拉菜单可用于选择不同旋转插值模式,如 欧拉(Euler) 、 四元数(Quaternion) 或 轴和角度(Axis and Angle) 。
本地/世界空间(Local /World Space) 按钮将在本地和世界空间之间交换所显示的轴信息。按住Shift键并点击将更改所有三个轴。
锁定 缩放(Scale),这会导致在更改缩放时,在每个方向均匀地缩放。
变换限值
你可以为空间类控制点指定限定范围,使其只在特定范围内移动。如果你想创建基于滑块或2D的控制点并限制其移动范围,这会很有用。
要为控制点设置限值,请定义其范围最小值和最大值。你可以在 细节(Details) 面板中的 变换(Transform) 类别下点击 最小值(Min) 或 最大值(Max) ,找到相关属性。
启用任意一个轴通道,以便启用该值的限值,在旁边的区域中定义数值。在本示例中,最小值设为 - 50 ,最大值设为 50 。若现在操控控制点,它将在该范围内移动。
启用 绘制限值(Draw Limits) ,查看视口中所有控制点的限值。
骨骼
除了骨架中已有的骨骼,你还可以在Control Rig中新建骨骼。这些骨骼可用于辅助用途,或为特定操作提供额外的骨骼(例如在IK链中创建结束执行器),或以合并方式使"虚拟"骨骼控制点成为"真实"的骨骼。
在Control Rig编辑器中创建的骨骼,其层级图标显示为中空,以便区别于一般骨骼网格体骨骼。
创建新骨骼后,你可以进入 设置事件(Setup Event) 模式,在视口中移动它,这样就可以在视口中编辑元素的 初始姿势(Initial Pose) 。在工具栏中,点击解算方向下拉菜单并选择 设置事件(Setup Event) 。
启用 设置事件(Setup Event) 后,你可以在视口中移动骨骼。
默认情况下,只有所选骨骼会显示在视口中。要更改此视图模式,请在视口工具栏中点击 角色(Character)> 骨骼(Bones) ,然后选择所需的骨骼绘制设置。
工作流程示例
在此示例中,Control Rig中创建的骨骼用作手指IK链的结束执行器。
Null
Null 是一种容器元素,能以任意方式收集、分组和变换其他Rig元素。在经典的人体模型Control Rig设置中,它们能将对称控制点(例如腿部和手臂)分组,以便镜像这些控制点。Null这个概念类似于Autodesk Maya中的 组(Groups) ,旨在管理骨骼绑定的结构。
默认情况下,Null在视口中不可见。要查看Null,你可以在视口工具栏启用 显示Null(Display Nulls) 。
类似于骨骼,在解算方向下拉菜单中启用 设置事件(Setup Event) 后可以编辑Null。启用 设置事件(Setup Event) 后,你可以在视口中移动Null。
启用 设置事件(Setup Event) 还会在视口中的所有Null上启用可视性。
工作流程示例
在此示例中,Null用于将左右两侧肢体的控制点分别进行分组。这能让组织、镜像操作和其他操控更轻松。
变换类型
绑定元素的位置、旋转和缩放由多种变换源决定,这些源名为 初始(Initial) 、 当前(Current) 和 偏移(Offset) 。这些变换类型各自在Control Rig的不同执行阶段对Rig元素执行变换。你可以在选中的绑定元素的细节面板中查看这些类型。
为控制点指定不同的控制点类型时,你只能指定 初始(Initial) 和 当前值(Current Values) 。
按住 Shift 键并点击不同类型,将在"细节(Details)"面板中并排显示它们。
初始
初始(Initial) 是Rig图表中Control Rig逻辑执行前元素的起始值。它还将指定其操作范围内Rig元素的默认值,并将影响 当前(Current) 的默认值。
要编辑初始值,你可以从"细节(Details)"面板编辑,或者启用设置事件并在视口中操控该元素(如果它有变换)。
当前
当前(Current) 是在 正向解算(Forwards Solve) 模式中操作时的元素值。它旨在作为控制点的实时实际变换,并且操控视口中的控制点将编辑当前姿势。在Control Rig编辑器中,当前姿势是临时的,可以通过重新编译或重新打开资产来重置。
在Sequencer中对Control Rig制作动画时,你会对当前值制作动画。
偏移变换
偏移(Offset) 仅对 控制点类型(Control Type) 设置为 欧拉变换(Euler Transform) 的控制点显示。它用于在空间上偏移控制点,而不更改初始值或当前值,并提供更改控制点的"零位置"的能力。在Autodesk Maya等其他操控工具中,偏移类似于 冻结变换(Freeze Transformations) 或 变换偏移父矩阵(Transform Offset Parent Matrix) 。
如果你要从指定了偏移的控制点输出变换值,生成的变换将组合 偏移(Offset) 和 当前(Current) ,用于其最终计算的变换。若要更改,你可以将 空间(Space) 属性设置为 本地空间(Local Space) ,这样它会仅输出 当前(Current) 。