バージョン
サウンドエンジンでトリガーされるイベントは必ずゲームオブジェクトに割り当てられるので、ゲームオブジェクトはWwiseの中心的な存在です。一般的にゲームオブジェクトはサウンドを出す物体やエレメントを表し、キャラクター、武器、環境内のトーチなどが含まれます。ただし1つのエレメントの複数の部分に、それぞれ別のゲームオブジェクトを設定する場合もあります。例えば、巨大なキャラクターの複数の部分にゲームオブジェクトを設定し、足音のサウンドとキャラクターの音声が3Dサウンド空間の異なる位置から発せられるようにできます。
Note | |
---|---|
ゲームエンジンUnrealを使用したことがあれば、Unrealの「Actors」とWwiseのゲームオブジェクトが似ていることに気づくでしょう。 |
ゲーム内で各サウンドをどのように再生させるかは、Wwiseに保存されたゲームオブジェクトに関する様々な情報によって決まります。ゲームオブジェクトには、下記の情報などが割り当てられます。
ボリュームやピッチなど、ゲームオブジェクトにひも付いているオーディオ構造のプロパティオフセット値。
3Dの位置(position)と方向性(orientation)。
ステート、スイッチ、RTPCなど、ゲームシンク情報。
環境エフェクト。
オブストラクションや、オクルージョン。
Note | |
---|---|
他のプロパティと異なり、減衰(attenuation)は、ゲームオブジェクトではなくオーディオ構造に適用されます。このため、サウンドデザイナーが個々のサウンドの減衰を、より柔軟にコントロールできます。Wwiseの3D Game Object ビューを使うと、サウンドを割り当てたゲームオブジェクトを見て、リスナーとゲームオブジェクトの位置関係や各サウンドの減衰半径を確認できます。 |
ゲームオブジェクトを使う前に、プログラマーがゲームオブジェクトをゲームコードに登録する必要があります。不要になったゲームオブジェクトは、登録の解除がない限りサウンドエンジンがゲームオブジェクトの関連情報(3Dポジション、RTPC、スイッチなど)を保存し続けてしまうので、登録を解除してください。
ゲームオブジェクトを使うことで、イベントの説明でも触れたスコープ(対象)という概念がWwiseに導入されます。スコープの設定で、ゲームのサウンドにプロパティやイベントを適用させる範囲を決定します。適用の対象をゲームオブジェクトとするのか、グローバルレベルとするのかを、スコープを使って選べます。スコープはゲーム内で実際に起きる状況やアクションによって決まり、Wwise上のアプローチの仕方も最終的に決まります。
例えば、ファーストパーソン・シューティングゲームの制作を考えてみましょう。メインキャラクターが、敵の旗を獲得するために街中を歩くとします。キャラクターが街を歩き回る時に、彼の足音がします。この足音に関連するプロパティやサウンドを変更する場合は、メインキャラクターの足に関係のあるゲームオブジェクトに限った範囲で、つまりローカルレベルで変更することになります。一方、キャラクターが水中に潜った場合は、周囲の環境で再生が続く爆発音や車両音などのサウンドを全て、変える必要があります。この場合、変更をグローバルスケールで適用します。
ゲームオブジェクトを使用することで、プログラマーは個別のサウンドではなく、ゲームオブジェクトを管理すれば良いので、オーディオ全体の管理が簡素化されます。
ゲームオブジェクトを作成したあと、プログラマーの作業はイベントの送出、ゲームシンク用のスイッチ、ステート、RTPCなどの設定、そしてゲーム内の環境の設定だけとなります。具体的にどのサウンドを、どのように再生させるかといった詳細は、サウンドデザイナーがWwiseで設定できます。このアプローチで、ゲーム中の多数のエンティティに割り当てられた膨大な量のサウンドを扱う作業時間を、大幅に短縮することができます。