> 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/unreal-engine-plugin-beta-overview/convai-actions/phase-1-default-actions.md).

# 阶段 1：默认 Actions

{% embed url="<https://youtu.be/yWqJQRttoEI>" %}
观看更新后的 Convai Unreal Engine 插件的动作教程
{% endembed %}

该聊天机器人自带四个已注册的动作模板。只需经过几个编辑器步骤，并 **零蓝图脚本**，你就可以让一个 Convai 角色走向对象、跟随玩家，并按需等待。

在此阶段结束时，你的角色将对如下口头指令作出响应： *“去蓝色立方体，”* *“现在回到我这里，”* *“跟着我，”* 和 *“停止。”*

### 你需要准备的内容

* 一个已放置 Convai 角色 Actor 的关卡（任何示例角色都可以）。
* 关卡中的一个或多个对象（FirstPerson 模板非常适合此阶段）。

### 步骤 1 — 启用聊天机器人的动作

1. **选中关卡中的 Convai 角色 Actor。**
2. 在 **详情** 面板，滚动到 **Convai 聊天机器人** 组件（通常显示在 Actor 的 Components 列表下方——点击它）。
3. 找到 **Convai → 动作** 类别。
4. 勾选 **`启用动作`** 复选框。

{% hint style="info" %}
此开关控制聊天机器人的 `环境` 是否序列化为 `action_config` 的 `/connect` 时间。否则，服务器会将该机器人视为仅用于对话。
{% endhint %}

<figure><img src="/files/25863ab7d9aad55214f865cf17acc9bd4e2d9b77" alt=""><figcaption></figcaption></figure>

### 步骤 2 — 注册一个对象

机器人只能针对你告诉它的内容。将立方体添加到聊天机器人的 `Environment.Objects` 列表：

1. 在同一 **Convai → 动作** 类别中，找到 **`环境`** 结构体。
2. 展开它，然后展开 **`对象`**.
3. 点击 **`+`** 以添加新条目。
4. 填写：
   * **名称**: `立方体` （这是 LLM 将使用的人类友好型标记——请保持简短且明确）。
   * **描述**: `地板上的一个蓝色立方体`.
   * **Ref**：从下拉菜单中选择场景里的立方体 Actor。

你可以按需添加任意多个对象——对每个立方体以及机器人应了解的其他道具重复此操作。

<figure><img src="/files/58addcf2008a58203c1f9343a401c371d63f6b57" alt=""><figcaption></figcaption></figure>

{% hint style="info" %}
提示：稳定且彼此区分明确的名称很重要。 *“红色立方体”* 和 *“蓝色立方体”* 对于 LLM 来说很容易区分； *“cube”* 和 *“cube2”* 则不容易。
{% endhint %}

### 步骤 3 — 让角色可移动

默认 `移动到` 和 `跟随` 动作需要角色确实能够行走。Convai 提供了一个编辑器实用工具，可为你自动完成这一设置：

1. 在 **内容浏览器**，导航到你的角色蓝图。
2. **右键单击该资源** → **Convai** → **Setup Convai Pawn Movement**.

<figure><img src="/files/2eb2c3c266767d2c02191493ddde26f56528822b" alt=""><figcaption></figcaption></figure>

此操作会根据蓝图的父类执行以下内容：

* **纯 `Actor` 父类** → 重新设父类为 `APawn`，然后添加一个 `FloatingPawnMovement` 组件，并应用 Convai 调优的默认值（最大速度 `375`，加速度 `200`，减速度 `250`，转向加速 `3`).
* **`APawn` 父类（不是 Character）** → 添加 `FloatingPawnMovement` （如缺失），并应用相同的默认值。
* **`ACharacter` 父类** → 保留现有的 `CharacterMovementComponent` 不变，但在其上调整相同的默认值（最大行走速度、最大加速度、制动减速度）。
* **其他任何情况** （例如自定义的 `AActor` 子类，且具有不同的层级结构）→ 保持父类不变，并 **记录警告** 提示你重新设父类为最终继承自 `APawn` （推荐，因为 `ACharacter` 需要一个胶囊碰撞组件，而并非所有配置都需要）。

> 如果你是基于非 Pawn 基类从头编写角色，最简单的修复方式是将父类重新设为 `APawn` （Pawn 移动路径更轻量），然后重新运行此菜单项。

### 步骤 4 — 添加 NavMesh

上面的移动组件使用 Unreal 的导航系统，因此你需要一个 **NavMeshBoundsVolume** 来覆盖你希望机器人行走的区域。

1. 从 **放置 Actor** 面板（或者关卡编辑器的“快速添加到项目”按钮）中，拖放一个 **NavMeshBoundsVolume** 到关卡中。
2. 缩放它，使其覆盖整个可行走地面区域。
3. 按 **`P`** 并让关卡编辑器处于焦点状态——这会切换绿色导航覆盖层。你应该能看到机器人被允许行走的地方，地面上都会显示绿色。如果某个区域不是绿色，则说明体积没有覆盖到它（或者该几何体不可行走——太陡、太窄）。

<figure><img src="/files/515cf16ed38f33b185fa935002aee0812c3e43e9" alt=""><figcaption></figcaption></figure>

### 步骤 5 — 试玩测试

按下 **播放**。在聊天机器人已连接的情况下，试试：

* *“去那个立方体。”* → 机器人会走向立方体 Actor。
* *“现在回到我这里。”* → 它会走回来。（聊天机器人上的 `bAutoFillConversationPartnerFromPlayer` 开关——默认开启——会自动注册玩家，因此 *“我”* 能够正确解析。）
* *“跟着我。”* → 它会跟随玩家。
* *“停止。”* → 它会停止。
* *“等待 5 秒，然后去立方体。”* → 它会先等待，然后移动。

以下是随附的四个默认动作：

| Action   | 描述                 |
| -------- | ------------------ |
| **移动到**  | 将角色移动到目标位置（对象或角色）。 |
| **跟随**   | 跟随某个角色。            |
| **停止移动** | 停止当前移动。            |
| **等待**   | 等待指定的秒数。           |

你可以在以下位置编辑这些内容——修改描述、删减列表、添加自己的动作——： **Convai → 动作 → 环境 → 动作** 在 Details 面板中。

### 故障排查

* **机器人有回应但不移动** → 最常见的原因是 NavMesh 没有覆盖它尝试前往的位置。按下 `P` 并检查。
* **机器人走得异常慢/快** → 调整 `MaxSpeed` （或 `MaxWalkSpeed` （Character 使用）在移动组件上的对应参数。
* **机器人说“我不知道你指的是哪个立方体”** → `名称` 对象条目中的字段与你说的不匹配，或者没有 `Ref` 被分配。两者都需要。
* **“Setup Convai Pawn Movement” 没有任何反应** → 警告日志会告诉你原因。打开 Output Log（Window → 输出日志），并搜索 `ConvaiContentBrowserContextMenu`.

当你准备添加自己的动作时，请进入阶段 2 — 自定义动作。


---

# 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, and the optional `goal` query parameter:

```
GET https://docs.convai.com/api-docs/zh/cha-jian-yu-ji-cheng/unreal-engine-plugin-beta-overview/convai-actions/phase-1-default-actions.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

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.
