情感快速入门
将 Convai 角色的情感分数连接到其 Skeletal Mesh 上的 Morph Target,使面部表情在对话期间自动更新。
最后更新于
这有帮助吗?
将 Convai 角色的情感分数连接到其 Skeletal Mesh 上的 Morph Target,使面部表情在对话期间自动更新。
我们将把 Convai 角色的情绪分数连接到其 Skeletal Mesh 上的 morph target,这样角色在对话时面部表情会自动更新。来自 Convai 的情绪数据默认在每个 Convai 聊天机器人 组件上启用——只有当你想要一种自定义实现,将这些分数映射到角色的 Skeletal Mesh 上的 morph target 时,才参考本指南。到最后,在编辑器中进入 Play In Editor 并与角色说话时,你会实时看到可见的表情变化。
每当 UConvaiChatbotComponent 接收到来自 Convai 的新情绪状态时,使用 获取情绪分数读取每种情绪的分数,并使用 设置形态目标.
开始前,请确认:
已安装 Convai Unreal Engine 插件,并已配置 API 密钥。
角色 Actor 已放置在你的关卡中,并且有一个可用的 Convai 聊天机器人 组件(你与它交谈时,角色已经会说话)。
角色的 Skeletal Mesh 拥有你想要驱动的情绪对应的 morph target——请查看 Morph Targets 选项卡,在 Skeletal Mesh 资产编辑器中并记下准确的名称。
如果角色还未设置好,请先完成 添加你的第一个角色 ,然后再回到这里。
预期结果: Blueprint 图中显示 情绪状态更改时 → 一个或多个 获取情绪分数 → 设置形态目标 链路,全部连接无误。Blueprint 编译正常。
进入 Play In Editor 并开始对话。与角色说话并观察它的脸——随着角色以不同的情绪内容作出回应,表情应会变化。
如果没有出现表情变化,请使用以下检查清单:
该 Convai 聊天机器人 组件具有有效的 角色 ID 并且插件可以连接到 Convai。
该 情绪状态更改时 事件触发——添加一个 打印字符串 节点到处理程序中进行验证。如果它从未触发,说明会话没有连接,或者 Convai 没有发送情绪数据。
获取情绪分数 返回一个高于 0.0 当角色说话时——添加 Print Float 节点到分数节点之后以确认。
该 Morph Target Name 在每个 设置形态目标 节点上的名称与角色 Skeletal Mesh 中的名称完全一致(区分大小写)。
请参见 情绪故障排查 获取详细指导。
当你与角色交谈时, UConvaiChatbotComponent 接收了 Convai 的情绪信号,将服务器标签映射为一个 EBasicEmotions 值,从服务器刻度(刻度 / 3 加上 EmotionOffset)计算出一个浮点分数,并触发 情绪状态更改时。你的处理程序读取这些分数并将其应用到 Skeletal Mesh 上。要了解各阶段的完整说明,请参阅 情绪系统的工作原理.
将每个 EBasicEmotions 类别映射到你的角色绑定上实际存在的 morph target 名称。MetaHuman 和 Reallusion 的设置通常使用不同的命名约定——请直接从 Morph Targets 选项卡复制名称,而不要假定固定列表。
最后更新于
这有帮助吗?
这有帮助吗?