SG Com UE 演示应用程序
简介
本文概述了 SG Com UE 插件随附的 UE5 演示应用程序。该演示程序做了一些简化假设:
有一个由单个音频流驱动的角色。
动画位于本地,即引擎和相应的播放器在同一台机器上(请参阅网络使用的情况与本地使用的情况)。
输入音频的方式有两种:从音频文件输入或从麦克风输入。
对于更复杂的用例,开发人员需要调整演示程序。
该演示应用程序是关于如何使用 SG Com UE 插件的指南。请注意,这只是一个示例,并非每个步骤都必须完全按照描述进行。
启用插件
确保该插件已正确安装到引擎或项目中,并且已在 Unreal Engine 编辑器中启用。
启用插件后,您必须重启 Unreal 编辑器。
配置插件
在编辑器中导航到项目设置,然后在插件下找到 SG Com 部分。在这里您可以找到一些不同的设置进行配置:
将许可证文件路径设置为 SG Com 许可证的位置。如果路径不正确或指向的许可证无效,插件将无法运行。
日志目录路径是生成 SG Com 日志的位置。请将其设置为任何方便的位置,例如,在项目中的新目录下,如 Saved/SGComLogs。
日志记录级别决定了 SG Com 在日志中提供信息的详细程度,其中无表示最低,调试表示最高。
文件示例
在本例中,我们将把逻辑放在关卡蓝图中,这样就可以在关卡启动时初始化并执行任何设置,然后在关卡结束时关闭。
添加和配置 SG Com 会话组件
在场景中添加一个想要使用 SG Com 制作动画的 MetaHuman。
在场景大纲视图中选择演员,然后单击演员详细信息面板顶部的添加选项。选择 SGCom 会话。
配置 SG Com 会话。有关如何配置的指导,请参阅 SG Com UE 配置。
获取 SG Com 会话组件
获取并存储 SG Com 会话组件的引用。这将用于调用关卡蓝图中任何必要的会话函数。
初始化 SG Com
调用Initialize SGCom 函数初始化 SG Com。
启动会话
使用我们之前存储的组件引用,调用 Start Session 来启动会话。
自动模式检测
调用 Set Auto Mode,从下拉列表中选择自动模式,然后在模式名称文本框中键入所需的情绪模式名称,将积极自动模式映射到“积极”情绪模式。
对消极、用力声和确认三种自动模式重复此过程,分别将它们映射到“消极”、“用力声”和“确认”情绪模式。
在 SG Com 会话组件上调用 Activate Auto Modes,激活自动模式。
音频输入
使用 Input SoundWave 节点将 SoundWave 输入 SG Com 中
文件播放
SoundWave 播放状态驱动动画更新。
闲置
我们希望在完整播放完文件后,或中途决定暂停音频文件时,角色能继续生成动画。为此,我们需要在当前没有文件播放时向 SG Com 输送空音频数据。(请参阅引擎闲置)。
通过 Input Silence 节点,可便捷地实现这一功能。
设置回调
针对模式更改时和表情更改时回调,创建自定义 events。这些自定义 events 应使用字符串作为输入,因此请务必添加该字符串。
绑定这些 events。
将 events 设置为打印输出,以便进行调试。
更新动画
在这里,我们使用了之前设置文件播放时创建的自定义 event 播放时间已更改。
触发 event 时,将获取新的播放时间。
计算自上次播放时间更改以来的变化量。
使用此变化量对 SG Com 中的动画进行必要的更新。
结束会话并关闭 SG Com
调用 End Session 结束活动会话。
调用 Shutdown SGCom。
麦克风示例
在本例中,我们将把逻辑放在关卡蓝图中,这样就可以在关卡启动时初始化并执行任何设置,然后在关卡结束时关闭。
添加和配置 SG Com 会话组件
在场景中添加一个想要使用 SG Com 制作动画的 MetaHuman。
在场景大纲视图中选择演员,然后单击演员详细信息面板顶部的添加选项。选择 SGCom 会话。
配置 SG Com 会话。有关如何配置的指导,请参阅 SG Com UE 配置。
获取 SG Com 会话组件
获取并存储 SG Com 会话组件的引用。这将用于调用关卡蓝图中任何必要的会话函数
初始化 SG Com
调用Initialize SGCom 函数初始化 SG Com。
启动会话
使用我们之前存储的组件引用,调用 Start Session 来启动会话。
自动模式检测
通过以下方式,将积极自动模式映射到“积极”情绪模式:调用 Set Auto Mode,从下拉列表中选择自动模式,然后在模式名称文本框中键入所需的情绪模式名称。
对消极、用力声和确认三种自动模式重复此过程,分别将它们映射到“消极”、“用力声”和“确认”情绪模式。
在 SG Com 会话组件上调用 Activate Auto Modes,激活自动模式。
音频输入
本示例设置为使用自定义 MicrophoneGameModeBase 游戏模式。本示例用 C++ 编写,使用 FAudioManager 麦克风功能通过 SG Com 会话组件将音频数据输入 SG Com。
获取游戏模式并将其投射到 MicrophoneGameModeBase。
在游戏模式下调用启动麦克风,并通过 SG Com 会话组件引用进行传递。现在,音频数据将从麦克风持续输入 SG Com 进行处理。
麦克风播放
获取 MicrophoneGameModeBase 中存储的 USoundWaveProcedural。其中包含我们要播放的麦克风音频数据。
在场景中生成一个使用程序声波对象的 2D 声音。
获取生成声音 2D 函数返回的音频组件,并将自定义 event 播放时间已更改绑定到组件的根据音频播放百分比回调。
播放音频组件,开始音频播放。
设置回调
针对模式更改时和表情更改时回调,创建自定义 events。这些自定义 events 应使用字符串作为输入,因此请务必添加该字符串。
绑定这些 events。
将 events 设置为打印输出,以便进行调试。
更新动画
在这里,我们使用了之前设置麦克风播放时创建的自定义 event 播放时间已更改。
触发 event 时,将计算当前播放时间。
计算自上次更新以来的变化量。
使用此变化量对 SG Com 中的动画进行必要的更新。
结束会话并关闭 SG Com
调用 End Session 结束活动会话。
调用 Shutdown SGCom。
动画蓝图
要将 SG Com 动画数据应用到 MetaHuman 角色,我们需要使用 SG Com 姿势动画节点。在本例中,我们将尽可能简化,只制作一个新的、非常基本的动画蓝图。
创建以 MetaHuman 肢体骨骼网格为动画控制器的动画蓝图素材(MetaHuman 设置包含脸部和肢体动画控制器)。
添加一个 SG Com 姿势节点。
将 SG Com 节点的输出姿势输入蓝图的最终输出姿势。
设置 MetaHuman 角色的肢体网格组件,以使用新的动画蓝图。