このブログのPART Iで、Hybrid Interactive Musicという考え方を紹介した上で、私たちがゲームミュージックの可能性を広げ、開発し続けていくことの大切さについても説明しました。さらに、Get Evenの音楽の背後にあるクリエイティブな思考について少し触れました。PART IIでは、Get Evenで採用したHybrid Interactive Musicのテクニカルデモを披露したいと思います。
私はGet Evenで複数の音楽システムを作成しましたが、以下はその1例で、1つだけでもかなり手が込んでいるので、ここで詳しく説明します。
システム No.1 - リアルタイム音楽生成
Get Evenの一番最初のレベルは、廃墟ビルです。誘拐された少女を見つけるのが、あなたの任務です。ここからネタバレ注意 - あなたのメインキャラクターも、ほかのプレイヤー達も、これから死にそうになってしまうことを、まだ知りません。少女にたどり着くと、彼女が爆弾にくくり付けられていますが、実は何をしても、爆発を回避することは不可能なのです。ゲーム開発側として、メインキャラクターが頭の中でこのトラウマを再現していることも知っているので、その記憶をもつプレイヤーにとって、潜在意識の中とはいえ、これが耐えがたいものになるだろうと考えました。
Get Evenで、救助すべき少女
ブログのPART Iで言及したとおり、音楽をスタートさせるのにダイエジェティック(diegetic)なきっかけが必要でした。部屋によってトーンが様々だったので、それを使うことに決めました。プレイヤーが部屋や廊下を次々と通過するので、この手法は理にかなっています。そこでそれぞれの部屋のトーンを、すべてCで作成しました(3Dでは、各部屋にサウンドエミッターが4つ以上あり、部屋のトーンがつくられます)。電球のジーっという音もレベルのいたるところに追加して(それぞれに個別のサウンドエミッターを配置)、Cのキーにチューニングしました。以上の2つの要素が、テキスチャー音楽の柱です。複数レイヤのドローン(2D)をCで作成して、最初は部屋のトーンとブレンドさせておき、少女に近づくにつれ、照明のジー音でディストーションがかかるようにしました。とても効果的でしたが、もっと奥深い意味のあるものにしたい、と私達は考えました。
爆弾のタイマーの音も、このゲームの重要な要素です。爆弾のカウントダウンが進む音をゲームの特徴的なサウンドにできると考え、少女に近づけば近づくほど速めることで、音に意味をもたせて、緊張感のレイヤを追加したいと思いました。そのとき、ふとひらめいたのです!もし時限爆弾の秒針音で、メインキャラクター、つまりプレイヤーの視点が変わったらどうか?キャラクターは潜在意識のなかで、これが自分の死へ近づく音だと知っているので、もし、実際の記憶(キャラクターの記憶)に基づくこのバーチャルリアリティが、表面的なこと以外の情報を伝えることが出来るとしたら?
時計音で、プレイヤーの周りにも変化が起きるべきです。さて、どのように?
ダンスミュージックに馴染みのある方は、サイドチェインの仕組みを知っていると思います。Wikipediaによると、サイドチェインインプットを備えたコンプレッサは、メインインプットからアウトプットへのゲインを、サイドチェインインプットのシグナルのレベルに応じて、コントロールできます。DJはしゃべるときに、このサイドチェインインプットを使って、自動的に音楽ボリュームを下げるのです。
私も自分なりに、このテクニックを使いました。サイドチェインを、音楽ではなくゲームのアンビエントサウンドに利用したのです。これで、雨が降ったり風が吹いたりするときや、部屋のトーンやゲームのサウンドエミッターに対しても、サイドチェインを適用したりしなかったり、自由に変えられました。
Wwiseのサイドチェイン機能を支える魔法
最初にMeterエフェクトを使えるようにします。このAudiokineticのチュートリアルが使い方を分かりやすく説明しています。
これが私の“Pumping_off_beat” RTPCです:
Pumping_off_beatというRTPC
設定して、バスに適用しました。ここでは、汎用バス(pumps)にボリュームやローパスフィルタのカーブを設定しました。RTPCにシグナルが入ると、このバスのアウトプットが小さくなります。
サイドチェインの内容を自分で完全にコントロールしたかったので、Wwise Synth Oneを使って、ADSRを制御できる、非常に基本的なサイン波の音を生成しました。
シンプルなサイン波で、ADSRにRTPCを適用
サイン波のADSRをコントロールするRTPC(注: 縮尺は正確ではありません)
同時に、パンプのインテンシティを別々にコントロールしたいと思いました。そこでパンピングを極端に控え目にしたり、大げさにしたりできるRTPCを作成して、Pump_ON_OFF_Beat_Intensityという名にしました。
サイドチェインで作成されたパンピングの激しさ(インテンシティ)をコントロールするRTPC
これで、MIDIのサイン波をトリガーさせて、それをどのバスに対してもサイドチェインできるようにしました。以下のように、このサイン波が120 BPMで2小節ごとに、つまり60 BPMで1小節ごとにトリガーされます。
ここで大事なのは、サイドチェインの度にビーっと音が鳴らないように、サイン波の音をオーディオから消滅させることです。そこでPumpバスにWwiseゲインを設定して、-96 dBまで下がるようにしました。以下のスクリーンショットのように、数種類のサイドチェインを作成しました。1つはレギュラーバージョンですが、その反転(Inverted)も作成しました。サイン波が再生されるとサイドチェインされる全てのバスが再生されて、サイン波が停止すると、バスも停止されます。ループする音、例えば電球の音や、ドローンや、水漏れなどを、リズム感のあるパターンで再生できたので、とても面白い結果になりました。もう1つ、別のサイドチェインも作成しましたが、今回はベーシックなサイドチェインについてだけ書きます。非常に便利だったのは、RTPCを1つ(Switch pump)使うだけで、1つのタイプのサイドチェインから適宜、別のタイプに切り替えられたことです。
サイドチェイン3種類と、サイン波のボリュームに適用するゲインコントロール
サイドチェインのタイプを切り替えるためのRTPC
決め手になった1小節
私のサイドチェインの使い方を説明できたところで、実際の使用例を紹介したいと思います。
下図のスクリーンショットのパターンは、ループしています。60 BPMで1小節(120 BPMで2小節)で、時計の音です。テンポをコントロールするRTPCとして、Tempo_prologueを追加しました。少女に近づくと、この値が大きくなります。このRTPCが適用されるオブジェクトは:
- 音楽のスピード
- ドローンのインテンシティ
- 時計音とリバーブ
プレイ中は、時計の秒針音と同期して調子が高まる部屋のトーン(C)、電球のジー音(C)、徐々に高まるドローン音(C)、蒸気配管の音などがあって、少女に近づけば近づくほど、時計の音は速まり、インテンシティが高まり、リアルな音になっていきます。その設定は、以下のとおりです:
- 青色が、60 BPMで1小節(120 BPMで2小節)のミュージックシーケンス
- 緑色が、MIDIでトリガーされるサイン波(リアルタイムに生成)
- ピンク色が、サイドチェイン下にある全エレメント。アンビエント音のバス、サウンドFX(ループ設定)、ドローン。
- 黄色が、MIDIの時計の音(サンプラー)
以下は、ドローンがテンポに合わせて激しくなる様子です
ドローン音は、Tempo_PrologueというRTPCが速くなると、インテンシティが上がる
時計の音は、やや難しかったです。最初に、大きいリバーブでピッチがとても低い状態からスタートさせて、テンポが速まる(プレイヤーが少女に近づく)ほど、もっとリアル(高ピッチ)で、もっと近い音にしたいと思いました。そこでサンプラーを使ってMIDIインストゥルメントを作成しました。時計をMIDIでトリガーできても、音のスピードによってはダウンビートを維持しないといけないので、異なるスタートポイントを作成する必要がありました。私が使ったのはスイッチコンテナで、そこにRTPCのTempo_Prologueを適用してから、Music Editorで、テンポによって再生するトラックが変わるようなスイッチを追加しました。いい出来栄えでした!!
Tempo_PrologueというRTPCを使ってスイッチコンテナをコントロールして、スイッチトラックを切り替えて、時計をダウンビートに同期させる
時計音のブレンドコンテナは、RTPCのTempo_Prologueでローピッチ音のコントロールを、細かく定義
最後にリバーブを追加して、時計のテンポが低い時に、怪しい雰囲気になるようにしました。この場合も、Tempo_Prologueに応じて、リバーブが徐々に消えるように設定しました。
RTPCのTempo_Prologueでコントロールする、時計音のリバーブ
最終的に、たった1つのRTPC(Tempo_Prologue)と、60 bpmの1小節を使って、レベル全体の音楽エクスペリエンスを完全に有機的な形にできました。 また、開発者がレベルのスケールを変えたとしても、RTPCがプレイヤーと少女の距離関係に依存しているので、音楽は引き続き、進捗状況をフォローでき、とても都合がよいわけです。
これは私がGet Evenで作成した多数のシステムのうちの1つで、ゲームをプレイすると、その成果をしっかり実感できると思います。プロダクション面でも、これはとてもよかったです。音楽がゲームパラメータに基づいていてリアルタイムで生成されるので、ゲームの制作中に変更が生じても、私は心配せずにすみました。
リアルタイム生成の音楽とともに再生されるのが、ブリュッセル・フィルハーモニー管弦楽団の 24種の弦楽器
まとめ
このブログのPART Iで、インタラクティブミュージックを想像以上に活用できるはずだと提唱しました。ブログの第2部を読んで、サウンドデザインと音楽の境界線が一体どこにあるのか、疑問に思ったかもしれませんし、当然とも言えます。ハーモニーやテンポをインタラクティブに取り入れることで、より一歩深く音楽の世界に踏み込めると私は信じています。リアルタイムで生成する音楽を使うと、ゲーム音楽の制作やプレイヤー体験の全く新しい世界が開けてきます。私は1時間分のライブミュージックを作曲して、感情の高ぶるキューをいくつか入れ込み、ブリュッセル・フィルハーモニー管弦楽団に演奏を依頼してレコーディングしました。その後、自分で作成した様々なシステムを使ってブレンドしたわけで、とても楽しかったです。また、Wwiseのサンプラーを使って、MIDIツールでたくさんの作曲作業も行いました。できるところまでやってみたので、皆さんも興味があれば、ゲームをプレイすれば数々のシステムを発見できます。これが、その一部の動画です。
ここまで実現できたのも、夜通しで協力してくれることもあったサウンドデザイナーのFilip Hajzer、Chris Grant、David Guinotたちのおかげです。最高の仲間です!
非常に柔軟な姿勢で対応してくれたThe Farm 51、強力なサポートを提供してくれたバンダイナムコ、そしてもちろん、私を助けてくれたり、素晴らしいツールを生み出してくれたりしたAudiokineticに、とても感謝しています。
世のパイオニアの皆さん、THANK YOU!!
Get Evenは、IFMCA(International Film Music Critics Association)のBEST ORIGINAL SCORE FOR A VIDEO GAME OR INTERACTIVE MEDIAにノミネートされ、CLASSIC FM TOP 5 SCORES of 2017に選ばれたほか、Develop Awards 2017のBEST MUSIC DESIGNにもノミネートされました。
コメント