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

身体动画配置参考

Convai Body Animation 配置资源中每个设置组和字段的参考,包括每一项的默认值和取值范围。

ConvaiBodyAnimationConfig (Convai/Embodiment/身体动画配置)是 Convai 身体动画的运行时调优资源:过渡时序、层级行为、行走同步、功能开关和诊断。内容位于一个单独的 ConvaiBodyAnimationSet中;此资源只塑造行为,因此一个配置可在多个角色之间共享。其 90 个序列化字段分组为 11 个命名部分,下面每 ## 个部分对应一节,与配置资源自身的 Inspector 以及 Body Animation Editor 窗口的 Feel 模式一致。

人格

这个角色的举止方式。一个动画库,许多不同的人。

字段
类型
默认值
范围
描述

手势生动度

float

1

02

按比例放大说话手势的表现力:说话叠加层权重上限、循环时切换变体的概率,以及节拍手势的频率(反向通过不应期窗口)。 1 复现默认行为。

沉稳度

float

1

02

延长待机变体间隔,并略微拉长说话淡入。数值越高,角色看起来越沉着、越有分寸。

说话

角色说话时如何做手势。

字段
类型
默认值
范围
描述

TalkFadeInSeconds

float

0.5

>= 0.01

角色开始说话时,说话层的淡入时间。

TalkFadeOutSeconds

float

0.9

>= 0.01

角色停止说话时,说话层的淡出时间。

TalkReleaseDelaySeconds

float

0.16

>= 0

语音停止后、说话淡出前的短暂保持,让当前手势先稳定下来,再混合到待机。

TalkReleasePlaybackSpeed

float

0.2

01

语音释放窗口期间的播放速度。放慢剪辑可防止原本设计的手臂动作在语音结束后继续上抬。

UseSpeechEnergy

bool

true

根据实时语音能量缩放说话层权重,因此轻声说话时手势会更少。

TalkWeightAtLowEnergy

float

0.2

01

在语音能量为零时,说话层的权重,当 UseSpeechEnergy 开启时出现。

TalkOverlayWeight

float

0.45

01

说话叠加层可达到的最大权重。数值越低,语音手势下保留的待机姿势越多。

SwitchTalkVariantOnLoop

bool

true

当前说话变体循环时切换到另一种说话变体,让长段讲话更有变化。

TalkVariantCrossfadeSeconds

float

0.5

>= 0.01

长段讲话期间在不同说话变体之间交叉淡入淡出。

TalkOutroMaxSeconds

float

0.7

>= 0.05

语音结束时,作者设置的 Outro Clip 可能引入的额外延迟上限,以免很长的收尾剪辑延迟回到待机。

行走时说话

说话手势是按站立状态制作的。这里决定角色在同时做手势和行走时会发生什么。

字段
类型
默认值
范围
描述

MovingTalk

MovingTalkMode

自动

自动, 软化覆盖, 抑制

自动 对带有 Additive Clip 的条目,在步态上播放叠加式手势增量;对没有 Additive Clip 的条目,则软化覆盖; 软化覆盖 始终使用降低权重的覆盖; 抑制 在移动时完全淡出说话。

MovingTalkWeight

float

0.7

01

在使用 Additive Clip、且角色移动时,走路与说话叠加层(手臂和手)的权重。

MovingTalkOverrideWeight

float

0.45

01

在没有 Additive Clip 时、移动中覆盖说话权重的上限。

MovingTalkBlendSeconds

float

0.35

>= 0.05

当语音过程中开始或停止移动时,静止与移动说话叠加层之间的交叉淡入淡出时间。

聆听与思考

当玩家在说话,以及回复前的停顿期间保持的姿势。动画集中需要 Listen/Think 剪辑。

字段
类型
默认值
范围
描述

ListenFadeInSeconds

float

0.8

>= 0.01

进入 Listen 姿势时,说话层的淡入时间。

ThinkingEnterDelaySeconds

float

0.4

>= 0

