バージョン
Wwiseで階層構造を作成する機能は、非常に柔軟性に優れています。プロジェクトの初期段階で一貫した分かりやすい方針を立てることは、以後の時間節約や効率性につながります。オーディオプロジェクトの進め方には様々な手法がありますが、ゲームで最高の結果を達成するために参考となるコンセプトを、以下に紹介します。
階層の構築を始める前に、オーサリング時間を短縮するだけでなく、プロジェクトのメモリ負荷を抑えるためにも、オブジェクトの最適な整理方法を充分に検討する必要があります。計画内容にもよりますが、プロジェクトの様々なオブジェクトを効率的にグループにまとめるための提案を、以下に示します。
Actor-Mixer Hierarchyで設定したポジショニングやRTPCなどのプロパティは、全 ての子オブジェクトに継承されるので、メモリやCPUを節約する究極の手段とも いえます。多数のサウンドオブジェクトを整理する時は、アクターミキサー内のグ ループ分けについて、以下の点を検討して下さい。
プロパティ設定の処理が一回で済むように、共通設定をシェアさせる
オーバーライド設定によってオブジェクトごとに処理する状況をできるだけ回避 するために、オーバーライド数を制限する。
注意 | |
---|---|
アクターミキサーのレベルでエフェクトを適用すると、適用方法としては効率的であっても、CPUは節約できません。アクターミキサーのレベルでエフェクトを設定すると、そのエフェクトのインスタンスが全ての子オブジェクトに適用されるためです。オブジェクトごとにエフェクトがリアルタイムで処理されるため、CPU負荷がかなり増加します。 |
メモリを効率的に使用するには、状況に応じてアクターミキサー内でオブジェク トをグループにまとめて、以下のプロパティをシェアさせます。
Positioning
RTPCs
State
Randomizers
例えば、サウンドが10個入ったアクターミキサーにおいて、サウンドポジション の設定を3Dにする場合を考えます。サウンド1つ1つで、Override parentのオプションを選択して、3D設定とすることができます。しかしこれでは、アクターミキサー自体を3Dポジショニングに設定した時と比べてランタイムのメモリ使用量が10倍になります。また、アクターミキサーに入ったサウンドのいくつかを2Dに設定する場合、アクターミキサー自体をゲーム定義による3Dポジショニングに設定した上で、そのうちのいくつかのサウンドを2Dポジションにした方が、メモリ使用量が最適化されます。2Dサウンドによるメモリ負担増はないので、2Dポジションのサウンドで、アクターミキサーをオーバーライドして2Dを適用します。
共通するプロパティをアクターミキサー全体に対して設定するのが一般的には最良 ですが、状況によってはコンテナに対して共通プロパティを設定した方がメモリ消 費を抑えられます。例えば、Random Containerに入った足音のように特定のコンテ ナのオブジェクトだけにポジショニングを設定したい状況では、ポジショニングの プロパティ設定をコンテナに対して設定した方が、親のアクターミキサーに対して 設定するよりもメモリを節約できます。ただし、アクターミキサーの構造に入った 全オブジェクトにポジショニングのプロパティを共有させたいのであれば、アク ターミキサーに対して設定します。
それでは上記のコンセプトを利用して、オブジェクトを効率的にアクターミキサーにまとめる方法について考えます。今回は、ゲームで使うダイアログアセットで作業をします。アセットは、キャラクターボイス(voice)として使うものと、無線通話(radio voice)に使うものに分かれます。全てのダイアログアセットに同じボリュームを適用するなど、共通して設定できるプロパティがあるため、まず、Dialogueというアクターミキサーにまとめます。
上図の通り、アクターミキサーのボリュームを設定した後に、無線通話のダイアログだけにパラメトリックEQエフェクトを追加します。この場合、無線ボイスを1つずつ編集して、個別にアクターミキサーの設定をオーバーライドさせてエフェクトを追加することができます。しかし、無線ボイスのファイルを1つのコンテナにまとめて、そのコンテナに対してアクターミキサー設定のオーバーライドとエフェクトの追加を適用させた方が、効率的です。
ゲームや、Game Simulator機能に接続した状態で、以下の相対プロパティを、Wwiseでリアルタイムで調整することができます。
Volume
Pitch
LPF
Center %
RTPC値
ステート切り替え、スイッチ切り替え
Trigger
減衰コントロール
一部のオーディオやソースエフェクトの、プラグイン設定
注記 | |
---|---|
基本的なルールとして、ゲームパラメータにマッピングできるプロパティは、全てゲーム中にリアルタイムに変更できます。 |
ただし、これを実行するには、調整したいプロパティを持つオブジェクトを、Transport ControlまたはSoundcasterにロードする必要があります。オブジェクトがロードされていないと、そのオブジェクトがサウンドエンジンに登録されないため、変更を加えても有効になりません。Actor-MixerはTransport Controlにロードできませんが、Actor-Mixerの子オブジェクトをロードすればその親オブジェクトがサウンドエンジンに登録されます。一旦オブジェクトを登録すると、ゲームとの接続が切れるまで、登録された状態が続きます。
注記 | |
---|---|
Transport Controlで、あるオブジェクトにピンを付けると、そのオブジェクトのピンを外すまで、他のオブジェクトをロードできないので、注意してください。ただし、Soundcasterにオブジェクトをロードした場合は、サウンドエンジンにそのオブジェクトが登録されます。 |