バージョン
menu
(以下の 「Wwise Reflectのプロパティ」 を参照してください。)
Wwise Reflectプラグインエフェクトは、マルチtapのフィルタ付き時変性( time-varying)delay lineを実装して、スペーシャリゼーション(spatialization)されたアーリーリフレクションのシミュレーションを目的とします。
音響のジオメトリックモデリングを検討す上で、スペーシャリゼーションしたアーリーリフレクションは"image source technique"を使って計算することが典型的です。このアプローチで、アーリーリフレクションをイメージソースとして、まるで音が反射するジオメトリが鏡であるかのように表現できます。下図は、そのイメージ図です。
![]() |
この図では、エミッタEとリスナーLが、囲いのボックス(黒の実線)で表された1つのジオメトリ(部屋)内に存在します。エミッタからリスナーまでの反射パスが、緑の実線で表されています。イメージソース手法(image source technique)では、各表面に対して、エミッタの"鏡像(イメージ)"を生成します。イメージソースは、エミッタを通る面に垂直な直線上の、面から同じ距離だけ離れた、面の裏側の場所に配置されます。音が伝わる距離の合計は、イメージソース・リスナー間の距離に相当します。イメージソースの配置はリスナーの位置ではなく、エミッターの位置とジオメトリに厳密に依存することにご注意ください。
ゲームが、イメージソースのリストを対象となるプラグインインスタンスにプッシュします。イメージソース毎に、その相対的な3Dポジョン、ディスタンスに基づくカーブ、そして関連 「Acoustic Textures」に基づいて、ディレイラインにタップが追加され、フィルタリングされ、パンニングされ、スケール調整されます。
Wwise Reflectはアーリーリフレクションを表現するAuxiliary Busで使うのが典型的です。アーリーリフレクションのシミュレーションは、バスに送られる音を発するゲームオブジェクトがこのバスに関連付いていれば、正しく行われます。
アーリーリフレクション(ER)用にAuxiliary Busを追加します。
Project Explorerで、どのバスの下にアーリーリフレクションのAuxバスを作成するのかを決め、そのバスを右クリックします。
New Child > Presets > Early Reflection Auxiliary Bus を選択します。
新しいAuxバスが追加されます。
![]() |
注釈 |
|---|---|
このプリセットは、Wwise Reflectがインストールされていて、かつあなたのプロジェクトにWwise Reflect Factory Presetsが追加されていれば、利用できます。もしまだであれば、 Project > Import Factory Assets... メニューからいつでも追加できます。 |
アーリーリフレクションのAuxバスは、標準的なAuxバスを、以下のように設定したものです:
バスのコンフィギュレーションは、1.0(モノ)です。Reflectは、マルチチャンネルのインプットサウンドに対応できるものの、最初にそれをダウンミックスしてモノにします。そこで、バスをモノに設定しておけば、WwiseがこのAuxiliary Busに送り込むボイスのスペーシャリゼーションを計算する手間を省けるので、効率的です。
![]() |
注釈 |
|---|---|
バスをモノにしても、Reflectのアウトプットに影響しません(アウトプットはモノになりません)。バスのアウトプットコンフィギュレーションは、ReflectのEffect Settingsで決まり、それに対してアーリーリフレクションのスペーシャリゼーションが行われます。 |
バスに、Wwise Reflectのインスタンスがのせてあります。
Positioningタブを開くと、 Listener Relative Routing オプションにチェックが入っていますが、3D Spatializationは、 None のままです。これは、Wwise Reflectで生成されてスペーシャリゼーションされたイメージソースを、Wwiseがさらに変化させて(パンさせて減衰させて)しまうのを防ぐためです。
![]() |
注釈 |
|---|---|
このバスに、減衰を適用しないでください。減衰のカスタマイズは、Reflect Effect Editorで行えます。 |

反射する音を確認します。
Wwise Reflectは、Wwise Spatial Audio Geometry APIと使うことが推奨されますが、その場合は新規に作成したバスを、Sound Property EditorのGeneral Settingsタブで、Early Reflectionsの Auxiliary Bus に設定してください。また、センドのVolumeを自分で設定することもできます。