思考 必须持续多久 Think 姿势才会生效。少于一秒的回复不会让思考姿势来回抖动。

反应

被打断、强调语速节奏,以及对它所说内容做手势。手势功能需要动画集中带标签的剪辑。

字段
类型
默认值
范围
描述

InterruptedFreezeSeconds

float

0.25

>= 0

DialogueState 变为 Interrupted 在说话播放时,当前姿势被冻结(不是淡出)的时长,然后才开始更快的被打断释放。

InterruptedReleaseScale

float

0.6

0.051

……的乘数 TalkFadeOutSeconds 用于在打断冻结之后的释放。

EnableBeatGestures

bool

false

在检测到语音能量上升时,触发短促的叠加式节拍手势,叠加在说话层之上。默认关闭——它只会播放已制作且带有标签的剪辑 节拍/强调 ,没有程序化替代方案。

BeatRefractorySeconds

float

1.2

>= 0.05

两个节拍手势之间的最小秒数。

BeatWeightScale

float

1

01.5

节拍手势根据起始强度推导出的权重乘数。

BeatLayerWeight

float

1

01

语音重音叠加在说话手势之上的强度。

EnableReferentialGestures

bool

true

对角色所说内容做手势——第二人称、第一人称、命名的场景对象,或序数/数字词。带有该提示标签的已制作剪辑会直接播放;没有对应剪辑的动画集会把提示交给同伴表演者。

ReferentialGestureRefractorySeconds

float

6

130

任意两个指代性手势之间的最小秒数。

ReferentialGestureClassCooldownSeconds

float

10

160

同一类指代性手势再次触发前的最小秒数。

ReferentialGestureWeight

float

1

01.5

在靠近表达力乘数之前,指代性手势的权重乘数。

Presence

在没有其他事情发生时,角色在玩家周围的行为方式。

字段
类型
默认值
范围
描述

ProximityExpressiveness

bool

true

根据对话距离缩放说话手势的表现力:更近时更含蓄,更远时更夸张。

ProximityNearDistance

float

1.5 (米)

>= 0.1

小于或等于该距离时 ProximityNearScale 完全生效。

ProximityNearScale

float

0.85

0.81.15

小于或等于时的表达力乘数 ProximityNearDistance.

ProximityFarDistance

float

6 (米)

>= ProximityNearDistance + 0.1

大于或等于该距离时 ProximityFarScale 完全生效。

ProximityFarScale

float

1.15

0.81.15

大于或等于时的表达力乘数 ProximityFarDistance.

ProximitySmoothingSeconds

float

0.5

>= 0.05

近距离乘数平滑过渡所需的秒数,因此朝角色走近时不会明显让手势大小忽大忽小。

EnableAmbientActivities

bool

false

执行一个 Ambient-标记的动作,在随机节奏下,当没有人一段时间内与角色互动时触发。默认关闭——它会播放完整的已制作表演,没有程序化替代。

AmbientStartDelaySeconds

float

12

3120

空闲 必须持续多久,首个环境活动才可能触发。

AmbientIntervalSeconds

float

20

5300

一旦进入待命状态,环境活动之间的平均秒数(±40% 抖动)。

AmbientSuppressDistance

float

4 (米)

120

当对话对象离得这么近或更近时,不会开始新的环境活动。

EnableSocialSpacing

bool

false

当对话对象持续停留在角色个人空间泡泡内时,进行一次短暂的 NavMesh 重定位,而不是像雕像一样站着不动。

ComfortRadius

float

0.7 (米)

0.32

个人空间半径。持续低于此距离的对话会触发重定位。

ComfortHoldSeconds

float

0.6

0.13

对话对象必须连续处于内部的秒数 ComfortRadius ,之后才会触发重定位。

MaxRepositionsPerMinute

int

3

110

社交间距重定位在滚动一分钟内的硬上限。

EnablePointGlance

bool

true

当角色指向某物时,在视线回到玩家之前,也会短暂看一眼该物体。需要角色上有一个 IGazeGlanceHandler (Convai Gaze 模块在存在时会自动注册一个)。

