常见问题与排错手册
官方给的两条 FAQ、新手最常见的十几类故障、一个“先看哪里”的排查顺序,以及中文项目特有的字体问题与求助渠道。
这一章按“症状 → 可能原因 → 怎么修”组织。前半部分是官方明确回答过的问题, 后半部分是新手常踩的坑(标注为经验总结,不是官方原文)。
官方 FAQ 里的两条
「SceneCapture has no viewstate」警告
检视物体时控制台可能出现这条警告。它只是说“用于检视的 SceneCapture 组件不是每帧都在抓取画面”—— 这是故意的:为了性能,SF 大约每 1.5 帧抓一次,而不是每帧都抓。
可以忽略,不会影响打包后的游戏(打包版里也不应该出现)。
如果实在碍眼,可以执行控制台命令 DisableAllScreenMessages 关掉屏幕消息。
新建工程时报 Floor_400x400 加载错误
这是首次初始化资产时的重定向问题,可以忽略。这个资产来自虚幻自带的 Starter Content, 只用在示例地图里。你实在介意的话,直接把它删掉也没关系。
出问题了,按这个顺序查
- 先确认“是不是只有这一个物体不行” 换到示例地图,找一个官方做好的可交互物试一下。如果它正常,问题在你的物体配置; 如果它也不行,问题在全局(碰撞通道、控制器组件、输入映射)。
- 看屏幕提示有没有出现 没有提示 → 射线没打到(碰撞/距离/通道);有提示但按键无效 → 逻辑没接(事件没实现)。
-
打开输出日志(Output Log)搜关键词
SF、Interaction、Access None。蓝图空引用会打印Accessed None, 这是最常见的错误来源。 - 断点调试 在怀疑的节点上按 F9 设断点,进游戏触发,看执行流停在哪、变量是什么值。
- 对照示例工程 把示例里能用的同类物体和你做的物体,逐项对比细节面板。九成的问题能在这一步发现。
新手高频问题清单
| 症状 | 原因 | 解决 |
|---|---|---|
| 可交互物没有描边、没有提示 | 不是 InteractableBase_BP 子类,也没实现 SFInteraction_BPI |
改父类,或手动实现接口 |
| 提示在墙后仍然显示 | 物体带了 IgnorePromptTrace 标签 |
移除该标签 |
| 怎么都点不了某个物体 | 带了 SoftLocked 标签 |
移除标签,或用代码在条件满足后移除 |
| 拾取后什么都没发生 | 用了 Quick Pickup,你的自定义逻辑没机会跑 | 换成 Default + Add Item to Inventory |
| 背包里道具都叫“None” | 没填 Object Name |
在交互数据里补上名称 |
| 对话只能聊一次,之后就没了 | 对话集是自包含的,没为重进对话准备 {initial} 或 RestartConversation |
补一段初始对话,或勾 RestartConversation |
| 选项怎么点都不消失 | 没设 IsLastReply,也没有指向下一段的 SelectOnReply |
给最后一句勾上 IsLastReply |
| 故事选择后黑屏不恢复 | 淡出后没调 WidgetFadeCamera 淡入 |
把 FadeDirection 设 -1,0 再调一次 |
| 手柄上按键提示还是显示 E | InputMap_DT 里没配手柄键位样式 |
给对应键补充手柄图标与文字 |
| 打开背包后人物还在动 | 输入上下文没切换(Inventory_IMC 没应用) |
检查 UMC 的打开/关闭逻辑 |
| 读档回到第一关 | 没保存“最后所在关卡”,或 GameInstance 类不对 | 用 SFGameInstance_BP,并确认存档里记录了关卡 |
| 打包后功能失效、编辑器里正常 | 资产没被引用到,被 cooker 剔除了;或用了编辑器专用节点 | 在 Always Cook 里加上相关资产;避免 Editor Only 逻辑 |
中文项目特有的坑
SF 默认字体是英文字体,不含中文字形。你输入的中文会显示成豆腐块。
解决:导入一个含中文的字体(如思源黑体),
在 Project Settings → User Interface 里确认字体设置,或直接替换各个 Widget 里的字体资产。
注意:字体资产要勾选“离线缓存”里需要的字符集,否则打包后可能仍缺字。
- 对话里的换行:中文字符宽度大,原来一行英文的排版,中文会溢出。把字幕停留时间按 1.5 倍调长。
- 繁体/简体:如果要做多语言,建议一开始就用 SF 的 Text 类型变量 + 本地化表,而不是直接把中文写死。
- 标点:中文全角标点在蓝图里输入没问题,但对话文本要避免混用英文引号导致解析异常。
性能:什么时候会卡
官方在更新日志里提过两个性能点,值得知道:
- 3D 检视曾是最大的性能瓶颈,5.1 之后大幅优化;但仍建议别在同一场景放太多高精度可检视物。
- 初始交互卡顿:第一次与某类物品交互时会加载资源,可能有一次微卡。可以提前调用
LoadSFComponents (IntoMemory)预热。
卡住了,去哪问
| 渠道 | 适不适合 |
|---|---|
| 官方 Discord | 最适合。作者本人很活跃,社区也热心。提问时附上:引擎版本、SF 版本、截图、你试过什么 |
| 作者邮箱 | 适合购买/授权/严重 Bug;不适合“怎么做某个效果” |
| Fab 商品页 | 看更新说明、价格、评价 |
| Jay Versluis 的教程 | 14 篇实战文章,覆盖任务、对话、日志、回忆录、通知等具体做法 |
| 官方 YouTube 频道 | 系统性的视频教程(对话、任务、UMC、存档都有),但只有英文 |
“我的交互不工作”几乎没人能帮。改成: “UE5.6 + SF5.2,新建的 InteractableBase 子类,射线能打到(我打印了 Hit Actor),提示也出现, 但按 E 没有任何反应,BPI 事件里我加了 Print String 也没输出。附截图。” —— 这样别人 30 秒就能定位问题。
版本升级怎么不翻车
- 先看更新日志,确认有没有破坏性改动(比如 5.0 把菜单改成 UMC,UI 全得重接)。
- 在副本上升级,不要在唯一的工作工程上直接换版本。
- 升级后逐项验证:交互 → 背包 → 对话 → 存档 → 相机。每次升级后固定跑一遍这五项。
- 保留旧版资产:新版 SF 的内容建议放进新文件夹,不要覆盖旧的,方便对照。
最后一章是给“不想读文字、只想查东西”的人准备的:速查表。