For the complete documentation index, see llms.txt. This page is also available as Markdown.

情绪配置文件

所有可配置参数集中在一处——表情上升和下降的速度、微爆发如何增加自然感,以及中性交替如何防止面部僵住。

使用 ConvaiEmotionProfile 调整情绪行为

ConvaiEmotionProfile 是情绪系统的核心配置资源。它控制表情进入和退出的速度、每种新情绪是否会伴随一小段强度爆发、系统如何防止面部长期停留在一个僵硬姿势,以及哪些输出绑定会将分数传递到角色的网格或 Animator。每个参数都带有合理的默认值,因此你可以先从随附示例开始,再逐步微调。

创建配置文件资源

在项目窗口中,右键单击你的 Assets/ 文件夹,并选择:

创建 → Convai → Embodiment → Emotion Profile

一个名为 ConvaiEmotionProfile 会出现。将其重命名为更具描述性的名称(例如, NPC_Guard_EmotionProfile)并将其分配给角色的 Profile 字段。 ConvaiEmotionController 组件。

如果想在不创建资源的情况下开始,请分配随附的 ConvaiSamplesShared_EmotionProfilePackages / Convai SDK for Unity / SamplesShared / Resources / Embodiment / Modules / Emotion. 如果你想编辑任何值,请先复制它——包内的资源是只读的。

分类法

字段
默认值
描述

分类法

(无——Plutchik 内置)

可选 EmotionTaxonomyAsset 定义系统识别哪些情绪标签,以及如何将服务器标签解析为规范名称。留空则使用内置的九情绪 Plutchik 集。

该分类体系还为每种情绪提供了嘴部影响提示,供 LipSync 混合层使用。有关内置集合的完整细节以及如何创建自定义分类,请参阅 Emotion Taxonomy。

平滑

来自服务器的情绪分数不会立即应用。累加器会在每一帧执行指数平滑,使表情自然融合,而不是在数值之间突然跳变。

字段
范围
默认值
描述

lerpSpeed

0.1 – 20

5

分数向目标值上升的速度。数值越高,响应越迅速;数值越低,感觉越缓和。

decaySpeed

0.1 – 20

2

一旦目标被移除,分数回落到零附近的速度。默认情况下,衰减被刻意设得比上升更慢,让情绪有时间自然停留。

intensityOffset

-0.25 – 0.25

0

在进入累加器之前添加到每个归一化强度值上的固定偏置。正值会让所有情绪看起来更强烈;负值则会让它们更收敛。

指数平滑的工作方式: 每一帧,当前分数都会向目标值缩短剩余距离的一部分。 lerpSpeed = 5时,分数大约会在 1 秒内覆盖该距离的 99%。将速度翻倍会使达到完整表情所需的时间减半。当目标降为零时,衰减也使用同样的机制。

微表情爆发

当一个新情绪到来时,累加器可以施加短暂的超调——在稳定状态水平之上出现一个短促峰值——然后再回落。这会让表情有一个有力、自然的进入效果,在屏幕上的观感远胜于简单的线性上升。

字段
范围
默认值
描述

microBurstEnabled

true

启用或完全禁用爆发效果。

microBurstDuration

0.05 – 1.5 秒

0.25 秒

超调包络在分数衰减到其持续值之前持续的时间。

microBurstOvershoot

1.0 – 3.0×

1.4×

应用于爆发顶点分数的峰值倍数。1.4 表示表情会短暂达到其持续水平之上 40%。

microBurstThreshold

0 – 1

0.15

触发一次爆发所需的最小分数变化量。低于该阈值的小幅波动会在不触发爆发的情况下被平滑,从而避免细微情绪变化带来的抖动。

对于平静、专业的模拟,将 microBurstOvershoot 降低到 1.1–1.2,或完全禁用爆发。对于高能量或戏剧化角色,最高可用到 1.8。

中性交替

如果角色接收到持续的情绪信号——例如在一段长时间的讲解中始终保持“好奇”——最终可能会出现僵住的表情,从而破坏沉浸感。中性交替通过周期性地将当前表情淡出到中性,然后再恢复回来来解决这个问题,即使底层情绪保持不变,也能创造出微妙且逼真的变化。

字段
范围
默认值
描述

neutralAlternationEnabled

true

启用或禁用交替系统。

alternationMinInterval

0.5 – 30 秒

3 秒

在开始一次中性回落之前,当前表情至少保持的时间。

alternationMaxInterval

0.5 – 30 秒

7 秒

最长保持时间。实际间隔会在每个周期内于最小值和最大值之间随机选择。

alternationBlendDuration

0.05 – 5 秒

1 秒

过渡到中性(再回到原表情)所需的时间。较短的值会产生清晰、明确的重置;较长的值则几乎察觉不到。

alternateOnlyWhileTalking

false

启用后,只有当角色正在说话时才会发生交替。如果你希望轮次之间的停顿更稳定地保持表情,这会很有用。

Output Bindings

该配置文件的 Blendshape BindingAnimator Binding 部分定义了每一帧将平滑后的情绪分数发送到哪些网格 blendshape 和 Animator 浮点参数。这些内容配置为 EmotionSlotBinding 条目列表——每个输出通道中,每种情绪对应一个槽位。

完整的字段定义、针对不同骨骼的指导,以及预构建的 RealisticEmotionSlots 工厂方法都在 Output Bindings.

结论

ConvaiEmotionProfile 将所有平滑处理、微爆发、交替以及输出配置整合到一个可移植资源中,你可以在多个 NPC 预制体之间共享。继续 Output Bindings 以将平滑后的分数连接到角色的面部,或查看 Emotion Taxonomy 以了解并自定义情绪词汇。

最后更新于

这有帮助吗?