ポートフォリオ → AI音楽

AIメディア · 音楽AI音楽

ひとつの世界観で76曲

生活シミュレーションゲームHeart Apartmentのために、AIで生成したサウンドトラックです。耳で方向を決め、数字でチェックし、2日で仕上げました。

スタイルの基準曲 · 家、夜

夜裡的小爵士 Little Night Jazz

正式に公開されている作品と同等の完成度。

採用した曲をすべて聴く
課題

多くの場面を通じて、同じ世界観に聞こえるサウンドトラックが必要です。技術的なチェックだけでは、静かな部屋に合う曲か、口げんかの場面に合う曲かは判断できません。

私の貢献

場面ごとの制作指示を書き、すべての生成結果を聴き、各曲をゲームのどこで使うか決めました。制作スクリプトはAIエージェントが実装し、音楽は音声モデルが生成しました。

76曲をゲームに収録 · テーマ曲54、ストーリー用の短い曲15、環境音7
244件の生成結果。すべて試聴し、評価をファイルの横に保存
~1.5日で、最初の企画メモからゲームへの組み込みまで
0件:自動チェックを通らずに試聴に回った生成結果
概要

50曲の足並みをそろえる

ほのぼのした生活シミュレーションには、ひとつの世界に聞こえて、しかも邪魔にならない音楽が何時間分も必要です。1曲だけなら、モデルはどんな曲でも作れます。難しいのは、50曲の足並みをそろえること。しかも品質を判断する方法は、ひとりの人間の「なんか違う」だけです。

  • 私:シーンごとに1文の指示を書き、生成結果をすべて聴き、評価を一字一句記録
  • AIエージェント:バッチ実行ツール、分析・選別スクリプト、ラウドネス調整ツール、試聴ページ
  • モデル:Stable Audio 3 Medium(ローカル、ComfyUI上)
シーンの指示→バッチ処理→自動チェック→試聴とコメント→ゲームに収録

不採用のテイクは、書き直した説明文として最初に戻ります。色付きのステップは人の判断です。

成果物を変えた3つの判断
  • ループなし:3分のフル尺の曲にする。長時間のプレイには、切れ目のない繰り返しより変化が必要
  • 環境音を3本カット:騒がしく、ゲーム体験への効果も限られていた
  • どの曲にも使う場面を決める:明るい渋谷系のテイクは、タイトル曲から「出かける途中」へ移動
ハイライト

感性と数字、そしてどちらを信じるか

1 · 「なんか違う」を、書き出せるルールに

私の評価数値ルール
単調で、全体的に騒がしい和声変化 0.10–0.11(気に入った曲は0.21–0.56)和声を明記:maj7/m9のコード、ゆっくりした進行
編曲が壮大すぎて、重苦しい60 Hz未満のエネルギーが50–80 %(気に入った曲は0–12 %)ドローン、サブベース、ストリングスのパッドは使わない
楽器が多すぎて、雑然としているスペクトル重心 492 Hz(ほかの曲は120–250 Hz)楽器は3〜5つ。フレーズの間に余白を
30秒間の音ごとのエネルギーを示す2つのヒートマップ。不採用のテイクは1〜2音に長く平らな帯が続き、スタイルの基準曲は数秒ごとに別の音へ移っていく。
左:聴き心地が単調なため不採用(0.11)。同じ音が何秒も続く。右:スタイルの基準曲(0.22)は動き続ける。
「和声変化」が測っているもの

曲を短い区間に分け、区間ごとのスペクトルを12の音名にまとめます。その音の分布が、区間から次の区間へどれだけ変わるかを測ります。ひとつのコードにとどまる曲は低く、コード進行に沿って動く曲は高くなります。

2 · 自作のフィルターを検証したら、不合格だった

  • 選別の関門としては、コイン投げと同じ。スクリプトがカットする曲を、私は合格とされた曲と同じくらいの割合で気に入っていた
  • 不採用の理由の多くは、雰囲気が場面に合わないこと:音色が電話の着信音に近い、口論の場面のような曲調になっている、など。スペクトルのしきい値では見抜けない
  • 変えたこと:数値は不満の原因を診断し、選別は人が行う。労力は、試聴を手軽にすることに注いだ

3 · 証拠が出たら、プロセスを変えた

  • AIによるプロンプト拡張は失敗続き:レコードのノイズやヒップホップのドラムを足し、「少し不安げ」をホラーに変えてしまう。今は、具体的な楽器とテンポを1文で指定している
  • 30秒の試聴では問題が隠れる:静かなテーマ曲は30秒版で合格したが、3分版は4本とも、1:00でコントラバスが入ってきて不合格に。承認はフル尺で行うことにした
  • 打楽器が思いどおりにならない:ドラムなしのデュオとして生成するか、あとから音源分離でドラムを下げる
詳しく読む

