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

视觉如何工作

了解 Vision 管线架构,包括帧源、发布协调器、到 Convai 的 WebRTC 轨道以及启动序列。

Vision 将来自 Unity 的实时摄像头画面流式传输到 Convai,并与音频对话一起进行处理。此页面解释了管线架构、各组件的作用,以及 Vision 启动时 SDK 在运行时的行为。

架构

帧源从你的场景中捕获图像,并将它们传递给 ConvaiVisionPublisher,它通过 LiveKit 层管理一条 WebRTC 视频轨道。协调器会应用已配置的发布策略(帧率和比特率),然后将帧转发给 Convai 进行 AI 处理,并与音频对话一起处理。

在 WebGL 上, ConvaiVisionPublisher 完全绕过帧源,并通过浏览器画布直接发布 canvas.captureStream()。WebRTC 和 Convai 处理层在所有平台上都相同。

关键概念

概念
其含义

帧源

A MonoBehaviour 用于捕获帧并将其公开为 Y 轴翻转的 RenderTexture。三个内置实现覆盖了 Unity 摄像机、物理摄像头以及 Meta Quest 透视。

发布策略

控制向 Convai 流式传输时使用的客户端帧率和比特率。不控制后端使用哪种 AI 模型或视觉提供方。

视频轨道

发布到当前 Convai 房间中的一条 WebRTC 视频轨道。通过以下内容标识: 轨道名称 上的字段 ConvaiVisionPublisher (默认: "unity-scene").

房间连接

Vision 仅在以下情况下发布: ConvaiRoomManager 已连接到 连接类型 设置为 视频。仅音频连接不携带视频。

组件放置

了解每个组件应放置在何处,可以避免最常见的配置错误。

组件
放置位置
说明

ConvaiRoomManager

任何持久的场景 GameObject

连接类型 必须设置为 视频

ConvaiVisionPublisher

任何持久的场景 GameObject

通常放置在 NPC 根对象上或其附近

CameraVisionFrameSource

与发布器相同的 GameObject 或其子 GameObject

每个捕获源一个

WebcamVisionFrameSource

与发布器相同的 GameObject 或其子 GameObject

每个捕获源一个

QuestVisionFrameSource

与发布器相同的 GameObject 或其子 GameObject

仅限 Meta Quest 3 / 3S;需要 Meta XR SDK

VisionDebugPreview

任何场景 GameObject

仅限编辑器;在播放器构建中会自动禁用

启动顺序

ConvaiRoomManager 连接到 连接类型 设置为 视频,以下操作会自动发生: AutoCompatible, 高响应,以及 低开销 策略:

  1. ConvaiRoomManager 与 Convai 建立视频连接。

  2. ConvaiVisionPublisher 检测当前活动房间,并通过以下方式解析帧源: GetComponentGetComponentsInChildren.

  3. 帧源开始捕获并发出 就绪。对于 CameraVisionFrameSource,这会渲染分配的摄像头(或 Camera.main)到一个 RenderTexture.

  4. VisionPublishCoordinator 应用所选发布策略(例如, AutoCompatible:10 fps,750 kbps),并开始将帧转发到视频管线。

  5. 名为 "unity-scene" 的 WebRTC 视频轨道会发布到 Convai 房间。 ConvaiVisionPublisher.IsPublishing 变为 true 以及 VideoTrackPublished 领域事件触发。

对于 Manual 策略,第 5 步不会自动发生——请从脚本中调用 EnablePublishing(true) 以开始发布。

下一步

视觉快速入门视觉帧来源Vision 脚本 API

最后更新于

这有帮助吗?