> For the complete documentation index, see [llms.txt](https://docs.convai.com/api-docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.convai.com/api-docs/zh/cha-jian-yu-ji-cheng/convai-unreal-engine-plugin/features/vision/vision-usage-examples.md).

# 视觉使用示例

这些示例展示了适用于以下内容的实用 Blueprint 模式： **Environment Webcam**。请先完成 [视觉快速入门](/api-docs/zh/cha-jian-yu-ji-cheng/convai-unreal-engine-plugin/features/vision/vision-quick-start.md) 如果你尚未为角色添加 Vision，请先完成。

每个示例都包含一个场景、要应用的设置、预期的运行时行为，以及如何验证。

### 在 BeginPlay 时自动开始 Vision

**场景：** 位于固定工作站的训练 NPC 应在关卡加载后立即开始场景采集。

**设置：** 选择 **Environment Webcam** 在角色 Blueprint 中。在 **Details** 面板下的 **Convai | Vision**，启用 `bAutoStartVision`。分配 **Convai Render Target** ，然后再进入播放模式。

**预期行为：** 在 `BeginPlay`期间，组件会调用 **Start**。当 **Convai Render Target** 已分配， **获取状态** 返回 `正在采集` ，并且聊天机器人可以在活动会话期间发送帧。

**验证：** 调用 **支持 Vision** 在聊天机器人上，并且 **获取状态** on **Environment Webcam**。两者都应在 `正在采集` 状态。

### 手动开始和停止

**场景：** 一个医疗培训模拟应仅在操作阶段使用 Vision。

**设置：**

1. 在你的操作开始事件中，获取对以下对象的引用： **Environment Webcam** 并调用 **Start**.
2. 在你的操作结束事件中，调用 **Stop** 于同一组件上。
3. 在调用 **Start**之前，检查 **获取状态** ，以避免如果该事件可能触发多次时出现重复启动。

**预期行为：** 该组件仅在活动操作阶段采集帧。 **获取状态** 返回 `正在采集` 在 **Start** 是位于 `已停止` 在 **Stop**.

**验证：** 只有在操作处于活动状态时，才询问角色关于可见物体的问题。在该阶段之外，回复不应引用场景内容。

### 限制采集 FPS 以减少带宽

**场景：** 一个企业入职培训模拟运行在受限网络上。降低采集速率是可以接受的。

**设置：** 在 **Details** 面板中，设置 **最大 FPS** (`m_MaxFPS`）设为 `5`。或者，调用 **Set Max FPS** 的值 `5` 从 Blueprint 初始化函数中。

**预期行为：** 聊天机器人读取 `GetMaxFPS()` 并将帧上传节流到大约每 `0.2` 秒一帧。

**验证：** 比较更改前后的响应延迟。 **输出日志** 应继续显示 `SendImage: 正在发送原始图像` ，并保持降低后的节奏。

### 检查是否已注册 Vision 组件

**场景：** UI 指示器应显示聊天机器人是否具有有效的帧源。

**设置：** 在事件图或小部件 Tick 函数中，调用 **支持 Vision** on `UConvaiChatbotComponent`。使用布尔返回值来驱动指示器。

**预期行为：** **支持 Vision** 返回 `true` 当实现 `UConvaiVisionInterface` 的组件已在聊天机器人上注册或可被发现时 `Actor`.

**验证：** 还要调用 **获取状态** on **Environment Webcam**。仅注册并不足以上传；源必须处于 `正在采集` 状态。

### 在采集开始后触发逻辑

**场景：** 角色应仅在 **Environment Webcam** 进入 `正在采集`.

**设置：** Bind **帧就绪时** on **Environment Webcam** 到一个自定义事件。使用布尔标志，使逻辑只运行一次。

```
// Blueprint 伪代码
bool bSetupComplete = false

OnFrameReady →
  如果 NOT bSetupComplete：
    bSetupComplete = true
    → 触发设置逻辑
```

**预期行为：** 设置逻辑会在组件正在采集时，第一次触发 **帧就绪时** 的 Tick 上运行一次。

**验证：** 请确认 **获取状态** 返回 `正在采集` 在自定义逻辑运行之前。

### 在运行时切换 Vision 组件

**场景：** 同一关卡中的两个角色各自拥有自己的 **Environment Webcam**。当控制切换到另一个角色时，当前聊天机器人应使用该角色的帧源。

**设置：** 在切换事件中：

1. 获取目标聊天机器人的 `UConvaiChatbotComponent` 引用。
2. 获取所需的 **Environment Webcam** 组件引用，位于该角色上。
3. 调用 **设置 Vision 组件** 到聊天机器人上，并传入摄像头组件。

**预期行为：** **设置 Vision 组件** 返回 `true` 并替换之前注册的源。聊天机器人会在下一次上传 Tick 中转发来自新组件的帧。

**验证：** 调用 **支持 Vision** 在目标聊天机器人上调用 **获取状态** ，并在新摄像头上调用

### 下一步

{% content-ref url="/pages/ec5b9bfb145ddc8145050976e8e8db28d33fc076" %}
[视觉蓝图参考](/api-docs/zh/cha-jian-yu-ji-cheng/convai-unreal-engine-plugin/features/vision/vision-blueprint-reference.md)
{% endcontent-ref %}

{% content-ref url="/pages/dd7a120c7a038befb7a1fe27de94e6b81d28e845" %}
[排查 Vision 问题](/api-docs/zh/cha-jian-yu-ji-cheng/convai-unreal-engine-plugin/features/vision/troubleshoot-vision.md)
{% endcontent-ref %}

{% content-ref url="/pages/a5aa237a7b13fb2c8d46ff004c1de14a2c4cda2a" %}
[视觉帧来源](/api-docs/zh/cha-jian-yu-ji-cheng/convai-unreal-engine-plugin/features/vision/vision-frame-sources.md)
{% endcontent-ref %}


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.convai.com/api-docs/zh/cha-jian-yu-ji-cheng/convai-unreal-engine-plugin/features/vision/vision-usage-examples.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
