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

配置眼神接触

配置 Convai 角色与玩家进行眼神接触时的投入强度,从自然行为到永久锁定。

通过设置以下内容来配置 Convai 角色对玩家眼神接触的投入程度 GazeEyeContactMode, GazeFocusFidelity,以及玩家锚点瞄准模式为 ConvaiGazeController。当默认的按状态行为对主持人或 kiosk 角色来说过于温和,或者当角色需要看向主摄像机以外的对象时,请使用此页面。

前提条件

  • 具有以下设置的角色 ConvaiGazeController 已添加——参见 凝视快速入门.

选择眼神接触模式

眼神接触 下拉菜单位于 ConvaiGazeController Inspector 的 Targeting 部分是产品级开关,用于控制角色对玩家投入的强度。可在此处设置,或在运行时通过 gaze.EyeContactMode:

模式

对话状态中的行为

在……期间的行为 空闲

用于

自然 (默认)

遵循配置文件按对话状态划分的策略表——经过编写、变化多样的投入。

环境性存在感;玩家不是有效目标。

具有精心设定个性的角色,应该看起来自然,而不是僵硬固定。

SpeakingFocus

只有在角色实际发声或对话状态为 说话中时,才完全投入到玩家。倾听和思考仍由配置文件驱动。

环境性存在感;玩家不是有效目标。

在说话时应专注、其他时候则应表现自然的主持人和对话 NPC。

ConversationLock

完全投入——投入度最大,不主动移开视线,头部充分参与,允许身体转向——在所有非空闲 状态时为 True。

环境性存在感;玩家不是有效目标。

绝不能在对话中途移开视线,但在对话间仍有闲置动作的角色。

AlwaysLock

完全投入,与……相同 ConversationLock.

完全投入——即使在……期间,玩家仍是有效目标 空闲.

绝不应移开视线的自助终端迎宾和演示台。

ConvaiGazeController gaze = GetComponent<ConvaiGazeController>();
gaze.EyeContactMode = GazeEyeContactMode.ConversationLock;

更改 EyeContactMode 在运行时会平滑过渡到新的投入级别,而不是突然跳变。

眼神接触锁定还会覆盖 AttendToSpeaker听众关注 用于在多角色对话中将角色转向当前发言者的设置):当 ConversationLockAlwaysLock 处于激活状态时,角色绝不会转身去跟随其他说话者的轮次,无论 听众关注 设置为何值。该锁定承诺会持续看着玩家,并且它优先。参见 对话注意力.

设置焦点保真度

GazeFocusFidelity 控制 ConversationLock, AlwaysLock,或 SpeakingFocus 在这些模式之一激活后,投入程度对玩家锚点的保持精确度:

行为

社交 (默认)

保留轻微的注视移动和有社交意义的头部动作,同时仍将玩家视为对话目标。推荐用于对话角色。

精确

在焦点激活期间抑制主动移开视线和注视偏移。眨眼、眼睑、瞳孔、辐辏以及符合人体结构的身体转向仍会表现。

社交 保真度仍允许显式的 GazeAt() 请求抢占该锁定,因此先看向某处再执行动作的复合行为仍可正常工作。 精确 保真度会拒绝脚本化的 GazeAt() 默认情况下;启用 AllowScriptedOverridesDuringExactFocus ,如果某个编写的序列无论如何都需要抢占它。参见 脚本化注视.

选择锚点的瞄准方式

GazeAnchorAimMode 控制角色实际瞄准玩家锚点上的哪个位置,与当前激活的眼神接触模式无关:

行为

自动 (默认)

当锚点是摄像机时使用摄像机的精确位置;当锚点不是摄像机时,则应用常规的视线抬升。

ExactTransform

使用锚点的精确世界坐标,不应用抬升。

LocalOffset

转换 PlayerAnchorAimOffset 从锚点局部空间到世界空间,因此瞄准点会随锚点移动。

在……上设置模式 ConvaiGazeControllerPlayerAnchorAimMode,并设置 PlayerAnchorAimOffset 在使用时 LocalOffset. LocalOffset 建议用于旋转过的自定义锚点,或 XR / 过场动画装置,其中 自动的摄像机位置假设不适用。

对于分屏、多人或过场动画设置,在这些情况下角色不应跟随 Camera.main,请设置 PlayerAnchorOverride 为它应当视作玩家的那个变换。

验证该设置

进入 Play 模式并开始对话。使用 ConversationLockAlwaysLock 设置后,角色应在每个对话节拍中都保持眼神接触,不会移开视线;而使用 AlwaysLock 时,它也应在 空闲期间保持接触。使用 自然SpeakingFocus时,接触应在……期间明显减弱 思考中 以及空闲时段。

下一步

凝视配置文件参考脚本化凝视凝视故障排查

最后更新于

这有帮助吗?