PointGlanceSeconds

float

0.9

0.23

指点注视在视线回到玩家之前保持的时长。

PointingFadeSeconds

float

0.3

>= 0.01

指向层淡入/淡出时间。

PointingReaimCrossfadeSeconds

float

0.25

>= 0.05

当实时指向手势重新瞄准到新方向,或在释放中途重新指定目标时的交叉淡入淡出。

PointingLayerWeight

float

1

01

一个指向手势对其下方手臂姿势的完全替换程度。

行走与奔跑

行进速度、角色何时原地转身,以及允许播放哪些到达表演。

字段
类型
默认值
范围
描述

WalkSpeed

float

1.2 (米/秒)

>= 0.1

用于行走时的代理速度指令;在 Clip Motion Analyzer 填充元数据之前,它也是回退使用的作者设定行走速度。

JogSpeed

float

2.6 (米/秒)

>= 0.1, >= WalkSpeed

用于慢跑时的代理速度指令。

SpeedDampingSeconds

float

0.12

>= 0.01

驱动移动混合的代理速度读数的平滑时间。

TurnInPlaceMinAngle

float

60 (度)

>= 1

触发原地转身而不是直接离开的偏航误差。

Turn180MinAngle

float

135 (度)

>= 90, >= TurnInPlaceMinAngle + 5

高于该偏航误差时,使用 180° 转身/起步变体。

RateWarpMin

float

0.85

0.51

播放速率变形的下限夹制(代理速度 ÷ 作者制作的剪辑速度)。

RateWarpMax

float

1.2

11.5, >= RateWarpMin

播放速率变形的上限夹制。

MotionHandoffNormalizedTime

float

0.85

0.50.98

标准化剪辑时间,在该时刻起步/转身/变速的一次性动作交叉淡入到其后续状态。

LowSpeedStopFraction

float

0.6

0.11

低于该行走速度比例时,选择低速停止剪辑。

PlantedStopMinTravel

float

1.2 (米)

>= 0

一条腿必须在巡航速度下覆盖的距离,达到后才能播放脚踩实地停止剪辑;更短的重定位会由代理刹车和普通待机混合来收束。

EnableTurnInPlace

bool

true

当角色在出发前必须面向新方向时,播放一段制作好的转身剪辑。需要集合中有转身剪辑。

EnableDirectionalStarts

bool

true

使用为行进方向制作的剪辑开始行走。需要集合中有起步剪辑。

EnablePlantedStops

bool

true

用一个带脚踩实地的已制作停止动作完成移动。需要集合中有停止剪辑。

PlantedStopsWhileWalking

bool

false

在以行走速度到达时,也播放脚踩实地停止剪辑。默认关闭——在慢跑动量下看起来合适,但在两步走时会显得做作。

EnableSpeedChangeClips

bool

true

在步行与慢跑之间切换时,播放过渡剪辑。需要集合中有步行↔慢跑剪辑。

EnableSpeedWarping

bool

true

微调剪辑播放速率以匹配实际移动速度,避免脚滑。

EnableFootIK

bool

true

让 Unity 的脚部 IK 将双脚稳定到地面表面上。

EnableEmotionalGait

bool

false

根据角色当前情绪(由唤醒度推导)缩放指令步行/慢跑速度。默认关闭——这是一种风格化选择。

EmotionGaitRange

float

0.15

00.3

情绪导致的最大速度百分比变化,双向均适用。

过渡与待机

混合持续多久,以及角色多久切换一次待机姿势。

字段
类型
默认值
范围
描述

IdleCrossfadeSeconds

float

0.6

>= 0.01

不同待机变体之间的交叉淡入淡出。

IdleVariantIntervalMin

float

8

>= 1

一个待机变体至少播放多久,调度器才可以切换它。

IdleVariantIntervalMax

float

16

>= 1, >= IdleVariantIntervalMin

一个待机变体在调度器切换前可播放的最长秒数。

ActionFadeInSeconds

float

0.25

>= 0.01