Wwise ReflectをWwise Spatial Audio raw SetImageSource APIと使う場合、またはほかのAuxバスに送って後期リバーブに使う場合は、Sound Property EditorのGeneral Settingsタブで、Use game-defined auxiliary sends オプションをチェックします。
一般的に、サウンドのスペーシャリゼーションを3Dで行い、減衰を適用します。Sound Property EditorのPositioningタブで、Listener Relative Routingオプションをチェックし、3D Spatializationの設定をPosition + Orientationにします。Attenuationグループボックスで、Attenuationを1つ追加します。

Reflect Effect Editorで、エフェクトの設定を行います。
Output Configプロパティを変更し、アウトプットチャンネルのコンフィギュレーションを設定します。Parent Bus は、Auxiliary Busの親バスのアウトプットバスコンフィギュレーションを表しています。
イメージソースが見えるように、Max Distanceの数値が低すぎないように注意します。

サウンドバンクを生成します。
Reflectのライセンスを取得してあることを確認します。
最初に 「WwiseプロジェクトでWwise Reflectを設定」 してから、ゲーム側での設定を行います。これには、Spatial Audio APIを使います。
確実にReflectを登録するために AK/Plugin/AkReflectFXFactory.h を含めます。
Spatial Audioヘッダーファイルである AK/SpatialAudio/Common/AkSpatialAudio.h を含めます。
Spatial Audioモジュールを初期化して、スペーシャルオーディオのリスナーを登録します。
// Wwise Spatial Audioの初期化。 AkSpatialAudioInitSettings settings; res = AK::SpatialAudio::Init(settings); // リスナーゲームオブジェクトが未登録であれば、まず登録し、さらにそれを唯一のスペーシャルオーディオリスナーとして登録。 static const AkGameObjectID LISTENER_ID = 10000; AK::SoundEngine::RegisterGameObj( LISTENER_ID, "Listener" ); AK::SpatialAudio::RegisterListener( LISTENER_ID );
Reflectのジオメトリサーフェスをつくるためのジオメトリを定義し設定します。
AkGeometryParamsを作成し、その中に、あなたのジオメトリの三角形、頂点、サーフェスを入れます。
static const AkGeometrySetID GEOMETRY_ID = 200;
AkGeometryParams geometryParam;
// Fill triangles, vertices and surfaces into geometryParam.
// See an example in the Integration Demo.
// ...
AK::SpatialAudio::SetGeometry( GEOMETRY_ID, geometryParams );
エミッターが動くにつれ、エミッターのポジションを更新します。(SoundEngine::SetPosition からのコールを、SpatialAudio::SetPositionに置き換えます)
AK::SpatialAudio::SetPosition( EMITTER_ID, soundPos );
最初に 「WwiseプロジェクトでWwise Reflectを設定」 してから、ゲーム側での設定を行います。
確実にReflectを登録するために AK/Plugin/AkReflectFXFactory.h を含めます。
Reflectヘッダーファイルである AK/Plugin/AkReflectGameData.h を含めます。
実行ファイルのインプットライブラリに、AkReflectFX.libを追加する必要があるかもしれません。
Reflect APIを使いイメージソースを作成し、音を反射させたい場所に配置します。
// Create an AkReflectGameData object. AkReflectGameData * reflectGameData = nullptr; reflectGameData = (AkReflectGameData *)_alloca(AkReflectGameData::GetSize(1)); // Fill in the data. reflectGameData->listenerID = LISTENER_ID; reflectGameData->uNumImageSources = 1; reflectGameData->arSources[0].uID = 123; reflectGameData->arSources[0].params.sourcePosition = { 200, 0, 0 }; // The following represents a distance factor between the listener and the image source. // If the source position corresponds to the reflective surface, the number should be two. reflectGameData->arSources[0].params.fDistanceScalingFactor = 1.f; reflectGameData->arSources[0].params.fLevel = 1.f; // Associate the image source with Acoustic Textures here if needed. reflectGameData->arSources[0].texture.uNumTexture = 0; reflectGameData->arSources[0].name.SetName("Img src 1"); // Send to Reflect. AK::SoundEngine::SendPluginCustomGameData(AK::SoundEngine::GetIDFromString("ER"), EMITTER_ID, AkPluginTypeEffect, AKCOMPANYID_AUDIOKINETIC, 171, reflectGameData, AkReflectGameData::GetSize(1));
イメージソースのポジションを更新する必要がある時に、新しい AkReflectGameData を送信する。
イメージソース1つにつき、最大4つのAcoustic Texturesを通せます。Acoustic Textureは「Acoustic Texture Editor」で設定して、素材のプロパティを表します。プラグイン実行に際して、そのTextureに設定された4種類のAbsorption(吸音)バンド(Low、Mid Low、Mid High、High)が、4つの周波数バンドの減衰に変換されます。
2つ以上のAcoustic Textureを適用すると、バンド吸音係数を合算して、信号を順次フィルターにかけたようにします。この結果、複数の面に反響したかのような効果がでます。
![]() |
Wwise ReflectのデフォルトのFrequency Absorption Bandのマッピング
Low: < 250 Hz
Mid Low: > 250 Hz and < 1,000 Hz
Mid High: > 1,000 Hz and < 4,000 Hz
High: > 4,000 Hz
![]() |
ReflectのFrequency Absorption Bandデフォルト値は、変更可能です |
|---|---|
ReflectのFrequency Absorptionのデフォルト値を変更できますが、非常に特殊なシナリオ以外では、必要ないはずです。変更するには、 |
Wwise Reflectをプレイヤーから見た第三者の音に適用するには、エミッタに関連付けられたバスのインスタンスに、Wwise Reflectを実行する必要があります。詳細は、3D Bussesや、 AK::SoundEngine::SetGameObjectAuxSendValues()を参照してください。バスインスタンスを適切に設定するには、AK::SpatialAudioの機能を利用できます。
Reflectの反響効果を調整できる基本的なパラメータがいくつかあります。
反響とは、インプット信号をダウンミックスして、それをパンニング、フィルター、ディレイしたものになります。ディレイタイムは、ゲーム側で操作するイメージソースの距離と、ReflectのSpeed of Sound(音速)によって左右されます。フィルターやボリュームの増減は、イメージソースの距離と回折係数と、その様々な曲線を比較して決めます。また、フィルターはイメージソースのAcoustic Textureの設定にも、影響されます。
![]() |
ヒント |
|---|---|
距離の減衰カーブは、空気の吸収とエネルギーのディケイをシミュレーションします。 |
イメージソースに回折係数を設定することができます。鏡面反射であれば、通常は0ですが、リスナーに到達するまでに反射面の端をまわり込む必要があれば、0以外です。そのような反射は一般的に振幅が小さく、フィルタリングされます。Wwise Reflectが公開する曲線を使い、回折係数に対し、これらのパラメータを微調整できます。回折、アーリーリフレクション(初期反射)との関係、回折をAK::SpatialAudioでシミュレーションする方法などについて、詳しくはSpatial Audioの概念 - Diffraction(回折)やアーリーリフレクションの、ジオメトリによる回折を参照してください。
|
項目 |
内容 |
|||
|---|---|---|---|---|
|
Name |
エフェクトインスタンスの名前。 エフェクトインスタンスは、エフェクトのプロパティ設定をまとめたものである。カスタムインスタンスとShareSetの2つのタイプがある。カスタムインスタンスは1つのオブジェクトだけに使用できるのに対し、ShareSetは複数のオブジェクト間で共有できる。 |
|||
|
|
オブジェクトのカラーを示します。アイコンをクリックすると、カラーセレクタが開きます。 ![]() カラーを選ぶと、オブジェクトに適用されます。
|
|||
|
Inclusion |
このオブジェクトが含まれるのかどうかを示す。選択すると、このオブジェクトが含まれる。選択しないと、含まれないことを示す。デフォルトでは全プラットフォームに適用する。プラットフォーム別のカスタマイゼーションの指定や設定を行う場合は、 Linkインジケータ (チェックボックス左)を使う。 このオプションを選択しないと、エディタのプロパティオプションや動作オプションが設定ができなくなる。 Default value: true |
|||
![]() ![]() |
このオブジェクトを直接参照する、あなたのプロジェクトにある要素の数を示します。アイコンの色は、このオブジェクトを参照するものがあればオレンジ色、参照するものがなければ灰色です。 ボタンを選択すると 「Referenceビュー」 が開き、 References to: フィールドにオブジェクト名が表示されます。 |
|||
|
Notes |
エフェクトに関する追加情報。 |
|||
|
Metering |
Meterで測定中のオブジェクト名を示す。 |
|||
![]() |
Meterで測定できる、ほかのファイルを閲覧。
|
|||
|
Effect Editorで選択したタブの、表示方法を設定。デフォルトで、1つのパネルに、選択中のタブが1つだけ表示される。スピリッターボタンをクリックすると、パネルが左右または上下に2分割され、2つの異なるタブが表示される。現在選択中のオプションが、バックグランドカラーを入れてハイライトされる。
|
|
General | ||||
|
Speed Of Sound |
単位毎秒。単位とは、ゲームで使用してReflectに送信される、距離の単位を指す。空中の音速は、~秒速340m(単位m/s)。ゲームの単位がcmであれば、秒速は約34,000(cm)/sとなる。 Default value: 345 |
|||
|
Distance Smoothing |
ディレイラインに送信するリフレクションのレイディスタンス(ray distance)に適用する、平滑化(smoothing)フィルタ。平滑化を増やせばリフレクション時間の更新は遅くなるが、移動で発生するドップラーピッチシフトが制限される。0から1の間の、正規化された値。 |
|||
|
Smoothing Type |
平滑化フィルタの、時間で変化するレスポンス形状を決める。IIRやFIRのカーブアイコンは、レイディスタンスの急激な変化をフィルタがどのように形づくるかを示す。 |
|||
|
Threshold Mode |
Continousモードは、移動で発生するドップラーピッチシフトを、最大限に許容する。スレッショルドを超えるほど移動が速い場合は、ピッチがスレッショルド未満になるまで、リフレクションのボリュームをダッキングする。スレッショルドを0にすると、移動があれば常にリフレクションのボリュームをダッキングする。 Stepモードは、ディスタンスのスレッショルドを示す半円を設定し、最小限の移動がないとリフレクションが更新されないようにする。スレッショルドを0にすると、移動が起きるたびに、新旧のリフレクションの間でリフレクションのクロスフェードが発生する。クロスフェードは、時間延長のエフェクトとなり、ピッチは変更されない。 |
|||
|
Pitch Threshold |
Continuous thresholdモードのときに、リフレクションボリュームをダッキングし始める前の、ドップラーピッチシフトの許容される最大値を設定する。これを0に設定すると、移動があればリフレクションのボリュームがダッキングされる。 |
|||
|
Distance Threshold |
モードがStep thresholdの場合、リフレクションのディレイタイムを更新するのに必要なレイディスタンスの最小限の変化(単位はゲームユニット)を設定する。0に設定すると、移動があればリフレクションがクロスフェードする。 |
|||
|
Center % |
3Dポジショニングに使うCenter%。Wwiseで扱う3DポジショニングのCenter%については、 Positioningタブ: Audio Bus、Auxiliary Bus を参照。 Default value: 100 |
|||
|
Output Config |
Wwise Reflectはout-of-place Effectなので、入力されたものと異なるチャンネルコンフィギュレーションを出力することができる。プラグインの出力チャンネルコンフィギュレーションは、Output Configで定義する。 マルチチャンネルコンフィギュレーションで、サウンドエンジンが無駄にスペーシャリゼーションの計算をすることがないように、MonoバスにWwise Reflectを使うことが推奨される。バスコンフィギュレーションがMono以外の場合は、Wwise Reflectがまず最初に、入力信号をMonoにダウンミックスする。ただし、出力されるアーリーリフレクションはスペーシャリゼーションされるべきである。Output Config設定を使えば、スペーシャリゼーションを行うコンフィギュレーションを自由に決定できる。 この値を Parent Bus に設定すると、Wwise Reflectはクエリを行い、インサート先のバスの親のバスコンフィギュレーションを使う。 なお、親バスのコンフィギュレーションがAudio Objectsであれば、Wwise Reflectはアーリーリフレクション1つに対してAudio Objectを1つ、出力することになる。これは、相当数のAudio Objectsになる場合がある。 Default value: Parent Bus |
|||
|
Output Level |
wet signal のボリュームレベル(dB)。 Default value: 0 |
|||
|
Monitoring List | ||||
|
Filter |
ゲームオブジェクトのNameやIDの内容に完全に一致する、または部分的に一致するものを自由に入力する。Monitoring List表にも、グラフビューのカーブカーソル にも、一致するイメージソースのみが表示される。 |
|||
|
![]()
|
Filterフィールドの内容がクリアされるので、この下の列にも、関連するグラフ中のカーブにも、Wwise Reflectが適用される全てのイメージソースが表示される。 |
|||
![]() ![]() ![]() ![]() ![]() |
イメージソースのMuteやSoloの状態をコントロールしたり、潜在的なミュートやソロの状態が表示したりする。 イメージソースをミュートすると、現在のモニタリングセッションにおいて音がミュートとなる。イメージソースをソロにすると、Wwise Reflectの現在のインスタンスにおいて、他の全てのイメージソースの音がミュートとなる。 太字のMやSは、このイメージソースが明確にMuteまたはSoloの状態に設定されたことを示す。太字でない薄字のMやSは、このイメージソースのMuteまたはSoloの状態が、他のイメージソースの状態の結果として潜在的に設定されたことを意味する。
|
|||
|
Image Source ID |
イメージソースに付けられるID番号。固有の番号をゲームが割り振る。 |
|||
|
Image Source Name |
イメージソースの名前。 |
|||
|
Game Object ID |
ゲームオブジェクトに付けられるID番号。固有の番号をゲームが割り振る。 |
|||
|
Game Object Name |
ゲームオブジェクト名。 |
|||
|
Textures |
サウンドが反射するAudio Textureの名前(名前が分からない場合は、ID)。各リフレクションオーダーにつき、テキスチャが1つ以上登録されています。
|
|||
|
Distance |
イメージソースとリスナーの間の距離を、ゲームの単位で示したもの。 |
|||
|
Level |
イメージソースが出すサウンドのゲイン。このレベルは、ユーザーがAkImageSourceParamsで設定できるほか、端(edge)における反射によって発生したディフラクション角度に従い、Spatial Audioで制御できます。後者の場合、鏡面反射の場合は値が1、反射の方向が面と平行の場合は0となります。 |
|||
|
Diffraction |
ビューゾーンの回折(ディフラクション)の場合、これは鏡面反射の方向と反射の方向の間の角度。シャドーゾーンの回折の場合、これはシャドーゾーンの境界線と反射の方向の間の角度。 |
|||
|
Smoothed Distance |
平滑化フィルタを適用したあとの、距離の現在値。 |
|||
|
Current Pitch |
モードがcontinuous thresholdのとき、リフレクション距離を変更することで発生する現在のドップラーピッチのシフト(単位cents)。 |
|||
|
Displacement |
Step thresholdモードのとき、現在のリフレクション長さから離れ、これから適用する差分距離の蓄積。Distance Thresholdを超過すると、0にリセットされます。 |
|||
|
(Image Source Graph View) |
Distance (X軸) とイメージソースのプロパティ値 (Y軸) の関係を図示したもの。 グラフビューに複数のカーブを同時に表示できます。 |
|||
|
Cursor Name Category |
グラフビューで表示(または非表示)するパラメータフラグを指定するリスト。
Default value: No Flag |
|||
|
X |
選択したコントロールポイントのX座標。X値は、選択したDistanceの値を表す。 2つ以上のコントロールポイントを選択すると、このフィールドの数値が「0」となり、これを増減させることで、選択中の全てのコントロールポイントを、現在の数値から増減できる。例えば2つのコントロールポイントを選択して、Xスライダを-5だけ移動させると、コントロールポイントが2つとも、左に5単位だけ動く。 |
|||
|
Y |
選択したコントロールポイントのY座標。Y値は、プロパティ値(Distance Attenuationボリュームのデシベル値、またはDistance Spread率、またはLow-PassまたはHigh-PassフィルタのHz値)を表す。。 2つ以上のコントロールポイントを選択すると、このフィールドの数値が「0」となり、これを増減させることで、選択中の全てのコントロールポイントを、現在の数値から増減できる。例えば、2つのコントロールポイントを選択して、テキストボックスYに「-5」と入力すると、両方のコントロールポイントが、下に「5」だけ移動する。 |
|||
![]() |
グラフビューの中心にズームインする。 |
|||
![]() |
グラフビューの表示を、デフォルトのズーム比「1:1」にリセットする。 |
|||
![]() |
グラフビューの中心からズームアウトする。 |
|||
|
Max Distance |
ゲームの単位で示した、カーブの最大距離。 Default value: 1000 |
|||
|
(Pin/Unpin) |
Pinアイコンを選択すると、プロパティが選択されていない時でも、プロパティのカーブの輪郭がグラフビューで表示されたままになる。 |
|||
|
色 |
グラフビューのそれぞれのカーブを見分けるための、色の凡例。 |
|||
|
Property |
選択すれば、以下の8種類のWwise Reflectイメージソースのカーブがグラフビューに表示された時に、編集できる。
|
|||