Blueprint · 38 个原子画面 · 40 张英文实机图
画面变化一次,就跟一张图
本页只做一件事:从空白 Actor Blueprint 走到第一段真实的本地 AI 回答。每个卡片只包含一个可见动作;看到的画面与图片一致后,再继续下一张。
这是一条线性教程。不要跳到后面的最终连线图照抄;按顺序完成每个画面。需要查询节点、系统、C++ 或打包时,改去独立的
文档索引。
准备
0. 先让插件和模型可用
0A在 Edit → Plugins 中搜索 LiteRT,并启用 LiteRT-LM。
如果编辑器要求重启,先完成重启,再进入下一步。
0B在 Project Settings 中填写相对 Content 的 Model Path。
示例为 Models/gemma-4-E2B-it.litertlm;文件名可以不同,但文件必须存在。
Actor
1. 创建一个长期存在的 Actor Blueprint
01打开 Content Drawer,并进入要保存教学资产的文件夹。
本例使用 /Content/LiteRTLM_Tutorials;你也可以使用自己的文件夹。
02点击 Add,然后选择 Blueprint Class。
只点击 Blueprint Class,暂时不要创建其他资产。
03在 Pick Parent Class 窗口中选择 Actor。
这里需要普通 Actor,不是 Pawn、Character 或 Widget。
04把新蓝图命名为 BP_LiteRtLm_QuickStart_StepByStep。
蓝图会长期保存 Quick Chat 引用,所以不要使用 Level Blueprint 代替。
05双击新资产,打开 Blueprint Editor。
确认右上角显示 Parent class: Actor。
Variable
2. 一步一步创建 QuickChat 对象引用
06在 My Blueprint 中点击 Add,再点击 Variable。
此时只新增一个成员变量。
UE 默认创建 Boolean;下一张图先完成改名。
08把 NewVar 改名为 QuickChat,并按 Enter。
变量名必须是 QuickChat;此时它仍然是 Boolean,这是正常的。
09在 Details 中点击 Variable Type 下拉框。
类型列表打开后,光标会自动进入顶部搜索框。
10搜索 Lite Rt Lm Quick Chat。
结果应只剩 Lite Rt Lm Quick Chat。
11选择 Lite Rt Lm Quick Chat Object Reference。
类型变成蓝色对象引用,并出现 On Text Chunk、On Answer、On Error 等事件,说明选对了。
不要在每次提问时重新 Create Quick Chat。这个成员变量要保存同一个对象,才能保留对话记忆。
BeginPlay chain
3. 逐节点创建并发送第一条请求
默认会看到 BeginPlay、ActorBeginOverlap 与 Tick。
13删除 ActorBeginOverlap 和 Tick,只保留 Event BeginPlay。
这两个事件本教程不使用,删掉后画布更容易核对。
14右键空白处,搜索并添加 Create Quick Chat。
先让节点出现在画布上,这一步还不连线。
15把 BeginPlay 的白色执行引脚连接到 Create Quick Chat。
白线只表示执行顺序。
16在 System Prompt 填写 Answer concisely in the user's language.
先使用短提示词,确认基础链路成功后再扩写。
17把 QuickChat 变量拖入图中,并选择 Set。
这一步新增 SET Quick Chat,先保持未连接。
18连接 Create Quick Chat 与 SET Quick Chat 的白色执行引脚。
现在 BeginPlay 会先创建对象,再执行赋值。
19把 Return Value 的蓝色引脚连接到 Quick Chat 输入。
蓝线保存真实的 Quick Chat 对象引用;不要漏掉。
20从 QuickChat 引用添加 Bind Event to On Answer。
UE 会同时生成匹配的 OnAnswer_Event;红色委托线已经自动连接。
21把 SET Quick Chat 的白色执行输出连接到 Bind Event to On Answer。
回答事件必须在第一次 Ask 之前完成绑定。
22把 SET 节点右侧的蓝色对象输出连接到 Bind 的 Target。
Target 必须是刚才保存的同一个 QuickChat 对象。
23从同一个 QuickChat 引用添加 Ask Once。
先新增节点,不要误把 Return Value 当成模型回答。
24把 Bind Event to On Answer 的白色执行输出连接到 Ask Once。
顺序现在是:创建 → 保存 → 绑定 → 提问。
25把蓝色 QuickChat 对象输出连接到 Ask Once 的 Target。
Bind 与 Ask 必须使用同一个 Target。
26在 Message 中填写 Hello from Unreal Engine.
第一条消息保持简短,方便判断是否真正收到本地模型回答。
On Answer chain
4. 逐节点读取并显示异步回答
27在 OnAnswer_Event 附近添加 Break Lite Rt Lm Result。
回答正文在 Result 结构体里,因此需要先拆分。
28把 OnAnswer_Event 的 Result 连接到 Break 节点输入。
蓝色结构线传递完整结果,包括 Text、Error 和 Metrics。
先保留默认选项;它会同时打印到屏幕和 Output Log。
30把 OnAnswer_Event 的白色执行输出连接到 Print String。
只有 On Answer 真正触发时,Print String 才会执行。
31把 Break 节点的 Text 连接到 Print String 的 In String。
这条紫色线才是模型回答正文。
32按两行整理节点,并按 Home 查看完整流程。
上排负责创建、绑定与提问;下排负责接收、拆分与显示回答。
33点击 Compile,确认没有红色编译错误,再点击 Save。
如果编译失败,先回到上一张完整图逐根核对白线、蓝线与紫线。
Level and PIE
5. 把 Actor 放进关卡并看到真实回答
34把 BP_LiteRtLm_QuickStart_StepByStep 从 Content Browser 拖进关卡。
松开鼠标后,Outliner 中必须出现一个 Actor 实例;只创建资产而不放进关卡,BeginPlay 不会运行。
35点击 Play,并等待第一次本地模型初始化完成。
第一次运行需要先加载 GPU 模型,通常比后续提问慢;不要连续点击 Play。
36打开 Output Log,搜索 BlueprintUserMessages,确认出现模型回答。
实测回答:Hello! How can I help you today with Unreal Engine?;这证明 Create、Bind、Ask 与 On Answer 已全部跑通。
Complete demo
6. 基础链路成功后,继续到完整狼人杀 Demo
快速入门到此结束。下面两张图只负责把你带到真正的多 Agent 示例;角色记忆、轮次、暂停与恢复等细节放在独立的多会话教程中。
37打开 L_WerewolfShowcase,点击 Play,并在配置页确认人数与身份偏好。
Demo 会让每个 AI 角色持有独立会话;默认配置为 10 名玩家和严格 GPU 模型。
38点击 START,确认 10 名玩家进入夜晚行动界面。
这就是多会话的实际运行结果:玩家名册、当前阶段、现场发言和每名 Agent 的独立状态同时存在。
完成标准
下面四项同时成立,第一段本地 AI 对话才算完成
- QuickChat 是 Lite Rt Lm Quick Chat Object Reference。
- Quick Chat 只在 BeginPlay 创建一次,并保存到成员变量。
- On Answer 在 Ask Once 之前完成绑定。
- Output Log 能看到来自
Result.Text 的真实模型回答。