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

对话动画如何工作

了解 Dialogue Animation 如何选择剪辑、驱动四层 animator 栈,并利用情绪和对话状态为 AI 角色制作动画。

对话动画模块以对话状态和检测到的情绪作为输入,驱动 AI 角色的身体和头部手势动画。它不再为每个动画片段硬编码动画器状态,而是使用一个 AnimatorOverrideController 在运行时从一个池化库中注入动画片段——随着对话推进动态切换候选片段。该模块完全在 Unity 内运行。没有任何动画数据会发送到 Convai。


对话状态与层控制

每一帧,模块都会读取两个信号:当前的 对话状态 (待机、倾听、思考、说话、 प्रतिक्रिया)以及当前的 情绪读数 ,来自 Emotion 模块。它使用这些信号从一个 DialogueAnimationLibrary 中选择并交叉淡入淡出动画片段,并在四层动画器栈中进行播放。

这四层是可叠加且带遮罩的:基础待机会持续播放,待机叠加会增加变化,而当角色开口说话时,两个对话层会淡入。对话层动画片段通过 DialogueTalkBodyCoverage 进行路由——动画片段可以仅作用于头部、仅作用于身体,或同时作用于两者。


配置资源

该模块由四种 ScriptableObject 类型驱动:

资源
用途

DialogueAnimationLibrary

待机和对话动画片段池,每个片段都标记了情绪亲和性和角色性别

DialogueAnimationRuntimeConfig

时序、混合时长、层权重以及选择参数

DialogueAnimatorContract

将层索引和状态名称映射到你的 Animator Controller

ConvaiDialogueAnimationProfile

将上面的三个资源打包成单个角色预设

SDK 附带三个打包配置文件: 均衡, 富表现力,和 含蓄。它们无需自定义制作即可覆盖大多数角色。


下一步

按照快速开始,在你的第一个角色上运行该模块,然后阅读动画库与配置文件,以了解动画片段池、时序以及完整字段参考。

对话动画快速开始动画库与配置文件

最后更新于

这有帮助吗?