Unreal Engine 快速旅行:用 AI 搭建带黑屏渐变的传送
如何在 Unreal Engine 中制作快速旅行:按 F 键渐变到黑屏,把玩家移到三个地点中的下一个并显示地点名称,由 AI 根据一个请求搭建并调试。
Unreal Engine 中的快速旅行是三个小点子:一个地点列表,一个把玩家移到下一个地点的步骤,以及一次渐变,让玩家永远看不到跳转的瞬间。渐变是手感的关键。没有它,玩家只会从一个位置突然蹦到另一个位置。最简单的做法,是用一个请求让 AI 一次搭好整个系统。
在这篇演示中,Ultimate Engine CoPilot 在 F 键上搭建了一个快速旅行:先渐变到黑屏,再移动玩家,并显示地点名称。你会看到完整的提示词、AI 通过查看渐变中途的截图发现的一个 bug,以及一段通俗易懂的带渐变快速旅行原理说明。
完成后的系统是什么样
你站在雪地里,按下 F。屏幕渐变成黑色,再渐变回来时,你已经身处远处的另一个地方,一行小字写着 “East Camp”。再按一次 F,你到达 “North Ridge”。再按一次,你就回到了起点。

起点:三个地点,一个按键。
提示词
复制下面这段,改一改距离,或者再加第四个地点,看看 AI 会搭出什么:
Make a fast travel with a screen fade. Create BP_FastTravel in /Game/Series/EP36_FastTravel, an actor that I place once in the level, that listens for the F key. Pressing F teleports the player to one of three stored locations in order, each press going to the next one and wrapping around: the player start, a point 1500 units east of it, and a point 1500 units north of it, each placed 100 units above the snow so the player lands safely. The teleport is hidden by a fade: a black full-screen widget called WBP_ScreenFade fades in over 0.4 seconds, the player is moved while the screen is black, then the black fades out over 0.4 seconds. Also show the name of the place in the top centre below the existing Blizzard box for 2 seconds after arriving: Start, East Camp and North Ridge. Ignore a press while a transition is already running. Keep the fade time and the three location offsets as variables. Place the actor near the player start. Then play test it: press F and check the player ends at the East point, check the screen was black in the middle, press F again for the North point, press F a third time to return to the start, check the place name each time, and fix anything that does not work.
有两句话很关键:“每个地点都放在雪面上方 100 个单位处,让玩家安全落地”,以及 “过渡进行中时忽略按键”。两者都针对容易出错的地方。落进地面里的玩家会卡住,而快速连按五次按键的玩家可能会打乱整个流程。如果你能想到它会怎样出错,就写明它应该如何表现。
AI 如何搭建它
AI 先读取项目和你的 HUD,这样地点名称就能放在 Blizzard 框下方。接着资产陆续出现:快速旅行 Blueprint 和屏幕渐变 Widget。
AI 在这里遇到了一个小限制:在这套设置里,保存列表的变量不能设置默认值。于是它把列表换成三个普通的偏移变量,每个地点一个。它们是相对于玩家起点的偏移量,在游戏开始时读取。

快速旅行图表:每次按键都会运行同一个序列。
试玩测试
- 按下 F:玩家到达东面的地点,距离起点 1500 个单位。
- 屏幕在中间时是全黑的:渐变值读数为 1,截图显示纯黑,上面叠着名称 “East Camp”。
- 在过渡期间再按一次 F 会被忽略。玩家停在东面,而不会直接跳到北面。
- 再按 F:到达北面。第三次按下:玩家回到了出生时的那个确切位置。
只有亲眼看才能发现的 bug
在渐变中途,截图拍到右边缘和下边缘各有一条不是黑色的区域。那张黑色图像是 1820 × 1050,而不是铺满整个屏幕。AI 把尺寸改成 1920 × 1080,重新运行测试,新的截图从边到边都是黑色。
报告

它的行为,以及需要留意的地方。
报告描述了整个序列:在渐变时间内变黑,移动,短暂保持黑屏,然后渐变淡出。每次旅行都会在目标处向下做射线检测找到地面,并把玩家放在地面上方 100 个单位处。它还告诉你需要留意什么:
- 保持黑屏的 0.15 秒是 AI 自己加上的,目的是让移动永远不会出现在渐变到一半的画面上。它是一个变量,BlackHoldTime。
- East 设在 Y 轴上,North 设在 X 轴上,所以如果你的地图旋转过,请交换这两个值。
- 测试中只在屏幕上看到了 East Camp。
- HUD 上的 Bolts 计数在按一次 F 之后从 10 降到了 9。F 键可能同时也触发了冰弹,AI 没有检查这一点。
快速旅行的工作原理,通俗讲
按下 F 时,Actor 首先检查一件事:过渡是否正在进行?如果是,就忽略这次按键;如果不是,就开始整个序列。黑色 Widget 在渐变时间内淡入。完全变黑后,Actor 选出下一个地点,并向下做射线检测找到地面。然后它把玩家移到那个位置上方 100 个单位处,稍等片刻,再让黑色淡出。接着它显示地点名称两秒,并把地点序号加一,数到三之后回到开头。
由于渐变时间和三个偏移量都是变量,改几个数字就能增加更多地点,或者让渐变更慢。
扩展思路
- 需要找到才能解锁的快速旅行点,比如篝火。
- 一个让你选择目的地的地图界面。
- 旅行时的音效,以及黑屏期间的加载文字。
快速旅行提示词的四个技巧
- 把玩家放在地面上方,让他们安全落地。
- 说明在过渡期间按下按键会发生什么。
- 用秒数说明渐变是什么样子。
- 要求 AI 检查渐变中途的屏幕。
常见问题
在 Unreal Engine 5 中,如何制作快速旅行?
保存一个地点列表,按键时把玩家移到下一个地点,并用一个全屏黑色 Widget 隐藏跳转:它在移动前淡入,移动后淡出。
如何避免玩家落进地面里?
在目标处向下做射线检测找到地面,把玩家放在它上方一个固定高度处。这个搭建使用的是 100 个单位。
如果在渐变期间按下按键会怎样?
过渡进行期间的按键会被忽略,所以整个序列不会被打乱。请在请求里写明这一点。
在你的项目中试试
在 产品页面 了解 Ultimate Engine CoPilot 能搭建什么,或者到 Fab 上获取。 了解 AI Blueprint 生成器 的工作原理。
本系列的更多搭建: Unreal Engine 检查点系统、Unreal Engine 传送门 和 Unreal Engine 指南针条。