HarmonicSeam

HarmonicSeam

BGM の変わり目まで、演出のうち

曲の楽譜データ(MIDI)を前もって解析し、音楽理論のうえで切り替えてよい地点を表にしておく。ゲームの中では、場面が変わると、次に来るその地点で切り替える。

曲A → 橋 → 曲B21秒・ループ

この2曲はいちばん遠い調どうしなので、この動画では毎回、短い「橋」を挟んでいる。調が近い曲どうしなら、橋なしで切れる地点が出やすい。この動画の橋は、設計図をツールが出し、音を作曲家が仕上げたもの。YouTube で見る

背景

ゲームの BGM は場面ごとに曲が用意され、場面が変わると曲も変わる。切り替わる瞬間は作曲家が決められない。プレイヤーがいつ場面を変えるかは分からず、「曲Aの何小節目で曲Bに移るか」はゲームのプログラムがその場で決める。

既存の仕組みは拍や小節には合わせられるが、和音の中身は見ていない。離脱の和音、進入の和音、声部の動き、調の距離。曲をつなぐときに必ず見るものが、検査されないまま継ぎ目が決まる。

検査に使うのは、西洋音楽で数百年にわたり作曲家たちが磨いてきた和声の規則。人が曲をつなぐときに守ってきた決まりを、継ぎ目の1つ1つに当てはめる。

要るもの

  • 曲の MIDI。2曲以上。
  • ゲームで鳴らすなら、MIDI に合わせて書き出した音声。
  • ドラムは解析するトラックから外し、低い音域に置いたキースイッチは音域の下限を決めて外す。どちらも画面で選ぶ。
  • 曲の中ではテンポと拍子が一定であること。曲と曲で違うのは構わない。
  • ゲームで鳴らすなら(曲はループで鳴る)、音声ファイルの長さを音楽の長さに揃える。残響ではみ出す分は、付属の道具でループの頭に重ねる(Unity 版)。

いまの形(2026年9月)

  • Unity 版:判定から、ゲームの中での切り替えまで。Unity 6.3(6000.3)以降。MIT ライセンス。
  • スタンドアロン版(Unity なしで動くアプリ):判定・橋の設計図・試聴まで。結果は Unity 版へ渡せる。Windows・mac 向けに開発中で、まだ配っていない。
  • ゲームの中で鳴らせるのは、いま Unity 版だけ。ほかのエンジン向けには、結果を JSON で書き出すところまで。

できること

和声の計算は、ゲームの外で前もって済ませる。曲の MIDI を解析して「どの曲のどの地点から、どの曲へ移れるか」を表にしておく。ゲームの中ではその表を引いて切り替えるだけで、MIDI は読まない。

  1. 1

    判定

    MIDI を読み、和音と調を解析する。曲Aの各地点から曲Bの頭へ移る継ぎ目を、声部進行の禁則と調の距離で検査し、移ってよい地点に印をつける。検査するのは継ぎ目だけで、曲の中の和声は評価しない。

    解析画面曲A → 曲B
    解析画面から切り出した、曲A全体の帯。切り替えの判定を色で表示
    Unity エディタの解析画面から、曲A全体の帯を切り出したもの。切り替えの判定を色で表示。

    切れる調が遠い(橋なら切れる)そのままでは切れない

  2. 2

    橋の設計図

    調が遠くてそのままでは移れない地点に、曲Aの離脱和音から曲Bの進入和音へ渡る短い経過句を4声で組む。長さは1小節・2小節・1和音1小節から選ぶ。音を作って継ぎ目に登録すると、そこで橋が架かる。

    橋の設計図vii°7 → i64 → V7 → i
    橋の設計図のピアノロール。曲A、4声の橋、曲B
    橋の設計図。曲Aと曲Bの間に4声の橋(vii°7 → i64 → V7 → i)。
  3. 3

    ゲーム内の切替

    「曲Bへ」の指示に対し、切り替えてよい地点まで待ち、必要なら橋を挟んで切り替える。橋が鳴っている最中の指示は、着地してから次の切り替えとして回す。ゲーム側には切り替えの予定・完了・取り消しを知らせ、一時停止中など受けられない指示には理由をつけて返す。

