Wwiseを使ってゲームに音楽を入れてみた

Wwiseを使ってゲームに音楽を入れてみた

ゲームの音を組み込むミドルウェア、Wwiseの練習が今回の記事内容です。公式サイトにあるカリキュラム、Wwise201の復習をしつつ、実際に自分で作曲したものを導入してみました。

Interactive musicを作ってみて分かったこと、どんな風に作曲すべきか、ということも簡単に触れます。


Wwiseについて

https://www.audiokinetic.com/
Audiokinetic社が提供する、「インタラクティブミュージックソリューション」のことを指します。冒頭で述べた通り、ゲームに効果音、音楽を組み込むミドルウェアです。

プログラミングについての知識がなくても操作、実際の組み込みまで行えるので、作曲家は練習しておくといいかもしれません。自分で組み込んで見ると発見があるし、何より面白いです。やっと動いた!っていう感動が特に。

…これから苦しむことになるんでしょうけども。

ただ音を組み込むだけでなく、ランダムに音を変化させたり、イベントごとに違う動きをするように設定できたりするのが、一番の特徴なんでしょうか。他のミドルウェアはよく分かりませんが、単純な組み込みだけじゃなく、かなり色んなことを試せるってのはよく分かります。

私は作曲もやってるので「じゃあこういう音楽を作ったらいいのかな、面白いかな」なんて、ふわっと思ったりします。イントロこうしたらいいかな、どういうループにしようかな、とか。

一点だけ。どうしてもゲーム自体がプログラミングの塊なので、「変数名」についての理解がないと、全く意味がわからず指定された通りに淡々と…ってなってしまいます。なんでこういう名前付けなんだろう?分かりにくくない?と。

また、実装した際にエラーなんて出たらもう、慣れてないと「なにこれ?」ってなるかもしれません。

作曲、曲を入れるってだけなら別に気にすることでもないんですが、どうしてもその先、ゲームの動きに対して変化をつけるときに頭を抱えるかもしれません。そこだけ注意です。

インタラクティブなミュージックを作る

意味については後で分かることなので、ここではあんまり細かく書きませんが、次のような形で作曲をします。今回作った曲は、戦闘シーンのもの。

イントロ、Verse(Aメロ2パターン)、Bridge(Bメロ)、TransToVerse(Aメロに戻るループの終わり目)という構成になっています。重要な事柄は次の通り。

・どこからどこに向かってループするのかをハッキリさせつつ、自然に繋げられるように作る
・Verse、Bridge間で間を十分に置く
・パターンをたくさん作る

今回の曲はループしますよーって部分を作るために、TransToVerseというセクションがあります。変な名前なんですが、これが妥当かな…?と。

各セクションの「間」は、のちに組み込む際に必要な間です。ぶつ切りにすると継ぎ目が変になってしまうので。

最後のパターンとは「リフ」「メロディ」のことです。これが多い方がより変化に富んだ、飽きない曲作りが行えます。私の最も苦手な事…耳が痛い…。2パターンと少ないのですが、今回は組み込みの練習なのでひとまず。

この曲のフルバージョンはこちら。

プロジェクトに組み込む1・ループの設定

今回はレッスン用のゲーム、Cubeのプロジェクトファイルを直接読み込んで、そこで差し替えています。Wwise201をちゃんとやってないと意味わかんないと思うので、まだレッスンを受けてない方は、そちらを先に。

作った曲はCombat(戦闘)なので、Combatのコンテナ内をまるっと私の曲に入れ替えて、ループ(画像右下)も組み直しました。ループの内容は次の通り。

・イントロ1回きり
・Verse~TransToVerseまでを1セットでループ

実はループ、一箇所無駄なことをしてます。今更気がついたんですが…そこはスルーでお願いします。

このループもなかなか面白くて、例えばイントロは同じでも、再生の度に全く違う曲が流れるということもやりようによっては出来るし、各セクションの再生ループ数を自由に設定できたりもします。戦闘シーン一つ取っても、アイデア次第で無限に広がりそうです。

プロジェクトに組み込む2・セクション内部の設定

ここの説明はレッスンと同じ事なので、分かる方はスルーで大丈夫です。

画像はCombatのVerse内部です。私がミックスし、ステムごとに書き出したものをWwiseに入れています。ここで出来ることは次。

・ミキシング(ボリューム操作、エフェクト挿入、wavの切り貼りなど)
・パターンの入れ替え

そこそこ自由にミキシングが行えます。この辺はDAWと似てるし大差ないかなーと。オートメーションはさすがに無理、というかゲームが重くなりますね。

また、先ほど作ったVerseのパターン入れ替えが行えます。ストリングスのリフパターンを2つほど作ったので、それを再生する度に入れ替わる、という設定にしてあります。

ここはまさに作曲者のアイデアが試される部分かな、と。コード進行とリズム、BPMさえ崩さなければ、ほぼほぼ無限に色んなリフ、メロディを作れますよね。それらが戦闘中、再生される、ループする度に入れ替わる、ということを可能にします。

ループの変化、セクション内部でもリフ、メロディの入れ替えという変化。時間軸だけでも色んなことができるってのは、しっかり頭に入れて曲を作った方が良さそうです。

プロジェクトに組み込む3・ゲームイベントの設定

ここからはレッスンの内容そのままで、どんなことが行えるのかというお話です。まずは非戦闘→戦闘曲の入れ替えについて。

ずっと戦闘曲ってのももちろんできますが、敵が現れたときだけ戦闘曲になった方が、ぶっちゃけて聞き飽きないです。そういう設定もWwise内部で行えます。また曲がぶつ切りに入れ替わるのではなく、どのくらいの速度でフェードイン・アウトするか、ってのも設定できます。

また、「敵に発見された」というイベントが発生した際に曲が入れ替わる、ということもWwise内で設定できます。

画像では”Monsters_Aware”に”EnemyAware”を関連付けているのですが、”EnemyAware”は恐らくゲームエンジン側の変数名であって、こちらから自由に設定するものではないでしょう。この辺でエラー出た際に、理解がないと頭抱えそうです。というか実際、私が苦しみました。


動作確認を撮影しました

以上のことをそのまま動画にしました。どんなループになるのか、Verse内部でパターンが入れ替わるというのがどんなことか、などが確認できるかと思います。

ひとまずここまでやれれば、実際に依頼をもらった際にどんな風な構成にしたらいいかが明確になると思います。そんなに難しくないので、時間がある方はぜひレッスンを受けて、曲を作ってみてください。

Wwiseを使うとまだまだ色んなことが出来そうなので、これからも練習と学習が必要になりそうです。より面白い曲がかけるようにやってみたいと思ってます。