見出し画像

3.技術論 インタラクティブミュージックでテンポが変わる、という神話

この記事は「インタラクティブミュージックについての12の神話」連載の、3つ目になります。インタラクティブミュージックを略して「IM」とすることがあります。


前回ストリーミング再生の話をした流れで、この際はっきり言っておきたい事がある。

例えば以下のような縦の遷移の説明をした時に、それを知って嬉しそうに「自然とテンポが変わったりして、すごいですよね~」などと言われることが、まぁ、それなりによくある。

そこで毎回、内心、

いや、

テンポは変わってないんだよ

と思ってる。

どうしてこのような誤解が生まれるのか、何度も考えた。

「テンポ」が何なのかはっきりと認識してない人が多いのか?

テンポというのは「BPM」のことだと理解している。Beat Per Minutes.

1拍の長さが変わっていないかぎり、テンポは変わっていない。上のチョコボの例ではたしかに楽器の数が減って種類も変わっていて「ゆったりした雰囲気になった」というのは正しいが、まったく同じ長さの拍・小節のレイヤーを重ねて表現しているわけなので、テンポは一切変わっていない(倍テンで変わってるという解釈も不可能ではないが)。単に「ゆったりしたな」という感覚を「テンポが変わったな」と比喩しているだけかもしれない。テンポを厳密に管理するシステムを組み上げたプログラマーにとっては許しがたい失言だ。

あるいは、本当にテンポが変わったと誤認されている可能性もある。

レイヤーのような仕組みの部分を知らなければ、音楽の雰囲気からテンポが変わったという感覚を抱くのも不思議ではない常に流れているBGMの拍を無意識で数えながら、テンポ変化や変拍子に耳をそばだてているドラマーにとっては信じがたい態度だ。

何にせよ、思われているほどには、テンポが変化するIMは滅多に無い。そしてこれには技術的な問題がある、という話をしておきたい。

リアルタイムに、「ピッチを変えずに」再生速度を変更するという高度技術

ストリーミング再生において、再生速度を変更すること自体はさして難しいわけではない。単に読み込む速度を上げて、それをリサンプリングしてレンダラーに受け渡せば良い(もちろん、速度を上げすぎるとファイルロードが追いつかないという別の問題は出る)。

ただこのままだと、音声のピッチも全体的に上がってしまうのだ。音程というものが周波数で決まっていることを知っていれば、これを早回しすることが音程の変化に直結することは自明である。

通常の楽曲であれば、作曲者の意図と異なるピッチに突然変化するような事は受け入れにくい。ゆえに、単なる速度変更はピッチ変化という副作用を避けるため、なかなか使われることが無い。

ところが!2012年にカプコンから発売された3DS・PS3用ソフト「エクストルーパーズ」においては、楽曲をクラブミュージックやテクノ調にすることでピッチ変化による違和感を克服し、ゲーム中に動的な再生速度変更を活かした演出を行っている。以下のリンクから動画を見ていただくと、ピッチとともに再生速度が変化している様子がわかりやすいはずだ。

エクストルーパーズ 発売記念サウンドスタッフインタビュー! Vol.1

このように限定的な場面で生きるものの、普通は使えない再生速度変更。では、どうしたらピッチを変えずに再生速度「のみ」を変えられるのだろうか?その答えの一つが、2012年のCEDEC講演「Final Fantasy XIVで搭載されたサウンド新技術の紹介」で発表された

グラニュラーシンセサイザー

という技術である。

【CEDEC 2012】「Final Fantasy XIVで搭載されたサウンド新技術の紹介」ゲームの面白さにサウンドができること

スクエニ時代の大先輩の祖堅さんと、サウンドプログラマーの先輩の西松さん。2012年当時は私は入社してないので、私が全く関わってない頃の技術。

図を見てなんとなく理解してほしい。私もちゃんと説明するのは難しい。ただこれで、FF14でモーグリがボスとして登場するシーンの楽曲のテンポを徐々に変化させたという。

ただしグラニュラーは原理上、波形の小さな塊が細かいクロスフェードで重ね合わせるので、打楽器などのインパクトのある音はすぐに回りの音に影響されて音色が変化してしまう。楽曲によって適切なグラニュラーの大きさを調整するなどしなければならず、どこでも使える技術というわけではないという制約がある。

ちなみに、DAWなどでピッチシフター(実質的にテンポ変更にも利用可能)などの技術は普通にあるじゃん、と言われるかもしれない。私は専門的な知見がないので正しく答えるのは難しいが、少なくともゲームなどのリアルタイム処理で使える形でそのような技術が転用されたという話は聞いたことがない。もちろん、ハードも技術も進化しているので、そのうち、実は今でも、頑張れば使えるという事はありえる。

速度変更のハードルの高さが伝わっていれば幸いだ。しかし、工夫次第で、今ある技術を使って無理なく速度を変更することも、実は可能である。

それは、

テンポが違うデータを複数用意して上手く繋ぎ合わせる

という手法だ。

例えば、テンポ120の原曲に対して、テンポ90のアレンジとテンポ150のアレンジを用意して、上手いこと同じ小節に遷移するように繋げば良い。

これだと無段階に調整はできず用意した数段階だけ、という制約はつくものの、処理負荷もかからず音質劣化も気にする必要がないため、気軽に利用することが可能だ。

ただし、
(息を吸い込み、早口で一気に喋る)