默认动作/手势淡入;各条目可覆盖。

ActionFadeOutSeconds

float

0.35

>= 0.01

默认动作/手势淡出;各条目可覆盖。

ActionChainCrossfadeSeconds

float

0.2

>= 0.05

动作链内部的剪辑交叉淡入淡出(intro→main→outro)以及同遮罩动作替换。

ActionLayerWeight

float

1

01

一个正在播放的动作对其下方内容的完全替换程度。

LocomotionCrossfadeSeconds

float

0.25

>= 0.01

行走状态之间的交叉淡入淡出(待机↔移动、起步、停止、转身)。

BlendCurve

AnimationCurve

0→1 缓入缓出

必须从 0→1

应用于每个层级/状态权重淡出的缓动曲线。缺失或少于两个关键点时,回退到默认缓动曲线。

高级协同语音

程序化的语音节奏重音。默认关闭;下面的数值仅在开启时生效。

字段
类型
默认值
范围
描述

EnableAdvancedCoSpeech

bool

false

仅根据语音能量包络推导出推测性的重音,而不依赖任何语义证据,并将这些也发布给同伴表演者。角色真正意图表达的提示始终会被发布,不受此设置影响。

CoSpeechMinimumAccentEnergy

float

0.42

0.11

语音要多大声才算是重音。

CoSpeechEmphasisDerivative

float

1.2

0.15

音量上升得多陡,才会被视为强调。

CoSpeechAccentProbability

float

0.48

01

满足条件的时刻实际变成重音的概率。

CoSpeechAccentRefractorySeconds

float

0.85

0.33

两个重音之间的最小秒数。

CoSpeechPhraseEnergyMargin

float

0.08

0.010.3

音量必须低于运行平均值多少,才算短语断点。

CoSpeechPreparationSeconds

float

0.22

0.050.6

重音落下前的蓄势时间。

CoSpeechStrokeSeconds

float

0.16

0.050.5

重音本身的持续时间,也就是动作的快速部分。

CoSpeechReferentialHoldSeconds

float

0.28

01

重音落下后,姿势在完全伸展位置保持多久,然后再收回。

CoSpeechRetractionSeconds

float

0.38

0.11

手臂在保持后回收稳定所需的时间。

集成

此模块向其他 Convai 系统发布的信号。

字段
类型
默认值
范围
描述

PublishExertion

bool

true

发布一个标准化的行进努力信号(IExertionSource)到角色上下文中,以便同伴模块(身体语言的呼吸)可以消费。若没有注册消费者,则无害。

ExertionRiseSeconds

float

8

0.520

努力值从 0 上升到 1 所需的持续满负荷奔跑时间(秒)。

ExertionRecoverySeconds

float

6

0.520

当角色减速或停止后,努力值从 1 衰减回 0 所需的秒数。

诊断

这个角色运行时向控制台报告多少信息。

字段
类型
默认值
描述

跟踪详细程度

AnimTraceVerbosity

关闭

此角色身体动画追踪的控制台/日志详细程度。警告和错误始终会记录,不受影响。

FirehoseIntervalSeconds

float

0.25

>= 0.05 — 两次 火力全开级别逐 tick 转储之间的秒数。

AnimTraceVerbosity 值,每个都包含其下方所有内容:

Integer
描述

关闭

0

无跟踪输出。警告和错误仍会记录。出厂默认设置——一个会行走和说话的角色会持续输出一串过渡,而控制台里满是常规播放实况时,真正的警告反而容易被忽略。

State

1

状态机过渡、层所有权变更、动作生命周期、剪辑选择以及启动功能摘要。用于诊断角色做了什么时应提高的级别。

详细信息

2

增加选择器决策(角度、距离、脚步相位)、带权重的变体抽取、速度变形夹制,以及执行器开始/结束标记。

火力全开

3

增加对层权重和混合位置的逐 tick 节流转储。极其啰嗦;仅适用于短时间调试。

相关参考

身体动画脚本参考配置移动

最后更新于

这有帮助吗?