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

快速开始

逐步演示您的第一个可用 Convai Action——从添加组件到在播放模式中测试实时命令。

让你的第一个动作运行起来

本指南将带你完成一个完整且可运行的示例:当玩家发出请求时,一个角色会移动到一个箱子旁。你将添加所需的组件,定义一个动作,注册一个对象目标,并在播放模式下测试全部功能。

先决条件

  • 一个 Unity 场景,其中有一个 ConvaiCharacter 组件已经设置好并可正常工作(在添加 Actions 之前,角色应能对语音做出响应)。

  • 你的 Convai API 密钥已在以下位置配置: 工具 → Convai → 配置.

  • 场景中一个用作目标的 GameObject(立方体或任何对象都可以——将其重命名为 箱子 供本指南使用)。

逐步设置

1

添加 ConvaiActionConfigSource

层级中, Inspector点击 添加组件 并搜索 Convai Action Config Source.

你可以在此组件中定义可用动作,并将场景对象注册为目标。

2

添加 ConvaiActionDispatcher

在选中同一个 NPC GameObject 的情况下,点击 添加组件 再次点击并搜索 Convai Action Dispatcher.

该组件接收来自 Convai 后端的动作命令,并运行匹配的执行器。

这两个组件都必须位于 同一个 GameObject 作为 ConvaiCharacter上,否则分发器将无法工作。

3

添加 TransformMoveToActionExecutor

仍然在同一个 NPC GameObject 上,点击 添加组件 并搜索 Transform Move To Action Executor.

该执行器会通过瞬间将角色位置对齐到目标来移动角色。这里使用它是为了让设置保持简单。

4

定义“Move To”动作

Convai Action Config Source 组件的检查器中:

  1. 动作定义下,点击 + 按钮以添加新条目。

  2. 设置 动作名称Move To.

  3. 设置 目标要求对象.

  4. Transform Move To Action Executor 组件(来自同一个 GameObject)拖到 执行器 字段中。

留空 超时秒数 位于 0 (无超时)。

你的定义应如下所示:

字段

动作名称

Move To

目标要求

对象

执行器

TransformMoveToActionExecutor (从检查器中拖拽)

超时秒数

0

5

将箱子注册为对象目标

仍在 Convai Action Config Source:

  1. 可操作对象下,点击 + 按钮。

  2. 设置 名称箱子.

  3. 设置 说明仓库地板上放着一个木箱.

  4. 将你的 箱子 GameObject 从层级中拖到 游戏对象引用 字段中。

说明 会告诉 Convai 后端这个对象是什么,并帮助 AI 解析诸如“它”或“那个东西”之类的模糊指代。请将其写成一句简短的话,在上下文中描述该对象。参见 注意力与指代锚定 获取提示。

6

在播放模式下测试

播放。与你的角色对话(或使用 Convai 文本输入):

“去箱子那里。” “移动到箱子那里。” “走到箱子那里。”

角色的位置应瞬间对齐到箱子的位置。

刚刚发生了什么

当你对角色说话时,发生了以下过程:

  1. 你的语音被发送到了 Convai Cloud。

  2. 后端识别出意图并选择了 Move To 带有以下内容的动作: 箱子 作为目标。

  3. ConvaiActionDispatcher 接收到了命令,查找了你的 Move To 定义,并将 箱子 解析到场景中的 GameObject。

  4. TransformMoveToActionExecutor 运行,并将角色的位置瞬间对齐到箱子。

这一切都是自动发生的——无需编写代码。

接下来做什么

既然你已经有了一个可用的动作,不妨继续查看其余文档:

  • 配置动作——学习如何添加更多动作、使用角色目标,并了解所有可用选项。

  • 动作执行器——将 TransformMoveToActionExecutor 替换为类似以下的可用于生产的执行器: NavMeshMoveToActionExecutor.

  • 编写自定义执行器——构建任何内置执行器未涵盖的行为。

结论

只需几个步骤,你就搭建起了一条完整的动作管线:一个角色会响应自然对话并移动到场景对象。接下来,你可以添加更多动作,替换为更复杂的执行器,并构建复杂的多步骤行为——所有这些都无需改变角色的通信方式。

最后更新于

这有帮助吗?