1 を使うのに和声の知識は要らない。2 の橋を音にするには要る。

待ち時間と橋の本数

切り替えてよい地点まで待つのが既定。待たせたくない場面では「速さ優先」(Inspector の Prefer Earliest)を入れると、合否を見ずに一番近い地点で切る。このとき橋は挟まない。

切り替えてよい地点が1つも無いときは、橋があれば橋を渡る。無ければ一番近い地点で切り、検査を通っていないことをゲームへ知らせる。

曲を足しても、曲の組み合わせの数だけ橋を作る必要はない。切り替えてよい地点が1つでもある組み合わせでは、橋は使われない。調が近い曲どうしなら、そういう地点が出やすい。

切り替えてよい地点が無い組み合わせでも、1方向に橋が1本あれば移れる。本数を増やすと橋を架けた地点が増え、待ちが縮む。1本だけだと、その地点が回ってくるまで、最長で曲1周ぶん待つ。

Unity 版に付くサンプルは、いちばん遠い調どうしの2曲。橋は行き12か所・帰り9か所に架けてあり、橋の音声ファイル6本を使い回している。切り替えを指示してから今の曲を離れるまで、最長 4.7 秒。

何を検査するか

  • 継ぎ目の声部進行の禁則6種(連続5度・8度・ユニゾン、並達5度・8度、内声の跳躍)。依拠は芸大和声。
  • 出荷時は並達5度・8度を許可済みで、この2つでは止まらない。許可する禁則は選べる。
  • トラックが分かれた MIDI は、書き方によって「鍵盤の伴奏」として読み、内側のパートを声部進行の検査から外すことがある。そう読んだときは画面に出て、曲ごとに内側も検査するよう切り替えられる。
  • 調の距離。離脱地点と進入地点の調性感の相関。
  • 画面の地図の色は、ゲーム内で合否を決めるのと同じ計算から出る。

できないこと

  • MIDI が必要。音声だけの曲は読めない。
  • 検査するのは橋の設計図(音符)まで。人や楽器が音にしたものは検査していない。
  • 橋は、音を結びつけた継ぎ目でだけ架かる。
  • 曲の雰囲気の違いは埋めない。調の遠さは橋で渡れるが、音色・リズムの違いはそのまま(テンポは、橋の中で徐々に寄せる設定がある)。
  • ドラムやキースイッチを自動では外さない。外さないまま解析すると、判定が狂う。
  • 和声で書かれていない曲は未検証。lo-fi やアンビエントなど、機能和声に沿っていない曲でどこまで意味を持つかは、まだ測っていない。

ぶつ切りもクロスフェードも正しい演出。このツールはそれらを置き換えない。「和声的につながる」という選択肢を1つ足す。

試す

連絡先

更新履歴

2026-09
Unity なしで動くスタンドアロン版を開発中(Windows・mac・配布前)。
2026-09
解析するトラックと音域の下限を、画面で選べるように。
2026-08
HarmonicLogic から改名。解析画面を整理。
2026-07
橋の生成と、ゲーム内への挿入。Unity パッケージにまとめた。

English

Even the moment the game music changes is part of the show.

HarmonicSeam analyzes each piece's MIDI in advance and marks, by rules from classical harmony, where one piece may move to another. When the scene changes, it waits for the next such point and switches there.

When the keys are far apart, it drafts the notes of a short four-part "bridge"; a composer turns the draft into audio.

Hard cuts and crossfades are valid choices. This tool does not replace them. It adds one option: a harmonically connected transition.

As of September 2026, the Unity version (Unity 6.3 or later, MIT license) performs the switching inside a game. A standalone app for Windows and macOS is in development and not yet distributed.

To try it without your own music, play the browser demo (unityroom; PC with a keyboard). Distributing the package, and inviting composers to try it with their own music, are in preparation.

Contact: X @HeySugu / sugusan.chan@gmail.com