保存和加载会话
使 NPC 能够记住上一会话中的对话,并从上次中断的地方继续,从而增强互动的连续性。
最后更新于
这有帮助吗?
使 NPC 能够记住上一会话中的对话,并从上次中断的地方继续,从而增强互动的连续性。
本指南说明如何使用 Unreal Engine 的 SaveGame 系统保存和加载 Session ID。相关步骤实现于 ConvaiBaseCharacter 蓝图。 按照本指南,您将能够在项目中无缝存储和检索 Session ID。
开始之前,请确保您具备以下条件:
对 Unreal Engine 蓝图的基础知识。
熟悉 Unreal Engine 中的 SaveGame 系统。
要保存 Session ID,您需要创建一个用于存储数据的 SaveGame 蓝图。
打开内容浏览器: 前往 Unreal Engine 中的内容浏览器。
创建 SaveGame 蓝图类:
在内容浏览器中右键单击。
选择: 蓝图类 > 搜索 SaveGame > 选择 SaveGame.
为新蓝图命名 BP_ConvaiSave (您可以随意命名,但请确保蓝图引用中的名称保持一致。)
添加一个变量以存储 Session ID:
打开 BP_ConvaiSave 蓝图。
在变量面板中,单击 + 以创建新变量。
按如下方式配置该变量:
名称: SessionID
类型: 字符串
编译并保存蓝图。
您的 SaveGame 对象现在已准备好存储 Session ID。
在 说话结束时 在……的事件中 ConvaiBaseCharacter 蓝图,请执行以下步骤以保存 Session ID:
创建 Save Game Object:
添加 创建 Save Game Object 节点进行暂存。
选择 BP_ConvaiSave 作为类。
设置 Session ID:
使用 设置 SessionID 节点,将来自 Convai Chatbot 的 Session ID 赋值给 SaveGame 对象。
保存游戏到槽位:
使用 保存游戏到槽位 节点,将 SaveGame 对象保存到名为 “Session” (您可以选择任意槽位名称,但请记住在加载已保存数据时使用相同的名称。)
使用一个 Branch 节点检查操作是否成功。

在 开始游戏 在……的事件中 ConvaiBaseCharacter 蓝图,请执行以下步骤以加载 Session ID:
检查保存是否存在:
使用 保存游戏是否存在 节点,用于检查保存文件是否存在于 “Session” 槽位中。
从槽位加载保存游戏:
如果保存存在,请使用 从槽位加载游戏 节点加载 SaveGame 对象。
转换为 BP_ConvaiSave:
使用 转换为 BP_ConvaiSave 节点以访问 SessionID SaveGame 对象中的变量。
设置 Session ID:
将加载的 SessionID 重新赋值给 Convai Chatbot。

创建 Save Game Object: 创建用于存储数据的 SaveGame 实例。
设置 SessionID: 将 Session ID 赋值给 SaveGame 对象。
保存游戏到槽位: 将创建的实例保存到磁盘。
保存游戏是否存在: 检查指定槽位中是否存在保存文件。
从槽位加载游戏: 从磁盘加载已保存的数据。
转换为 BP_ConvaiSave: 访问 SaveGame 对象中存储的数据。
按照本指南,您现在已经在项目中使用 Unreal Engine 的 SaveGame 系统拥有了一个可用的 Session ID 保存和加载系统。此实现侧重于本地存储数据,但如有需要,您也可以扩展它以包含服务器端存储或自定义文件处理。
如需进一步定制或更高级的功能,请查阅 Unreal Engine 文档或社区教程。
如果您有任何问题,欢迎在 Convai 开发者论坛!🎉😎
最后更新于
这有帮助吗?
这有帮助吗?