目次

アクターミキサー階層内のオブジェクトのグループ分け

アクターミキサー階層で設定したポジショニングやRTPCなどのプロパティは、全ての子オブジェクトに承継されるので、メモリやCPUを節約する究極の手段ともいえます。多数のサウンドオブジェクトを整理する時は、アクターミキサー内のグループ分けについて、以下の点を検討して下さい。

  • プロパティ設定の処理が一回で済むように、共通設定をシェアさせる

  • オーバーライド設定によってオブジェクトごとに処理する状況をできるだけ回避するために、オーバーライド数を制限する

メモリーを効率的に使用するには、状況に応じてアクターミキサー内でオブジェクトをグループにまとめて、下記のプロパティをシェアさせます。

  • ポジショニング

  • RTPC

  • ステート

  • ランダマイザー

例えば、サウンドが10個入ったアクターミキサーにおいて、サウンドポジションの設定を3Dにする場合を考えます。サウンドを1つ1つ開いてOverride parent(親の設定を無視)のオプションを選択して、3D設定とすることができます。しかしこれでは、アクターミキサー自体を3Dポジショニングに設定した時と比べてランタイムのメモリ使用量が10倍になります。また、アクターミキサーに入ったサウンドのいくつかを2Dに設定する場合も、アクターミキサー自体をゲーム定義による3Dポジショニングに設定した上で、その内のいくつかのサウンドを2Dポジションにした方が、メモリ使用量が最適化されます。後から設定した2Dサウンドによるメモリ負担増はないので、2Dポジションのサウンドだけをオーバーライド設定とします。

階層プロパティの承継によって、メモリの節約が可能

共通するプロパティをアクターミキサー全体に対して設定するのが一般的には最良ですが、状況によってはコンテナに対して共通プロパティを設定した方がメモリ消費を抑えられます。例えば、ランダムコンテナに入った足音のように特定のコンテナのオブジェクトだけにポジショニングを設定したい状況では、ポジショニングのプロパティ設定をコンテナに対して設定した方が、親のアクターミキサーに対して設定するよりもメモリの節約になります。ただしアクターミキサーの構成に入った全オブジェクトにポジショニングのプロパティを共有させたいのであれば、アクターミキサーに対して設定します。