原创音乐规格表 · 每个场景一种风格,全部自制
致敬边界 · 过审红线 · 自查清单 — 《热血骑手·物语》设计案按节成页:一个 section 一个文件,左侧目录全站可跳。
原创音乐规格表 · 每个场景一种风格,全部自制
三段动机贯穿全作 · WebAudio 芯片合成器实时渲染 · 零版权风险
这一节是"我自己做音乐"的可执行规格:写完这张表就能直接开工,不需要再找作曲。核心思路有三条:① 全作只有 3 个原创动机(情义 / 爱情 / 热血),所有曲目都是它们的变奏 —— 这样玩家通关后能哼出主题曲,这是"记忆点"的唯一来源;② 场景风格差异靠曲风与配器而不是靠换素材库,所以 17 个格子听起来各不相同、但拆开听仍然是同一个游戏;③ 分层 + 实时渲染,包体极小(微信端 BGM 总量控制在 ≤ 3MB),并且天然满足"随时暂停"的要求。
14.3.1 三个动机(先写动机的音程性格,再写曲子)
| 代号 | 名称 | 音程性格 | 调式 / BPM | 用在哪 |
|---|---|---|---|---|
| M-01 | 情义动机 "兄弟" | 纯五度上行 + 大二度回坠(像喊人名字的那两声)。只用两个音就能认出来。 | D 大调骨架 ♩= 96 | CH.01 口哨主题曲、CH.09 救援、CH.13 天台决斗中段、CH.14 驰援。杨洋沸线里出现最多。 |
| M-02 | 爱情动机 "燕子" | 五声音阶下行级进 + 大七度悬停不解决("话到嘴边咽回去")。永远不给完满终止。 | A 羽调式 ♩= 72 | 花店街、直播基地、她哼的那段、Y1/Y2 外传。§03C 三条外传全部以它为主料。 |
| M-03 | 热血动机 "打" | 十六分音符同音反复 + 小三度尖叫音(吉他/方波 bend)。节奏型比音高更重要,一听就想动手。 | E 小调 / 混合利底亚 ♩= 152 | 所有战斗叠层、狗群关、地下拳馆、竞速赛、门禁警报。它是"叠加层",不是独立曲。 |
14.3.2 场景 × 曲风对照表(对应 §04C 的 17 个格子)
| 场景(§04C 编号) | 曲风 | BPM | 调式 | 配器层(4 通道内) | 循环 | 叠层触发 / 备注 |
|---|---|---|---|---|---|---|
| ① 骑手站(晨) | 口哨民谣 chiptune | 96 | D 大调 | PULSE1 主旋律(口哨) · PULSE2 三度和声 · TRI 贝斯 · NOISE 沙锤 | 32 小节 ≈ 80s | 无叠层。M-01 首次完整呈现,是全作的"家"。晚班版去掉和声层、加蟋蟀 NOISE。 |
| ② 懦夫救星拳馆 | 训练蒙太奇 funk | 118 | G 混合利底亚 | PULSE1 staccato riff · PULSE2 反拍 stab · TRI walking bass · NOISE 军鼓边击 | 24 小节 | 上课中自动加一层沙袋撞击(NOISE 通道复用 SFX);缴满一阶 → 加一段 4 小节胜利 jingle。 |
| ③ 芳姨面馆 | 温暖 Bossa | 104 | F 大调(属七多) | TRI 主旋律 · PULSE2 切分和弦 · 无贝斯(留白)· NOISE 锅铲/水沸 | 16 小节 ≈ 45s | 厨房 QTE 时把鼓换成刀砧节奏,节拍即 QTE 判定线 —— 音乐就是玩法。 |
| ③B 辣条妹的御膳房 | 市井 funk / disco-lite = ⑬夜市那首的近亲,但更"贵"一点 | 126 | F 宫 · 加蓝色音("有钱的味道") | PULSE1 锣点切分 riff · PULSE2 four-on-floor · TRI slap 贝斯 · NOISE 叫号广播采样 + 铁盘 + 排队人群的"嘶——" | 12 小节 ≈ 35s | 它亮着的时候永远只有一段循环、不铺满 —— 玩家是路过,不是入住。唯一一次停灶(D7)时这首曲子被完整倒放并降速到 60 BPM,那是全作最不安的一刻。CH.03-B「一单双送」的取餐窗段落把鼓点直接做成倒计时(每两拍一口锅),送出窗外瞬间切成竞速层的 M-03。 |
| ④ 花店街 | 轻快华尔兹 | ♩=132 (3/4) | B♭ 大调 | PULSE1 旋律(M-02 变形) · PULSE2 低音八分 · TRI 琶音 | 24 小节 | 买花档位越高,加一层钟琴音色(同一首曲子的"豪华版")—— 钱花在听觉上看得见。 |
| ⑤ 高架桥洞 · 狗群 | 阴郁 surf rock | 142 | C 小调 | PULSE1 颤音(reverb 长尾) · PULSE2 六连音 riff · TRI 低音嗡鸣 · NOISE 远处狗吠 | 16 小节 | 遭遇战瞬间叠入 M-03 鼓层;打退大黄后整首降速到 84 并转大调(同一素材的"和平版",省一半工时)。 |
| ⑥ 城中村 | 逼仄 lo-fi | 82 | A 小调 | TRI 失谐钢琴感(慢 attack) · NOISE 楼道脚步 · 极少 PULSE | 12 小节 | 硬约束:这一格永远不许抽掉鼓——它是全作最暖的一格,不是最惨的一格。毛雄妈出场段落反而换成提速版 + 木鱼/锅铲打击乐(喜剧节拍);CH.10 之后回访时同一首曲子加回一层暖色和声 = 心境变化。 |
| ⑦ 五金街 | 工业打击乐 | 128 | D 弗里吉亚 | NOISE 主导(钢管敲击采样=程序合成的短噪声)· PULSE2 riff · 无贝斯 | 8 小节 极洗脑 | 陈伯递工具的瞬间静音 0.4 秒再接上 —— 热血物语式的幽默重音。 |
| ⑧ 人民公园东门(门禁) | 间谍爵士 / 紧张拨弦 | 126 | E 小调(和声) | PULSE2 pizzicato 走句 · TRI 站立贝斯 · NOISE 刷镲 rim · 主旋律留给玩家脚步声 | 16 小节 | 巡逻者靠近 → 音量自动 duck 到 30% 并切低通 900Hz;被发现瞬间鼓点炸开 + M-03。倒计时最后 60 秒叠 8 分音符 hi-hat。 |
| ⑨ 别墅区 | 冷色 synthwave | 110 | F# 小调 | PULSE1 pad 化长音 · TRI 八度琶音 · NOISE 电子军鼓 | 16 小节 | 与⑧共用节奏逻辑但音色更"塑料",暗示这里的人有钱但没人味。 |
| ⑩ 地下拳馆 / 洗浴顶层 | 硬核 8-bit 格斗 | 158 | B 小调 | PULSE1+PULSE2 双旋律八度齐奏 · TRI 快速根音 · NOISE 全场鼓 | 20 小节 | BOSS 每掉一段气血升半音(原版 FC 的经典手法,成本极低效果极好)。车轮战每人换一次鼓 pattern。 |
| ⑪ 直播基地 | 可爱 future bass chiptune | 100 | C 大调 → 关系小调游移 | TRI supersaw 替代(多 detune 脉冲)· PULSE1 主旋律(M-02) · NOISE 弹幕"叮"声 | 24 小节 | 在线人数每涨 1,000 加一层 sparkle arpeggio;人气暴跌时整首降调 + 抖混响 —— §03C 的核心反馈。 |
| ⑫ 城南江堤 | 极简 ambient | 自由速度 (chime 制) | D 多利亚 | TRI 长音 + 缓慢 LFO · 极远 PULSE 回声 · NOISE 江水白噪 | 24 小节 ≈ 2min | CH.10 那一跳全程静音,只有水声(唯一一次关掉 BGM)。之后回访时 M-01 由一个人慢慢吹出来。 |
| ⑬ 夜市 / 强叔烧烤 | 市井 disco + 中国锣鼓 | 122 | 五声 C 宫 | PULSE1 锣点旋律 · PULSE2 four-on-floor · TRI slap 贝斯 · NOISE 串签/铁盘 | 16 小节 | 周六夜封街成赛道时同一首曲子提速到 150 并加 M-03 —— 一格两用的听觉证明。 |
| ⑭ 便利店 | 电梯音乐 parody | 88 | E♭ 大调 | 单通道 TRI bossa 简化版 · 其余静音 | 8 小节 | 故意做得很"廉价好笑",玩家买东西会笑。深夜版加制冷机 hum。 |
| ⑮ 城隍庙街 / 天台 | 终章管弦 chiptune | 138 | D 小调 → D 大调 | 四通道全部铺满,M-01 铜管化 · M-03 定音鼓 · 中途插入 M-02 独奏 | 32 小节 | 最终 BOSS 三阶段:①纯 M-03 ②加入 M-01 对抗 ③驰援名单每来一批人叠一层和声(S 评价 24 人 = 24 层,实际按 6 层分组实现)。 |
14.3.3 特殊功能曲(非场景)
R 系列「引擎鼓」
R0「一单双送」是唯一例外:它不用引擎鼓,用 ③B 那首 funk 提速到 150 + 心跳式底鼓,因为这一场没有观众、没有奖金,只有两个人和六份不能洒的面。⑧公园东门那一秒(QTE「等」)全部通道静音 0.8 秒,只留一个红灯的电流声。之后 R1–R5 才上引擎鼓:150→170 BPM 逐圈递增;压弯成功踩在重音上(音乐即操作反馈)。被超车时短暂 duck + 反向滤波。
H 系列静默
发现隐藏单的瞬间不放音乐,只有一声 UI 提示 + 环境音突然清晰。越安静越像秘密。
2 小节 jingle
M-01 的倒置(音程上下翻转)—— 主题还在,只是摔了。致敬原作又完全原创。
4 音上行
朋友圈海报生成时的短音效,做成可辨识的品牌声(4 个音,绝不与任何平台提示音相似)。
14.3.4 实现方案(一套合成器,两端出法)
自研 4 通道芯片合成器(WebAudio)
通道固定为 PULSE1 / PULSE2 / TRIANGLE / NOISE(FC 质感但不追求像素级还原,因为我们画面是漫画 Q 版)。
· 曲目数据 = JSON 音序(note on/off、通道、滑音、颤音、音量包络),一首约 6~14KB,15 首场景曲总计 < 200KB
· 波形用 OscillatorNode + 自定义 PeriodicWave;噪声用缓冲的伪随机 PCM
· 包体几乎为零,这是微信小游戏 4MB 首包红线下的最优解
Steam 端离线渲染成 .ogg
同一份 JSON 音序在构建期跑一遍离线渲染(headless Node + OfflineAudioContext)导出 .ogg 高码率轨,桌面端播放音频文件而非实时合成 —— CPU 占用归零,还能顺便产出 OST DLC(§15)。
· 微信/iOS 端:实时合成(省流量、支持分层与动态升降调)
· 同一份源,两种输出,不会出现"两端听到的不一样"
预烘分层轨 + 小节对齐切换
每首拆 2~3 层,切换只在小节边界发生(对齐 1/1 拍),不做实时混音台。动态手段四件:加/减层、整体升降调(BOSS 阶段)、降速(和平版)、低通 duck(潜行)。这四招足够覆盖本作全部需求,且都是纯参数。
与 §13.4 完全一致
L1 软暂停:音量 → 60% + 低通 1200Hz,继续播放;L0 硬暂停 / onHide:suspend() AudioContext 并记录 tick 位置,onShow 恢复。实时合成的好处是"恢复"= 从任意小节重新起播也听不出破绽(不像录音会有明显接缝)。
14.3.5 生产排期与凭证
| 阶段 | 产出 | 说明 |
|---|---|---|
| M0(1 周) | M-03 热血动机 + 狗群关 1 首 + KO jingle | 原型只需要"打起来带不带劲",先做战斗曲。 |
| M1(3 周) | M-01/M-02 定稿 + 骑手站/拳馆/面馆/花店/桥洞 共 5 首 | 垂直切片用到的场景。这三段动机一旦定死,后面全是变奏,速度会很快。 |
| M2(5 周) | 剩余 10 首场景曲 + 竞速/门禁/主播线三首功能曲 | 此时开始清除所有 CC0 占位素材,台账里的临时条目必须归零。 |
| M3 | 离线渲染 .ogg 全套 + OST 曲目单 | 顺带产出 Steam 商店页背景乐与预告片配乐(用 M-01,不用外部授权曲)。 |
| 凭证 | CREDITS.json + 工程源文件入库 | 每首曲子保留 MIDI/LMMS 工程 + 创作日期 + 作者。万一遇到恶意 DMCA,工程文件就是最硬的自证。这一步很多人不做,Steam 上被误下架时非常被动。 |