快速开始:把示例工程跑起来
第 1 章 · 上手

快速开始:把示例工程跑起来

从打开工程到做出第一个能按 E 捡起来的物品。这一章不讲原理,只保证你在半小时内看到东西动起来。

预计 30 分钟 无需写代码 适合第一次打开工程

这一章的目标很朴素:让你亲眼看到它跑起来。不要急着理解每个节点—— 先玩一遍示例地图,知道“原来它长这样”,后面读原理时脑子里才有画面。

开始前,确认三件事

检查项怎么确认不满足怎么办
引擎版本 启动器里装有 UE 5.6(5.1–5.6 均可,文档以此区间为准) 去 Epic 启动器 → 虚幻引擎 → 库 → 添加版本
工程来源 Fab 库里已购买 → 「添加到工程」或在启动器「库」里下载完整示例工程 SF 是付费资产,需在 Fab 页面购买
磁盘空间 预留 10 GB 以上(示例工程含演示关卡、动画与音频) 先清一清 DerivedDataCache
纯新手名词:什么是“内容包 / 模板工程”

Fab 上的资产分两种交付方式:一种是一个完整工程(打开就是一个能玩的游戏); 另一种是可以添加进你现有工程的资产包。 SF 两种都有:作者建议先下载完整工程(里面有示例地图和演示关卡),玩明白之后再考虑把它迁移进你自己的项目。 迁移的详细步骤在 第 8 章。

第一步:打开工程

  1. 用 5.6 打开 双击 .uproject,或在启动器里选择版本 5.6 后打开。 如果提示「此项目是为较旧版本创建的」,选择转换副本(Convert a copy),保留原始工程做备份。
  2. 等编译着色器 首次打开会长时间停在「Compiling Shaders」。这是正常的,去泡杯茶;中途不要强关。
  3. 打开示例地图 在内容浏览器里进入 StoryFramework 文件夹,找到示例关卡(名称通常含 Example / Demo),双击打开。 如果引擎自动打开了别的关卡,用 File → Open Level 手动选。
  4. 点 Play 按 Alt+P 或点工具栏的 ▶。现在你就是一个拿着手电的探险者了。

第二步:在示例地图里“逛一圈”

示例地图是这套框架最重要的教材——官方文档里说“示例里有例子”的地方,全部都能在这里找到实物。 建议按下面的顺序体验,每个都亲手做一遍:

示例地图中的交互提示
示例地图里最常见的画面:看向一个物体,屏幕中央浮出按键提示。整套交互的“成果”就是这个小小的方块。
体验内容你会看到对应系统
走到一个物品前屏幕出现按键提示与物品名;物体有描边高亮交互系统 · 提示
按交互键拾取物品消失,右下角提示“已加入背包”快捷背包
打开背包底部工具栏式背包,可切换、使用、组合、丢弃快捷背包
捡起一张纸条、按检视键物品浮到镜头前,可旋转;或出现可翻页的文字检视(Inspect)
打开日志 / 回忆录3D 检视的条目、剧情选择记录日志 & 回忆录
看右上角当前任务标题、倒计时(若有)任务系统
和 NPC 对话镜头切换、字幕、若干回复选项对话系统
触发一次 QTE屏幕中央出现按键与倒计时快速反应事件
做一个重大选择全屏两个选项,选择后画面淡出故事选择
走进某个区域自动播放语音、弹出教学提示、或切到固定镜头触发器体积
逛的时候顺便做一件事

每看到一个效果,就按 F8 退出 Play,然后在关卡里选中那个物体,看它的细节面板。 示例地图里的每一个可交互物,都是一个继承自 InteractableBase_BP 的蓝图实例—— 它们的差别,全在细节面板里那几个字段。这是理解 SF 最快的路径。

按键在哪改?

SF 用的是 UE5 的增强输入(Enhanced Input):一套输入动作(Input Action)+ 若干输入映射上下文(IMC)。 默认按键不在代码里,而在资产里:

StoryFramework / Core / Input /  →  SFGameplay_IMC(游戏中的常规操作)
                                    Inventory_IMC(打开背包时切换)
                                    WidgetMenu_IMC(打开菜单时切换)

双击对应的 IMC,就能看到每个动作绑定了哪个键,也可以直接改。 SF 的一个重要设计是:打开背包时会把 Gameplay_IMC 换成 Inventory_IMC, 这样同一个键在不同界面下可以干不同的事,也不会互相冲突。

已知的默认按键(来自第三方教程,可能随版本变化)

社区教程提到:C 可在第一/第三人称之间切换(手柄为长按 Y)。 其余按键(交互、背包、日志、跳过对话)请直接查看 SFGameplay_IMC,以你手上的版本为准。

