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

情绪分类法

EmotionTaxonomyAsset 参考,包括内置情绪集、服务器别名解析和自定义分类法编写。

该分类法将 Convai 的原始情绪字符串转换为 Emotion 模块其余部分使用的规范标签。当 Convai 发送 "happy" 时,分类法会将该别名解析为 "快乐" ,这样以规范标签为键的累加器和表情管线就能准确知道要更新哪个分数。SDK 随附一个受 Plutchik 启发的九情绪默认集;当你需要不同的词汇或额外的服务器别名时,可以编写自定义 EmotionTaxonomyAsset

内置分类法

taxonomy 字段在一个 ConvaiEmotionProfile 中留空时,系统会在运行时合成以下集合。这个默认集涵盖了 Convai 当前产生的每一种情绪,并且无需创建任何资源。

规范标签
服务器别名
默认口部影响

neutral

平静, 空闲

0.0

喜悦

快乐, 快乐, 狂喜, 宁静, 兴奋, 热情

0.6

信任

接受, 钦佩, 自信, 安心

0.3

恐惧

害怕, 忧惧, 惊恐, 害怕, 担忧, 焦虑, 紧张

0.4

惊讶

惊奇, 分心, 惊讶

0.5

悲伤

难过, 沉思, 悲痛

0.3

厌恶

厌恶, 憎恶, 无聊, 无聊

0.4

愤怒

生气, 恼怒, 狂怒

0.55

期待

兴趣, 警惕, 好奇, 好奇心, 渴望, 充满希望

0.45

默认口部影响 是一个按情绪划分的提示值(0–1),用于告诉面部合成器:当角色不在说话时,由情绪驱动的口型应贡献多少。主动说话期间,LipSync 负责口部 blendshape;在非说话状态下,该值控制情绪姿态对口部区域的塑形强度。

内置集合中每个非中性条目还带有一个 互补项 —— 一个相关情绪,在 情绪混合 开启时出现。 喜悦信任 时会以较低强度一并出现; 恐惧惊讶 彼此互为互补; 悲伤 互补项 厌恶; 厌恶 互补项 愤怒; 愤怒 互补项 厌恶; 期待 互补项 喜悦.

别名解析的工作方式

每当 Convai 发送一个情绪时,控制器都会调用 IEmotionTaxonomy.TryResolve(serverLabel, out EmotionDescriptor descriptor)。解析器会先检查规范标签,然后再检查所有条目中的完整别名列表。

  • 如果该标签成功解析,管线中就会始终使用对应的规范标签和描述符。

  • 如果该标签 不会 无法解析,控制器会回退到中性描述符。 不会产生控制台警告。 管线会继续正常运行,每一帧都写入中性分数。

示例: Convai 发送 "happy"TryResolve"happy" 的别名列表中找到 喜悦 条目 → 累加器将 "快乐".

创建自定义分类法资源

在 Project 窗口中,右键单击你的 Assets/ 文件夹内,然后选择:

创建 → Convai → 具身 → 情绪分类法

一个名为 EmotionTaxonomy 会出现。选择它,然后在 Inspector 中编辑条目列表。

EmotionTaxonomyEntry 字段

字段
类型
描述

label

string

管线中使用的规范、小写标签(例如 "快乐")。在该分类法中必须唯一。

aliases

List<string>

所有应解析到此条目的服务器端字符串(例如 "happy", "happiness").

互补项

List<string>

与此情绪自然搭配、并在 情绪混合 开启时会以较低强度一并出现的情绪规范标签——例如 喜悦 带有一丝 信任。仅当角色配置文件启用了混合时才会被使用。

defaultMouthInfluence

float (0–1)

用于 LipSync 混合的口部影响提示值。参考值请见上面的内置表。

isNeutral

bool

将此条目标记为该分类法的中性基线——面部在不同情绪之间恢复放松到的状态,以及累加器的衰减锚点。

useCustomDimensions

bool

启用后,此条目的 效价/唤醒度/能动性/趋近 字段将覆盖该标签内置的维度默认值。禁用时,这些值将从 EmotionDimensionDefaults 中为已知标签解析得到。

效价, 唤醒度, 能动性, 趋近

float (-1 – 1)

EmotionDimensions 该情绪携带的内容:有多愉快、多激动、多有掌控感,以及它会让角色更接近还是远离引发它的事物。被 Gaze、Body Language 和 locomotion 作为与类别标签并列的共享调制信号使用。仅在 useCustomDimensionstrue.

将自定义分类法分配给配置文件

  1. 打开你的 ConvaiEmotionProfile 资源。

  2. 拖入自定义的 EmotionTaxonomyAsset分类法 字段。

  3. 控制器会在下次应用该配置文件时拾取新的分类法——在 Play Mode 中会立即生效,在 Edit Mode 中也会立即生效,因为 ConvaiEmotionController 从其基类中 [ExecuteAlways] 继承了

何时创建自定义分类法

内置的 Plutchik 集涵盖了 Convai 当前发送的所有情绪。当以下情况出现时,创建自定义分类法就很有价值:

  • 你的 Convai 配置使用了不同于内置别名的自定义情绪标签。

  • 你想使用不同的概念模型——例如 Ekman 的六种基本情绪——并将多个服务器别名映射到更少的规范桶中。

  • 你想调整 defaultMouthInfluence 值,以便更好地适配你的角色骨骼。

  • 你需要定义 互补项 关系,用于情绪混合,或者编写 效价/唤醒度/能动性/趋近 与内置默认值不同的维度。

下一步

情绪脚本 API情绪故障排查

最后更新于

这有帮助吗?