これを実現するには、グラニュラーシンセサイザーほどではないものの、技術的なハードルがいくつか存在する。まず、用意した楽曲は同じ構成であってもテンポが違う=長さが違うため、曲全体の長さも違う。そのため、通常の縦の遷移の手法のように「全部をレイヤーしておいて、再生したいものだけ音量を変える」という形は取れないのだ。ではどうするのか、というと、横の遷移の技術をトリッキーな形で応用することになる。通常、横の遷移でAからBに行く時は、Aの遷移ポイントとBの0小節目を重ねるように再生する。しかし今回AのN小節目を再生している時にはBのN小節目に合わせたいわけだ。ここでまず遷移先のBはあらかじめ計算した小節数に対してシーク(先読み)しておく必要がある。ちなみに、ファイル圧縮形式によってはこのシークがどんなサンプル数にでも任意にできるとは限らないので、その調性も必要になったりする。さらに、N小節目ぴったりではなく遷移時にクロスフェードが必要なため、(N小節目 ー フェード時間)の部分にシークする必要がある。もちろん、遷移が起こるのは小節ぴったりとは限らないので、できるだけ即座に遷移したい場合は、Aの現在の小節数にフェード時間を加算したうえで、さらにストリーミングが間に合うように最低限のバッファを加えたところで同期可能な拍、小節を割り出して、それと同じB側の遷移ポイントを決定する……といったケアも必要になる。

という面倒くさい実装を誰かがやってくれたら、実現できる。

そしてなんと、FINAL FANTASY VII REBIRTHのジュノンエリアでは、それが実現されているではないか……!

明らかに、テンポが変わっている。いや、この機能作ったのは自分なので、可能だという事はわかってるんだけど。意外と活用される機会に恵まれなかったので、地味ながら役立ってて良かった。

ちなみに、FF15でも実はこの機能がちょこっとだけ利用されている。


気を付けて! テンポはすぐに 変われない

いやー、ストリーミング再生でテンポ変えるのって大変なんですよ。皆さん、今度から気軽にIMの例で「テンポが変わったり~」とか言うのは控えておきましょうね。テンポは簡単には変わりません。

ストリーミング再生では。

つまり……?

譜面再生で、内蔵音源を1音ずつ再生しているのなら……?

その1音ずつの再生スピードを……?

直接指定して変えるだけで、テンポが変わるのでは……???


テンポを変えるための譜面再生、という選択肢

そう、実は、ストリーミング再生になる以前の技術では、もっとずっと簡単にテンポが変更できたのである。これもまた、内蔵音源の可変性のメリットの一つと言える。

社会現象ともなった「桜井政博のゲーム作るには」チャンネルで「ゲームに合ったテンポ感」として取り上げられたのでご存知の方も多いと思われるが、ドラゴンクエスト1においても、ダンジョンの地下に潜ると音楽のテンポが下がる、という演出が活用されていた。

ここではピッチも同時に下がっているが、それも演出的な意図であり、
テンポとピッチは別々に制御されていると考えても良いだろう。

桜井さんも「実装が難しいのか、なかなか他のタイトルでは見られないですね」とコメントされている。そうです。実装が難しいんです!!

このように1980年代のゲームであれば内蔵音源でテンポ変更をしているのは不思議ではない。


現代に蘇るオーパーツ技術

しかしなぜか、2010年代にもなって譜面再生技術を連綿と受け継ぎ(誰もこれが80年代と同じ技術で再生されているなどとは気づかない)しれっとテンポ変更をやっているゲームがある。それが「ゼルダの伝説 スカイウォードソード」だ。以下のショップモールのBGM遷移を見て欲しい。

お分かりいただけただろうか??

テンポが変化している。それも、目まぐるしく。5つのショップそれぞれで別のアレンジに変化しており、すべてテンポが違う。何なら一部は拍子も違う。しかも、テンポ変化の最中でもクロスフェード感がなく、自然と1音ずつテンポを落としているように聞こえる。これはまさしく、MIDI(またはそれに準ずる譜面再生的なもの)でなければ実現しえないように思われる。それでいて音楽的なクオリティに全く妥協が見えないのが恐ろしい。

スカイウォードソードは他にもやばい音楽技術がてんこもりなので、以下のスレッドにまとめてある(まだ最初の島から出てない段階でこれ)。

ちなみに、私の敬愛する「ゼルダの伝説 風のタクト」においても、通常戦闘曲でHPによるテンポ変化が用いられている。

このあたりを見ることで、ゼルダシリーズが比較的最近まで内蔵音源による音楽で他の録音音楽と戦っていた事を伺い知ることができる。

IMオタク向けのおまけ:
他にも、現代において譜面再生を活用してテンポ変更を行っている例は、ごく少数ながら存在する。その中でも一際クレイジーである、Get Evenというゲームの例を紹介したい。コンポーザーはOliver Deriviere氏、私が世界で最も尊敬する……インタラクティブミュージック過激派の筆頭である。下記のGDC Vaultの動画の29:20あたりからの動画を見てみるとわかりやすい。
GDC Vault - Interactive Music 2.0: Merging the Game World with Your Score


次の神話へ

前の神話へ


連載全体あるいは一部でも「これは有料級だ」とご納得いただけたら、こちらのおまけ有料記事をご購入いただけたら幸いです。


いいなと思ったら応援しよう!

じーくどらむす サポートいただけたら、連載への励みになります!