組み込みのプロンプト拡張機能は、レコードのノイズ、シェイカー、ヒップホップのドラムを足し、「少し不安げ」をホラー映画のような雰囲気に変えてしまい、ゲームの世界に合わないものになりました。7回目からは、具体的な楽器とテンポを1文で指定し、ambientやcinematicのような雰囲気を表す言葉を避けました。その回の30秒テストは、ほぼすべて合格しました。

静かな読書シーンのテーマ曲は、30秒の時点では良い評価でした。ところが3分版は4本とも、1分のところでコントラバスが入ってきたため不採用になりました。静かなシーンはピアノ独奏に切り替え、承認はフル尺で行うことにしました。

連打されるクラップや、詰め込みすぎのスナップは制御できませんでした。対策は2つです。ドラムなしで旋律楽器のデュオとして生成するか、あとから音源分離でドラムを取り除く、または下げる方法です。ほかの楽器には手を加えません。

4 · デモ用ではなく、ゲームに載せるために

  • すべての生成結果を検証してから試聴へ:シード、プロンプト、設定、実際の長さ、形式。95件のジョブを記録
  • ラウドネスの基準はひとつ:音楽は−18 LUFS、環境音は−27、トゥルーピークは−1 dBTP以下、固定ゲインのみ
  • 出どころを記録:収録した各ファイルから、元の生成結果、シード、ジョブまでたどれる。Stability AI Community License
  • ゲームに収録:全76曲を192 kbpsのMP3にし、プレイリストファイルとともに組み込み
詳しく読む

バッチ実行ツールは、ComfyUIのジョブを1プロセスにつき1つ、600秒の制限つきで起動します。その後、各ファイルをデコードし、シード、プロンプト、設定、実際の長さ、形式をジョブファイルと照合します。95件のジョブはすべて、プロンプトのハッシュとGPUメモリの最大使用量とともに記録しています。

全76曲をITU-R BS.1770-4に沿って測定し、音楽は−18 LUFS、環境音は−27 LUFS、トゥルーピークは−1 dBTP以下にそろえました。調整は固定ゲインのみで、コンプレッサーやリミッターは使わないため、音そのものは変わりません。静かな6曲は、リミッターを通すのではなく、目標をわずかに下回ったままにしました。測定ツールは事前に、規格の基準信号で自己テストしています。

聴く

基準曲、お気に入り、そして同じ説明文から生まれた3テイク

新しいバッチは、白紙のプロンプトからは始めませんでした。各ジョブは、私がすでに承認した曲の生成設定をまるごと再利用しています。最初は下の夜のジャズ、のちに私がComfyUIで自作した朝の曲です。変えたのは説明文だけです。

スタイルの基準曲 · 家、夜

夜裡的小爵士 Little Night Jazz

正式に公開されている作品と同等の完成度。

家、昼

晴天的木琴 Sunny Marimba

完成度が非常に高い。

收拾好的午後 The Afternoon, Tidied:同じ説明文から残した3テイク

シードを4つ試して3つを採用し、それぞれ違う評価になりました。これが制作プロセスそのものです。

テイクA

採用可。

テイクB

物語性が強い。

テイクC

雰囲気が十分に表現されている。

ラウドネスをそろえたマスターからの抜粋、60–75秒。

76曲が流れる場面

家・昼朝 · 週末にソファでブランチ · 家事 · 午後の読書 · 一緒に料理と夕食
家・夜夜のローテーション · にぎやかなおしゃべりの時間 · 静かな夜 · 仕事終わりのひと息 · 並んで読書
仕事2人それぞれの仕事の日 · 仕事の締めくくりと残業
おでかけ近所 · 公園のベンチと散歩 · 夕暮れの帰り道 · 出かける途中
お店スーパー · ショッピングプラザとデパート · 生活雑貨店 · 映画館のロビー
テーマ曲タイトル · 週のふりかえり
ストーリー用の短い曲覚えていてもらえた · 軽いからかい · 上司の返事待ち · 疲れてひと休み · 喪失と別れ · 謝罪と仲直り · うれしい知らせ · 週の終わり
環境音家 · オフィス · 公園の池 · スーパー · 雨
現状と制約

できていること、証明できたこと、まだのこと

できていること

  • 生成ごとのチェックつきバッチ実行ツール
  • 選別スクリプト、ドラム除去、ラウドネス調整ツール
  • 感想を記録できる試聴ページ

検証済み

  • 76曲を承認し、ゲームに組み込み(2026-09-15)
  • ラウドネスの目標を達成。静かな6曲はリミッターをかけず、目標をわずかに下回ったまま
  • 選別スクリプトを241件の評価と照合:選別の関門としては機能しない(2026-09-22)

制約と次のステップ

  • 数値は不満の理由を説明できても、好みは予測できない
  • モデルは小節単位の構成に従えない。曲は作曲したのではなく、選んだもの
  • 音楽と環境音の個別スライダー:仕様はあるが、未実装
新しいタブで開きます