menu
 
バージョン
2019.1.11.7296

2024.1.5.8803

2023.1.13.8732

2022.1.19.8584

2021.1.14.8108

2019.2.15.7667

2019.1.11.7296

2018.1.11.6987

2017.2.10.6745

2017.1.9.6501

2016.2.6.6153

2015.1.9.5624

menu

Wwise Reflect

(以下「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で使うのが典型的です。アーリーリフレクションのシミュレーションは、バスに送られる音を発するゲームオブジェクトがこのバスに関連付いていれば、正しく行われます。

WwiseプロジェクトでWwise Reflectを設定

  • アーリーリフレクション(ER)用にAuxiliary Busを追加します。

    • Auxiliary Bus Property EditorのGeneral Settingsタブで、Channel Configurationを1.0(モノ)に変更します。Reflectは、マルチチャンネルのインプットサウンドに対応できるものの、最初にそれをダウンミックスしてモノにします。このため、バスをモノにした方が、Wwiseで不用にもボイスのスペーシャリゼーションを計算してAuxiliary Busに送る手間を省けるので、より効率的です。

      info 注釈

      バスをモノにしても、Reflectのアウトプットに影響しません(アウトプットはモノになりません)。アーリーリフレクションのスペーシャリゼーションを行うアウトプット側の設定は、ReflectのEffect Settingsで設定します。

    • Effectsタブで、Wwise Reflectのインスタンスを追加します

    • PositioningタブでListener Relative Routingオプションをチェックしますが、3D Spatializationの設定はNoneのままにします。そうしないとWwise Reflectによって生成され空間配置(spatialize)されたイメージソースを、Wwiseが更に変換(パンニングと減衰)させてしまうからです。

      info 注釈

      減衰設定はこのバスで行わず、Reflect Effect Editorで減衰のカスタム設定を行います。

  • 反射する音を確認します。

    • 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 Reflectを設定

最初に 「WwiseプロジェクトでWwise Reflectを設定」 してから、ゲーム側での設定を行います。これには、Spatial Audio APIを使います。

  • 確実にReflectを登録するために AK/Plugin/AkReflectFXFactory.h を含めます。

  • Spatial Audioヘッダーファイルである AK/SpatialAudio/Common/AkSpatialAudio.h を含めます。

  • リスナーとエミッターを登録します。

    // Register the listener.
    static const AkGameObjectID LISTENER_ID = 10000;
    AK::SoundEngine::RegisterGameObj( LISTENER_ID, "Listener" );
    AK::SpatialAudio::RegisterListener( LISTENER_ID );
    
    // Register the emitter.
    static const AkGameObjectID LISTENER_ID = 100;
    AK::SoundEngine::RegisterGameObj( EMITTER_ID, "Emitter" );
    
    AkEmitterSettings emitterSettings = AkEmitterSettings();
    // ER is the name of the Auxiliary Bus with a Reflect effect.
    emitterSettings.reflectAuxBusID = AK::SoundEngine::GetIDFromString( "ER" );
    // This represent the maximum distance between the listener and the emitter for the listener to receive reflections from the emitter.
    emitterSettings.reflectionMaxPathLength = 500.f;
    
    AK::SpatialAudio::RegisterEmitter( EMITTER_ID, emitterSettings );
    
    // Associate the emitter with the listener
    static const AkGameObjectID aLstnrsForEmitter = LISTENER_ID;
    AK::SoundEngine::SetListeners( EMITTER_ID, &aLstnrsForEmitter, 1 );
  • 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 Reflectを設定

最初に 「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 を送信する。

Acoustic Textures

イメージソース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

check_circle ReflectのFrequency Absorption Bandデフォルト値は、変更可能です

ReflectのFrequency Absorptionのデフォルト値を変更できますが、非常に特殊なシナリオ以外では、必要ないはずです。変更するには、%Wwise%\Authoring\x64\Release\bin\plugins\AkReflect.xmlファイルを直接編集しますが、そのためには、BaseTextureFrequencyDefault Valueを変更します。これで新しいデフォルトのLow帯域が設定され、ほかの帯域も続いて2オクターブずつ高くなります。

Wwise Reflectを使って第三者音の反響をシミュレーションする

Wwise Reflectをプレイヤーから見た第三者の音に適用するには、エミッタに関連付けられたバスのインスタンスに、Wwise Reflectを実行する必要があります。詳細は、3D Bussesや、 AK::SoundEngine::SetGameObjectAuxSendValues()を参照してください。バスインスタンスを適切に設定するには、AK::SpatialAudioの機能を利用できます。

Wwise Reflectの設定の調整

Reflectの反響効果を調整できる基本的なパラメータがいくつかあります。

反響とは、インプット信号をダウンミックスして、それをパンニング、フィルター、ディレイしたものになります。ディレイタイムは、ゲーム側で操作するイメージソースの距離と、ReflectのSpeed of Sound(音速)によって左右されます。フィルターやボリュームの増減は、イメージソースの距離と回折係数と、その様々な曲線を比較して決めます。また、フィルターはイメージソースのAcoustic Textureの設定にも、影響されます。

check_circle ヒント

距離の減衰カーブは、空気の吸収とエネルギーのディケイをシミュレーションします。

Diffractionの使い方

イメージソースに回折係数が設定することができます。鏡面反射であれば、通常は0ですが、リスナーに到達するまでに反射面の端をまわり込む必要があれば、0以外です。そのような反射は一般的に振幅が小さく、フィルタリングされます。Wwise Reflectが公開する曲線を使い、回折係数に対し、これらのパラメータを微調整できます。回折の詳細や、初期反射との関係や、回折を AK::SpatialAudio でシミュレーションする方法などについて、詳しくは Spatial Audio Concepts - DiffractionGeometric Diffraction of Early Reflections を参照してください。なお、 AK::SpatialAudio のGeometric Diffractionは現在、実験的機能です。

Wwise Reflectのプロパティ

項目

内容

Inclusion

このオブジェクトが含まれるのかどうかを示す。選択すると、このオブジェクトが含まれる。選択しないと、含まれないことを示す。 デフォルトでは全プラットフォームに適用する。プラットフォーム別のカスタマイゼーションの指定や設定を行う場合は、 Linkインジケータ (チェックボックス左)を使う。

チェックなしの場合は、Property Editorのプロパティや動作を設定できない。

Default value: true

Name

エフェクトインスタンスの名前。

エフェクトインスタンスは、エフェクトのプロパティ設定をまとめたものである。カスタムインスタンスとShareSetの2つのタイプがある。カスタムインスタンスは1つのオブジェクトだけに使用できるのに対し、ShareSetは複数のオブジェクト間で共有できる。

Effect

エフェクトのタイプ。

Shared by (Used by)

選択されているShareSetに現在サブスクライブされているオブジェクトのリスト。

エフェクトのカスタムインスタンスを編集している場合は、このフィールドが"Used by"となる。

検索フィールドが開き、標準的な英数字の検索によってマッチしない項目がビューで非表示となる。詳しくは「表の使用」を参照。

検索フィールドを閉じて検索フィルタを解除するには、Searchアイコン左のCloseアイコンをクリックする。

info 注釈

「List View」「Query Editor」「MIDI Keymap Editor」「Referenceビュー」で、ノードが閉じて非表示となっている項目は検索対象とならない。

エフェクトのプロパティ設定をデフォルト値に戻す。

エフェクトのカスタムインスタンスを編集している場合のみこのオプションが使用可能。

Notes

エフェクトに関する追加情報。

General

Speed Of Sound

単位毎秒。単位とは、ゲームで使用してReflectに送信される、距離の単位を指す。空中の音速は、~秒速340m(単位m/s)。ゲームの単位がcmであれば、秒速は約34,000(cm)/sとなる。

Default value: 345
Range: 0.001 to 2147483648

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
Range: 0 to 100

Output Level

wet signal のボリュームレベル(dB)。

Default value: 0
Range: -96 to 24

Monitoring List

Filter

ゲームオブジェクトのNameやIDの内容に完全に一致する、または部分的に一致するものを自由に入力する。Monitoring List表にも、グラフビューのカーブカーソル にも、一致するイメージソースのみが表示される。

Filterフィールドの内容がクリアされるので、この下の列にも、関連するグラフ中のカーブにも、Wwise Reflectが適用される全てのイメージソースが表示される。

イメージソースのMuteやSoloの状態をコントロールしたり、潜在的なミュートやソロの状態が表示したりする。

イメージソースをミュートすると、現在のモニタリングセッションにおいて音がミュートとなる。イメージソースをソロにすると、Wwise Reflectの現在のインスタンスにおいて、他の全てのイメージソースの音がミュートとなる。

太字のMSは、このイメージソースが明確にMuteまたはSoloの状態に設定されたことを示す。太字でない薄字のMSは、このイメージソースのMuteまたはSoloの状態が、他のイメージソースの状態の結果として潜在的に設定されたことを意味する。

info 注釈

ミュートやソロの機能は、モニタリング目的のために提供されるもので、プロジェクト内で維持されず、SoundBankにも保存されない。

Image Source ID

イメージソースに付けられるID番号。固有の番号をゲームが割り振る。

Image Source Name

イメージソースの名前。

Game Object ID

ゲームオブジェクトに付けられるID番号。固有の番号をゲームが割り振る。

Game Object Name

ゲームオブジェクト名。

Textures

サウンドが反射するAudio Textureの名前(名前が分からない場合は、ID)。

info 注釈

2番目の反射では、リストに2つ以上のTextureが表示される。

Distance (距離)

イメージソースとリスナーの間の距離を、ゲームの単位で示したもの。

Smoothed Distance

平滑化フィルタを適用したあとの、距離の現在値。

Current Pitch

モードがcontinuous thresholdのとき、リフレクション距離を変更することで発生する現在のドップラーピッチのシフト(単位cents)。

Displacement

Step thresholdモードのとき、現在のリフレクション長さから離れ、これから適用する差分距離の蓄積。Distance Thresholdを超過すると、0にリセットされます。

(Image Source Graph View)

Distance (X軸) とイメージソースのプロパティ値 (Y軸) の関係を図示したもの。

グラフビューに、同時に複数のカーブを表示できる。

Cursor Name Category

グラフビューで表示(または非表示)するパラメータフラグを指定するリスト。

  • No Flag
  • Image Source ID
  • Image Source Name
  • Game Object ID
  • Game Object Name
  • Texture(s)

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
Range: 1 to 2147483648

(Pin/Unpin)

Pinアイコンを選択すると、プロパティが選択されていない時でも、プロパティのカーブの輪郭がグラフビューで表示されたままになる。

グラフビューのそれぞれのカーブを見分けるための、色の凡例。

Property

選択すれば、以下の8種類のWwise Reflectイメージソースのカーブがグラフビューに表示された時に、編集できる。

  • Distance Attenuation: イメージソースとリスナーの間の距離に基づいた、ボリュームの減衰。
  • Distance Attenuation (Emitter vs. Listener): エミッタとリスナーの間の距離に基づいた、ボリュームの減衰。
  • Distance Spread: イメージソースとリスナーの間の距離に基づいた、3Dポジショニングに使うスプレッド。Wwiseが3Dポジショニングでスプレッドをどう扱うかについては、Wwise Helpの3D ポジショニングの計算の仕組み:を参照。
  • Distance Low-Pass Filter: イメージソースとリスナーの間の距離に基づいた、第1オーダーのローパスフィルタ。
  • Distance High-Pass Filter: イメージソースとリスナーの間の距離に基づいた、第1オーダーのハイパスフィルタ。
  • Diffraction Attenuation: この反射の回折係数に基づいた、ボリュームの減衰。鏡面反射と回折反射の間をスムーズに線形補間するには、回折0%のときの値を0 dBにします。
  • Diffraction Low-pass Filter: このイメージソースの回折係数に基づいた、1次ローパスフィルタ。鏡面反射と回折反射の間をスムーズに線形補間するには、回折0%のときの値を最も大きくします(フィルタリングなし)。
  • Diffraction High-pass Filter: このイメージソースの回折係数に基づいた、1次ハイパスフィルタ。鏡面反射と回折反射の間をスムーズに線形補間するには、回折0%のときの値を最も小さくします(フィルタリングなし)。


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

サポートは必要ですか?

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

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

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

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

Wwiseからはじめよう