バージョン
サウンドエンジンでトリガーされるイベントは必ずゲームオブジェクトに割り当てられるので、ゲームオブジェクトはWwiseの中心的な存在です。一般的にゲームオブジェクトはサウンドを出す物体やエレメントを表し、キャラクター、武器、環境内のトーチなどが含まれます。ただし1つのエレメントの複数の部分に、それぞれ別のゲームオブジェクトを設定する場合もあります。例えば、巨大なキャラクターの複数の部分にゲームオブジェクトを設定し、足音のサウンドとキャラクターの音声が3Dサウンド空間の異なる位置から発せられるようにできます。
Note | |
---|---|
ゲームエンジンUnrealを使用したことがあれば、Unrealの「Actors」とWwiseのゲームオブジェクトが似ていることに気づくでしょう。 |
ゲーム内で各サウンドをどのように再生させるかは、Wwiseに保存されたゲームオブジェクトに関する様々な情報によって決まります。ゲームオブジェクトには、下記の情報などが割り当てられます。
Property offset values of an audio structure associated with the game object, including volume and pitch.
3Dの位置(position)と方向性(orientation)。
Game Sync information, including States, Switches, and RTPCs.
環境エフェクト。
オブストラクションや、オクルージョン。
Note | |
---|---|
Unlike other properties, attenuation is applied on the audio structure and not on the game object. このため、サウンドデザイナーが個々のサウンドの減衰を、より柔軟にコントロールできます。Wwiseの3D Game Object ビューを使うと、サウンドを割り当てたゲームオブジェクトを見て、リスナーとゲームオブジェクトの位置関係や各サウンドの減衰半径を確認できます。 |
ゲームオブジェクトを使う前に、プログラマーがゲームオブジェクトをゲームコードに登録する必要があります。When you no longer need the game objects, you should un-register them, because the sound engine will continue to store their related information (3DPosition, RTPC, Switches, and so on) until the game object associated with these values is unregistered.
ゲームオブジェクトを使うことで、イベントの説明でも触れたスコープ(対象)という概念がWwiseに導入されます。スコープの設定で、ゲームのサウンドにプロパティやイベントを適用させる範囲を決定します。適用の対象をゲームオブジェクトとするのか、グローバルレベルとするのかを、スコープを使って選べます。スコープはゲーム内で実際に起きる状況やアクションによって決まり、Wwise上のアプローチの仕方も最終的に決まります。
例えば、ファーストパーソン・シューティングゲームの制作を考えてみましょう。メインキャラクターが、敵の旗を獲得するために街中を歩くとします。キャラクターが街を歩き回る時に、彼の足音がします。この足音に関連するプロパティやサウンドを変更する場合は、メインキャラクターの足に関係のあるゲームオブジェクトに限った範囲で、つまりローカルレベルで変更することになります。一方、キャラクターが水中に潜った場合は、周囲の環境で再生が続く爆発音や車両音などのサウンドを全て、変える必要があります。この場合、変更をグローバルスケールで適用します。
ゲームオブジェクトを使用することで、プログラマーは個別のサウンドではなく、ゲームオブジェクトを管理すれば良いので、オーディオ全体の管理が簡素化されます。
Once the game objects are created, programmers only need to post Events, set up the Game Syncs, including Switches, States, and RTPCs, and in-game environments. 具体的にどのサウンドを、どのように再生させるかといった詳細は、サウンドデザイナーがWwiseで設定できます。このアプローチで、ゲーム中の多数のエンティティに割り当てられた膨大な量のサウンドを扱う作業時間を、大幅に短縮することができます。