バージョン
Wwise Unity Integration Documentation
|
Unityで、音にオブストラクションやオクルージョンを適用できます。以下の2つの方法があります:
Unityで、エミッターのゲームオブジェクトに AkEmitterObstructionOcclusion コンポーネントを追加すると、そのエミッターにオブストラクションやオクルージョンを適用できます。エミッタとリスナーの間のバスで、オブジェクトが見つかると、このコンポーネントが SetObjectObstructionAndOcclusion() をコールし、そのときのobstruction/occlusion値は、1となります。あなたのマップにスペーシャルオーディオが使われていない場合、つまり AkRoom コンポーネントがない場合は、 AkEmitterObstructionOcclusion コンポーネントはオクルージョンを使います。スペーシャルオーディオのシーンでは、同じコンポーネントがオブストラクションを使うのは、スペーシャルオーディオリスナーに対してだけ、つまり AkSpatialAudioListener コンポーネントをもつGameObjectだけです。エミッターに対するオブストラクションは、スペーシャルオーディオのリスナーと同じ部屋にあるエミッターに適用されます。
オブストラクションやオクルージョンを、必ず正しいオブジェクトに適用できるように、レイヤーマスクを利用します。例えば、プレイヤーオブジェクトのレイヤを指定し、それを AkEmitterObstructionOcclusion コンポーネントから除外すれば、リスナーのボディが音を邪魔したり聞こえにくくしたりしてしまうのを防げます。
ポータル経由で発せられた音にも、オブストラクションを適用できます。Spatial Audioの回折を使わない場合は、 AkRoomPortal にあるゲームオブジェクトに AkRoomPortalObstruction コンポーネントを使えます。Portalと、Spatial Audioのリスナーの間のパスで、オブジェクトが見つかると、このコンポーネントが SetObjectObstructionAndOcclusion() をコールし、そのときのobstruction値は、1となります。
ポータルが接する各ルームの、様々なメッシュで、 AkRoomPortalObstruction コンポーネントでオブストラクションが発生します。サーフェスリフレクタが設定されていれば、それらによってポータルの開口が塞がれる可能性もあります。これらを別のレイヤに入れ、 AkRoomPortalObstruction コンポーネントのLayer Maskから除外できるようにしてください。