本节介绍 Rig Graph 中使用的组件:
Rig Graph Manager:Rig Graph 的核心组件,它集成了基础资源配置、将绑定逻辑图转换为 C# 代码、绑定效果预览等功能。
Rig Graph Script Machine:加载绑定逻辑所需的 Script Graph 资产。
Rig Graph Variables:显示和编辑 Script Graph 中的 Graph Variables。
Rig Effectors Builder:收集并绘制 Rig 根目录下的所有控制点。
Rig Effector:编辑控制点 Gizmo 的相关属性。
Modular Rig Graph Manager:模块化 Rig Graph 资产的核心组件,用于模块化资产的配置。
下面将以通用人形角色资产的使用为例,介绍各组件的作用。
Rig Graph 的核心组件,实现了资产配置、将 Script Graph 绑定逻辑转换为 C# 代码等功能。
通过点击 Add Component->Rig Graph->Rig Graph Manager,即可在根游戏对象上挂载 Rig Graph Manager 组件。
Rig Graph Manager 的 Inspector 如下图所示:
以下是 Inspector 参数的详细介绍:
选择 Rig Graph 资产,也可以创建新资产或克隆当前资产。
当添加了多个 Rig Graph 资产后,会按照自上而下的顺序,依次触发每个资产内的事件。下图为在添加多个资产之后,第0帧时的执行顺序。后续帧将不再触发 Setup 事件,仅会依次触发每个资产内定义的 Backwards 和 Forwards 解算事件。
自动配置人形角色所需的 Humanoid Avatar 资产,只有 Script Graph 中的节点使用了 HumanBodybones 数据类型时,才需要配置。
Note: 无论人形角色模型导入团结引擎时的 Animation Type 是否为 Humanoid,所配置的 Avatar 类型均为Humanoid。
该项功能是通用人形角色的资产才具备的辅助性功能,仅在选择了通用人形角色的资产后才会出现这个按钮。点击按钮后,会打开一个窗口,在窗口中可以编辑控制点的 Lock State 属性。
将 Script Graph 资产中可由视化节点定义的绑定逻辑转化为 C# 代码,以提高绑定逻辑的执行效率。当代码生成后,可折叠区下方会出现 Regenerate Graph Code 与 Clear Graph Code 按钮,前者可重新生成代码文件,后者会清理删除已生成的代码文件。代码生成原理请参阅 Graph Code Generator。
注意:当 Rig Graph Manager 中包含多个 Rig Graph 资产时,Code generate 只会生成第一个资产的 C# 代码。后续将支持多个资产的 Code Generate。
设置所需的 Script Graph 资产,被挂载在名为资产名_RigRoot 的 Rig 根对象上。
用于显示 Script Graph 资产中定义的 Graph Variables,与 Rig Graph Script Machine 共处同一游戏对象层级下。更多详情请参阅通用人形资产的Rig Graph Variables说明。
收集并绘制当前根对象下挂载的所有控制点,与 Rig Graph Script Machine 共处同一游戏对象层级下。
用于编辑控制点,挂载在 Rig 根对象的任意子对象上,该组件有如下属性:
Style:设置 Gizmo 的形状,颜色,大小等属性。
Visible:设置 Gizmo 在场景中的可见性。
Lock State:设置控制点的控制状态,当 Lock State 为 Lock Global 时,会将控制点当前的 Global Transform 值锁定;当 Lock State 为 Lock Local 时,可以通过 m_LocalOffsetPosition / m_LocalOffsetRotation 来调整控制点的 Local Transform。
m_LocalOffsetPosition:当 Lock State 的值为 Lock Local 时,m_LocalOffsetPosition 的值将叠加到当前控制点的 Local Position 上,数值可通过右侧的 Clear 按钮来清除。
m_LocalOffsetRotation:当 Lock State 的值为 Lock Local 时,m_LocalOffsetPosition 的值将叠加到当前控制点的 Local Rotation 上,数值可通过右侧的 Clear 按钮来清除。
可通过场景中的 Overlay,对该组件进行快速添加与删除,详情参阅控制点组构建 。
Modular Rig Graph Manager 组件的功能与 Rig Graph Manager 类似,区别在于 Modular Rig Graph Manager 组件上使用的是模块化资产,并且暂时不支持 Code Generate 的辅助功能。
当一个游戏对象上同时存在Modular Rig Graph Manager 组件和 Rig Graph Manager 组件时,将根据在 Inspector 中显示的顺序,自上而下执行各自的逻辑。