学习空间/低门槛恐怖音频:分层、可控音量与静音可玩
上手工作坊 / LESSON 60

低门槛恐怖音频:分层、可控音量与静音可玩

不用专业混音插件,先做清楚的环境、反馈与提示声,并给玩家真正有效的控制。

入门实作约 8 分钟阅读,实作另计6 节按需学
CONCEPT MAP先看一眼知识之间的联系
先看一眼知识之间的联系环境 → Ambience交互 → SFX界面 → UI全部 → Master关键线索 → 字幕连线表示关系或约束,不是实际房屋尺寸,也不表示这里已完成系统实现。
分层控制声音,同时用等价视觉信息保住关键可玩性。

01前置:先让声音有职责,不急着堆惊吓

准备三段有明确使用许可的练习音频:一段可循环环境底声、一段短交互反馈、一段关键提示声;记录来源与许可,不把“网上能下载”当成可商用。若暂时没有合适素材,可以用自己录制的简单声响做练习,但避开他人的对白、音乐和可识别隐私。

环境声告诉玩家身处何处,交互声确认操作被接收,关键提示声传递重要变化。恐怖效果来自节奏与预期差,不等于所有声音一起变大。本课只做低门槛分层与音量控制,不替正式项目决定音乐风格,也不把数字电平误当成耳机里的实际声压。

02第一步:建三个总线,亲眼看声音经过哪里

在编辑器底部 Audio 面板保留 Master,添加 AmbienceSFXUI,都送往 Master,并保存总线布局。练习场景用 Node 根节点,添加三个 AudioStreamPlayer,分别命名为 RoomTone、InteractSound、NoticeSound,设置 Stream 与对应 Bus。需要位置感的世界声以后再改用 AudioStreamPlayer2D,不要把所有声音一开始都做成空间声。

先选 RoomTone,在检查器启用 Playing 试听,观察只有 Ambience 和 Master 的电平变化;关闭它,再分别试听另两路。若静音 SFX 却仍听见交互声,先查播放器是否真的路由到 SFX。运行场景时可先只为 RoomTone 开启 Autoplay,避免三段同时响。总线命名是一份依赖,拼错或改名后必须重查引用。

03第二步:从舒服的低电平开始做对照

先把系统或耳机音量调低,单独听每段素材,排查爆音、突兀开头和循环接缝;不要为了听清环境底噪不断把总体音量推高。再组合播放,先确保交互反馈可辨认,环境不压住文字阅读和语音。使用总线电平表观察混音是否接近削波,给同时发生的声音留余量。

数字音频的 dB 值描述信号关系,不直接说明玩家耳朵的安全响度。-6 dB 不能简单解释为“人感觉小一半”。调低播放音量也不会修复素材中已经存在的削波。先修来源和混音,再考虑额外效果器;本练习不需要购买音频中间件。

04第三步:做能真的静音的音量滑条

新增 HSlider,范围设为 0 到 100,步长 1,初值 70;挂以下脚本,控制 Ambience 总线。代码在 ready 连接 value_changed 后,主动应用初值,避免界面显示 70 而实际仍保持满音量。它按 Godot 4.7 AudioServer API 核对,未完成实际场景交互验证

extends HSlider

@export var bus_name: StringName = &"Ambience"

func _ready() -> void:
    value_changed.connect(_apply_volume)
    _apply_volume(value)

func _apply_volume(percent: float) -> void:
    var index: int = AudioServer.get_bus_index(bus_name)
    if index < 0:
        push_warning("找不到音频总线:" + String(bus_name))
        return
    var gain: float = clampf(percent / 100.0, 0.0, 1.0)
    AudioServer.set_bus_mute(index, gain == 0.0)
    AudioServer.set_bus_volume_linear(index, gain)

此处是线性增益映射的教学起点,不保证百分比与主观响度线性对应。复制滑条时要改 bus_name,并分别标注“环境”“音效”“界面”,再提供总音量。

05第四步:关键线索不能只藏在声音里

如果“门后响了三声”决定解谜答案,就同时提供适当字幕或可见反馈,例如“门后传来三次轻敲”。字幕应表达玩家需要知道的信息,不必把所有底噪都变成满屏文字。位置有关的提示可以带“左侧”“门后”等文字,避免只依赖双声道定位;单声道设备或单耳聆听也应能理解关键事件。

给字幕可读字号、背景对比和足够停留时间,让音量设置能用键盘调节并看见焦点。若有突发强声,考虑独立的减弱突发音量选项,并实测其效果,而不是只写一个不会改变声音的开关。降低强声不应偷偷改变谜题规则。

06验收与排错:关掉声音仍能完成关键流程

依次测试 Master 为零、单独环境为零、音效为零、滑条从零回到非零、重新进场景、重启游戏。当前示例没有保存设置,重启会回到场景初值;接入持久化时应单独保存偏好,并在首次播放前应用,避免启动先响一声再降音量。

找一副普通耳机和一组扬声器做对照,在静音下完成练习房关键路径,确认字幕没有漏掉必须信息。没有声音先看素材、Playing、Bus 和静音状态,不要盲目放大 Master。完成标准是每层职责清楚、控制即时有效、设置行为如实说明、静音不阻断流程,而不是音轨越多越专业。

动手后,再勾选

不是“我看懂了”,而是你在独立练习里做出并检查过。

CHECK YOUR UNDERSTANDING

换一个情景,你会怎么判断?

一条必须听见的敲门声决定谜题答案,哪种改进最能保留玩法并照顾不同听音条件?

用自己的话,留一条笔记

可以写“我之前以为……,现在发现……”,或者记录还没解决的问题。

仅保存在此浏览器0 / 20000

回到资料核对

本课是解释与练习,不替代对应版本的官方手册。网页实验不运行 Godot;未标明实机验证的代码,仍需在独立工程中检查。

把这课收进你的理解里。

标记已读不会自动勾选实作,也不代表游戏功能已经完成。

输入一个你想弄明白的问题。

按 Esc 关闭 · 标题、关键词和正文一起搜索