Skip to main content
Skip table of contents

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 中

image-20241007-162343.png

文件播放

SoundWave 播放状态驱动动画更新。

image-20241007-163101.png

闲置

我们希望在完整播放完文件后,或中途决定暂停音频文件时,角色能继续生成动画。为此,我们需要在当前没有文件播放时向 SG Com 输送空音频数据。(请参阅引擎闲置)。
通过 Input Silence 节点,可便捷地实现这一功能。

image-20241007-162813.png

设置回调

  • 针对模式更改时表情更改时回调,创建自定义 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 角色的肢体网格组件,以使用新的动画蓝图。

JavaScript errors detected

Please note, these errors can depend on your browser setup.

If this problem persists, please contact our support.