用 AI 创作游戏音乐 — AI Game Developer 内置 SuperCollider
在 SuperCollider 中用 AI 创作游戏音乐与音效:从菜单主题到可循环分轨,再把 WAV 直接导出到 Unity、Godot 或 Unreal。

音乐和音效往往是游戏原型的最后一部分,却是玩家最先注意到的东西。AI Game Developer 中的 Music 包让你可以用 AI 创作游戏音乐:智能体会和你一起编写 SuperCollider 乐谱,将其渲染为 WAV,让你在应用内试听,并把成品音频导出到你的 Unity、Godot 或 Unreal 项目里。
这不是一个黑盒式的歌曲生成器。音乐就是代码,你可以阅读、纳入版本管理并修改,所以你可以要求“同一个主题,慢一点,混响少一些”,得到的就正是那样。在本文中,我们在一次会话里为演示游戏 Skyward Keep 创作菜单主题,然后看看可循环分轨、基于你自己采样的音效,以及导出到游戏中的流程。视频是应用的真实录屏:智能体的回复为演示而预先写好,但其中每一次工具调用都真实执行过。本页面的短片是无声音播放的;主题本身是一首平静的音乐盒风格作品,你可以在自己的项目中用同样的请求渲染出来。
为什么用 SuperCollider 做游戏音频
SuperCollider 是一个成熟的开源声音合成与算法作曲平台。每个声音都来自一份乐谱,也就是一个描述乐器及其演奏时机的文本文件。这非常适合 AI 智能体:
- 智能体编写和编辑文本,而乐谱恰恰就是文本。
- 修改精确且可复现:速度、调性、乐器、效果和长度都是显式的。
- 源文件存放在你的项目中,可以像代码一样提交到 Git,而渲染出的音频只是一次性的产物。
每次渲染在运行前都会记录其源文件哈希、随机种子和设置,因此你可以把任何 WAV 追溯到生成它的那份乐谱。
第 1 步:在会话中开启 Music
Music 随应用以包的形式提供。它默认安装,你在需要它的会话中,从会话的 Tools 行激活它。当你打开一个连接到 Unity、Godot 或 Unreal 编辑器的会话时,会出现一个简短提示,建议启用 Music,然后创作一段八秒的示例主题,或者描述你自己的想法。在你做出选择之前,不会安装、渲染或发送任何内容。
第一次真正使用时,该包会搭建它所需的 SuperCollider 运行时,这是一个锁定并经过验证的版本。你随时可以输入 /supercollider 查看其状态和简短指南。目前该运行时可在 Windows 和 macOS 上使用。
第 2 步:创作菜单主题
像给作曲家写需求那样描述音乐:情绪、长度、用途,以及它应基于的任何音乐素材。演示请求是:
“为 Skyward Keep 创作菜单主题:平静而温暖,大约 20 秒,基于我们的 keep 动机。让我听一下,然后把它加入游戏。”
智能体首先查看知识库中该项目的音频笔记,keep 动机就记录在那里,然后决定采用平静的音乐盒版本。它在游戏文件夹中创建一个可移植的 AudioSource 项目,然后编写乐谱:音乐盒演奏四音动机 D、A、B、升 F,柔和的 pad 铺在 D、A、B 小调和 G 和弦之上,圆润的贝斯和共享混响,速度 90 BPM。

乐谱在本地渲染,智能体随即打开预览,让你可以直接在应用内试听,其中包含波形和播放器。结果产生两个文件:menu-theme.scd,即可编辑的 SuperCollider 源码,保留在版本控制中;以及 menu-theme.wav,一段 24 秒、48 kHz 立体声、带混响尾音的渲染。

渲染输出为单声道或立体声 16 位 WAV,采样率 44.1、48 或 96 kHz,最长十分钟。智能体还能分析渲染结果,报告其时长、峰值和 RMS 电平以及任何削波,这在混音太轻或太响时很有帮助。
像和作曲家合作那样迭代
先听,然后提出针对性的修改:
- “把旋律降低一个八度,让 pad 的起音更慢。”
- “在后半段加一层轻打击乐。”
- “缩短到 16 小节,保留结尾。”
因为乐谱就是代码,每次修改都会保留作品的其他部分不变。如果你更喜欢早先的版本,Git 里还留着。
第 3 步:用于自适应音乐的可循环分轨
游戏往往需要能随战况淡入淡出的分层音乐。要求分轨具有相同的长度和时序:
“把关卡主题拆成三个分轨——鼓、贝斯和旋律——时长和速度相同,这样它们能一起循环。”
这些分轨以相同的时长、采样率和随机种子渲染,并裁剪到精确的帧数,因此它们逐采样对齐,可以干净地循环。然后在引擎里,你可以在战斗开始时提高鼓的音量,在战斗结束时降下来。
第 4 步:用你自己的采样制作音效
SuperCollider 同样擅长音效。你可以导入自己的 WAV 录音作为采样:16、24 或 32 位、8 到 192 kHz 的单声道或立体声 PCM。导入会记录每个采样的哈希,因此项目能确切知道某份乐谱依赖哪些音频。
“把 footstep.wav 导入为采样,为碎石地做四个变体:每个的音高和长度略有不同,并带一段短尾音。”
这样的变体能避免重复音效显得机械,而且一旦乐谱存在,制作它们不花什么成本。
第 5 步:导出到游戏中
当渲染准备好后,智能体会按你选定的名称将其导出到游戏项目中:
- Unity:导出到 Assets/Audio,替换文件时保留 .meta 文件和 GUID,这样场景中的引用不会失效。
- Godot:导出到 res://Audio/,并把创作文件夹排除在 Godot 导入之外。
- Unreal:通过编辑器连接导入为 /Game/Audio 下的 SoundWave。
- 普通文件夹:导出到 AudioSource 的导出文件夹中。
替换导出时会检查你要替换的文件正是你预期的那个,因此较新的文件绝不会被意外覆盖。
它目前擅长什么
Music 包最适合原型和独立游戏音频:菜单和关卡主题、环境铺底、胜负提示音、UI 音效以及音效变体。乐谱是离线渲染而非实时合成,效果取决于你对作品的描述程度,所以从小段作品开始,逐步扩展。
Music 在 0.20.0 版本中推出,自 0.23.0 起,它保持安装状态,但只有当你激活它时才会加入新会话(https://ai-game.dev/releases/0.23.0)。想试用的话,在 ai-game.dev/download 下载应用,打开你的游戏项目,然后请求一段示例主题。关于工作流的其余部分,ai-game.dev/blog/build-game-with-ai-claude-code 上的演练展示了同一个智能体如何搭建这段音乐所播放的场景。

