バージョン

menu_open
Wwise SDK 2019.2.15
オブストラクションやオクルージョンと、Game-defined auxiliary sends

ゲームオブジェクトがほかのオブジェクト(壁や梁など)に妨害されるオブストラクションや、隣の部屋から少し音が漏れてリスナーに聞こえるようなくるオクルージョンなどが、典型的な例です。Auxiliary sendsで、信号の反射を表現することができます。

オクルージョンやオブストラクションの例を下図に示します。

オブストラクションの例

オブストラクションのモデルでは、信号の Direct Path だけにボリュームコントロールと/またはローパスフィルター(LPF)を適用します。Auxiliary sendによるReflection(反射)は影響を受けません。

オクルージョンの例

オクルージョンは、信号のDirect Pathと、Auxiliary sendのReflectionの、両方に影響を与えるようなボリュームコントロールやLPFを適用することで表現できます。

注釈: オブストラクションとオクルージョンが同時に発生することもあり、それを表現するには、オブストラクション値とオクルージョン値の両方がDirect Pathに影響を与えるようにします。ただし、リフレクションパスはオクルージョン値の影響の みを受けます。

オブストラクションやオクルージョンを処理するサウンドエンジンのパイプライン内の流れを、下図に示します:

オブストラクション/オクルージョンを処理するパイプライン

オブストラクションとオクルージョンの設定

ゲームエンジンは、オブジェクトやリスナーのゲームにおける物理的な位置情報を使い、オブストラクション値やオクルージョン値を決定します。

サウンドデザイナーは、Wwise Project Settings/Curves タブのカーブにアクセスして、算出されたオブストラクション値やオクルージョン値に対してボリュームや LPF がどのように反応するかを決定することができます。

また、サウンドデザイナーは、ゲームのパフォーマンス要件や描写レベルに応じて、任意のカーブの使用を有効化または無効化することができます。

WwiseでObstructionやOcclusionのカーブをカスタム設定

上図のスナップショットで設定したグラフのカーブを使うと、オブストラクション値を1.0f(100)とした時、ソースオブジェクトで-50dBのボリューム変化が発生します。

ObstructionカーブやOcclusionカーブをWwiseでカスタム化する方法については、 Wwise online Help を参照してください。

ゲームデザイナーは、各ゲームオブジェクトのオブストラクションとオクルージョンを計算し、次のコールを使用して、算出した値をサウンドエンジンに値を渡す必要があります:

注意: オブストラクションとオクルージョンレベルは常に0.0f と 1.0fの間の値でなければなりません。

1つのゲームオブジェクトに対して複数のリスナーが有効になっている場合、サウンドエンジンは、すべてのリスナーに聞こえる最小LPF値と最大ボリューム値を決定し、続いて、この値で結果として生じるオブストラクション/オクルージョンを計算します。

例:オブストラクションとオクルージョンの設定

#define MAIN_LISTENER 0
// game loop
while( TRUE )
{
(...)
for( int iGameObject = 0; iGameObject < nbObjects; iGameObject++ )
{
AkReal32 fCalculatedObs, fCalculatedOcc;
pGeometryModule->GetObsAndOccForGameObject( iGameObject, MAIN_LISTENER, &fCalculatedObs, &fCalculatedOcc );
AK::SoundEngine::SetObjectObstructionAndOcclusion( iGameObject, MAIN_LISTENER, fCalculatedObs, fCalculatedOcc );
}
(...)
}
参照
AKSOUNDENGINE_API AKRESULT SetObjectObstructionAndOcclusion(AkGameObjectID in_EmitterID, AkGameObjectID in_ListenerID, AkReal32 in_fObstructionLevel, AkReal32 in_fOcclusionLevel)
float AkReal32
32-bit floating point
Definition: AkTypes.h:103

このページはお役に立ちましたか?

サポートは必要ですか?

ご質問や問題、ご不明点はございますか?お気軽にお問い合わせください。

サポートページをご確認ください

あなたのプロジェクトについて教えてください。ご不明な点はありませんか。

プロジェクトを登録していただくことで、ご利用開始のサポートをいたします。

Wwiseからはじめよう