第三步:做你的第一个可交互物体

现在离开示例,自己造一个能捡起来的东西。整个过程约 5 分钟:

  1. 新建蓝图子类 在内容浏览器空白处右键 → Blueprint Class → 展开 All Classes → 搜索 InteractableBase_BP → 选中它创建。 命名为 BP_MyFirstItem,放进你自己的文件夹(不要直接改 SF 原始资产)。
  2. 给它一个外形 打开蓝图,选中 StaticMesh 组件(基类里已经带好),在细节面板把 Static Mesh 换成任意一个立方体或瓶子。 如果是 SkeletalMesh(骨骼网格),也支持,用于需要物理摆动的物体。
  3. 填写交互数据 在细节面板找到 Interaction Data(一个结构体,叫 InteractableData_S)。展开后先设置这三个:
    字段含义建议值
    Object Name物品名,会显示在提示与背包里“生锈的钥匙”
    Primary Interaction Method主交互方式Quick Pickup(快速拾取)
    Secondary Interaction Method附加交互(可选)Inspect 或 None
  4. 设置背包图标(Quick Pickup 专有) 在同一结构体里找到 Pickup Method Settings → Item Inventory Icon,指定一张 2D 贴图。 这一项不填,背包里就是一个空方块——不影响功能,但很难看。
  5. 拖进关卡并测试 把蓝图拖进场景,Alt+P 进入游戏,走过去看向它:应该出现按键提示;按下后物品消失、进入背包。
如果提示不出现 / 按了没反应
  • 碰撞体没设:交互靠一条射线(Trace)打到物体,物体必须有碰撞。检查网格组件的 Collision Presets 是否为 BlockAll 或至少阻挡可见性/交互通道。
  • 距离太远:交互管理器组件上有交互距离(Reach)参数,默认值有限,站近一点试。
  • 被“软锁”了:如果物体带着 SoftLocked 这个 Actor Tag,它会主动隐藏提示并禁止交互。这是用法,不是 Bug。
  • 项目设置缺通道:如果你是在自己的工程里做(不是示例工程),必须先在碰撞设置里加 SFInteraction 追踪通道,否则一切都不响应。见 迁移章节。

工程目录:东西都在哪

打开内容浏览器,SF 的资产集中在 StoryFramework 文件夹下,结构大致如下:

StoryFramework/
├── Core/
│   ├── Blueprint/
│   │   ├── Components/          ← 五大管理器组件(重点)
│   │   │   ├── Core/            ← Interaction / Inventory / Sequence / Save / Camera Manager
│   │   │   └── Other/           ← 相机组件 SFDefaultCamera_CC 等
│   │   ├── Data Tables/         ← 道具组合、回忆录、NPC 叫声、按键样式
│   │   ├── Structures/          ← 各种 _S 结构体(TaskInfo_S 等)
│   │   └── Function Libraries/  ← 一堆可复用的蓝图函数
│   ├── User Interface/
│   │   ├── Widgets/             ← 交互提示、输入按键、菜单
│   │   └── ...
│   ├── Input/                   ← IMC / Input Action
│   └── Example/
│       └── Level/               ← 示例地图与其专用 Actor(触发器、道具)
└── ...(演示用美术资源)
强烈建议:先装那个“快捷工具栏”

SF 自带一个编辑器工具栏(Editor Utility Widget),能把一堆散落的设置集中到一个面板里,还能一键跳到核心组件。 它需要在 Project Settings → Plugins → Python 的 Startup Scripts 里挂一段脚本(可选步骤,不装也能用)。 详细做法见 第 2 章 · 编辑器工具。

本章检查清单

✓你应该已经做到
□用 UE 5.6 打开了示例工程,并成功进入 Play
□在示例地图里体验过拾取、检视、对话、任务、QTE、故事选择
□知道默认按键在 SFGameplay_IMC 里改
□做出了一个继承自 InteractableBase_BP 的、能捡起来的物品
□知道五大管理器组件在 Core/Blueprint/Components/Core 下

下一步,我们把这套东西的“骨架”讲清楚——为什么它要拆成五个组件,以及你怎么在任意蓝图里调用它们。

第 2 章 · 核心概念与架构 →

视频版:B 站课程 第 1 分 P · 项目演示(8 分钟)、第 2 分 P · 项目概述(14 分钟)

本页由官方英文文档(visualonecompany.gitbook.io)整理、翻译并重排,并补充了第三方教程(Jay Versluis)与面向 UE 新手的解释性内容。产品版权归 VisualOne Projects 所有;本手册为学习用途的非官方中文资料,与作者无隶属关系。

如有疑问,官方支持渠道:Discord 社区 · Fab 商店页