レッスン 4

目次

AK Convolution Reverb

RoomVerbやMatrix Reverbがパラメトリックアルゴリズムであるのに対し、AK Convolution Reverbは事前に録音されたIR(部屋のリバーブをつくり出す部屋のインパルスレスポンス)を使います。

[注釈]

インパルスレスポンス (IR): 手をたたく(インパルス)と、その音が室内で鳴り響きます(レスポンス)。

AK Convolution Reverbは信憑性の高い空間シミュレーションを提供すると共に、ゲーム空間の音響にとって最適なIRとなるように、さまざまな設定項目があります。

[注釈]

Wwiseプロジェクトを開いた時や、ProfilerのCapture Logに、「... uses the audio Effect plugin 'AK Convolution Reverb', which is not installed(未インストールのオーディオEffectプラグインAK Convolution Reverbを使用します)」というメッセージが表示された場合は、現在のWwiseインストール用のAK Convolution Reverbがインストールされていません。それを追加するには、まずWwiseを閉じます。次にLauncherのWwiseページを開き、あなたのWwiseバージョンのSettingsリスト(レンチのアイコン)でModify…を選択し、NextをクリックしてCHOOSE PLUG-INSページに移ります。ここでAK Convolution Reverbプラグインを選択し、Modifyをクリックして、Wwiseに追加できます。

それでは、AK Convolution ReverbをDesertというAuxiliary Busに追加してみてください。

  1. Project ExplorerでMaster-Mixer Hierarchy > Master Audio Bus > World > AUX > Region_Desertを展開し、Desert Auxiliary Busを選択します。

  2. EffectsタブでAdd Effect(+)をクリックし、Wwise Convolution Reverb > Reverbs > WAG_Desertを選択します。

    AK Convolution Reverbのライセンスがない場合は、それに関する通知が届きます。でも、心配はいりません!レッスンの手順を問題なく進められます。それでは、Player_PickupというSwitch ContainerのためのAuxiliary Busを使い、Convolution Reverbをテストしてください。

  3. Project ExplorerでActor-Mixer Hierarchy > Default Work Unit > World > Player > Playerを展開し、Player_PickupというSwitch Containerを選択します。

  4. DesertというAuxiliary BusをMaster-Mixer Hierarchyから最初の行にドラッグし、前から設定されていたAuxiliary Busを置き換えます。

    必ずアサインされているAux busが1つしかないことを確認します。

  5. Playをクリックし、Convolution ReverbがPlayer_Pickupに適用されるのを聞きます。

    次にDesertというAux busに戻り、最適化を行います。

  6. DesertというAux busのObject TabでEffectsタブを開き、AK Convolution ReverbというEffectを選択します。Effectの設定がObject Tab下部にあるSecondary Editorに表示されます。

Effects Editorで、Wwise Convolution Reverbのさまざまな設定が表示されていますが、最適化は主にインパルスレスポンスの設定で作業します。

Information and statisticsウィンドウのすぐ下に、直接のメモリ予測値が表示されます。Lower engine memoryとはランタイムメモリの使用(リバーブテイルの一時保存など)のことで、SoundBank memoryとはメモリにロードされているインパルスレスポンスファイルの大きさのことです。

最適化の前に、必ずStretchを設定するようにしてください。このプロパティはインパルスレスポンスをストレッチするもので、Stretch値が高いほど部屋が大きく感じられます。

次にConvolution Reverbで必要な最適化を実行してください。最初に、時間の経過とともにLow pass filterを適用して、Impulse Responseのメモリ使用をかなり削減させます。

  1. PropertiesグループボックスでIRLPFを選択し、Automateを有効にします。

    Timeのウィンドウに青色の線が表示されます。これは時間の経過とともにImpulse ResponseにどれだけLow-pass filterを適用するかを定義する線です。Impulse Responseの終わりでよく、多くの低周波があります。そのため右端のコントロールポイントを最低周波数に設定すれば、高周波は徐々にフィルターでとり除かれます。

    [注釈]

    時間軸にそってカーブを設定することをAutomationやAutomateと言います。

  2. 右端のコントロールポイントを選択し、Y20に設定します。

    次に最低周波数毎に、より早くLow pass filterを設定するために、新しいコントロールポイントを追加してください。

  3. カーブをダブルクリックし、コントロールポイントを1.5 (X) と 20 (Y) に設定します。

    カーブのポイント間の移り変わりを改善するために、特定のカーブタイプを設定することもできます。

  4. 左端のカーブを右クリックし、Logarithmic (Base 1.41) を選択します。

    ここで、SoundBankメモリ(SoundBank内のIRのサイズ)の使用だけが、かなり削減され、lower engineメモリ(IRを処理するのに必要なランタイムメモリ)が削減されていないことに注目してください。理由は、時間の経過とともに低周波のボリュームだけを下げたため、IR(インスタンスレスポンス)の長さが変わらないからです。

    IRの長さを短くするには、Endカーソルを調整します。Information and statisticsウィンドウに、RT60という値が表示されます。信号がディケイして-60 dB未満になる時点を示してくれるので、これを利用してEndカーソルの位置を決めます。

  5. EndカーソルをRT60フィールドに表示された1.0まで、ドラッグします。

    IR設定を変えると、RT60という値がまた変化するかもしれません。適切なインパルスレスポンスを設計できたら、そのフリーケンシーレスポンスを最適化するためにIRのThresholdやSmoothのプロパティを使います。

    [ヒント]

    ここで説明するIRのThresholdとSmoothの各プロパティのほかに、以下のプロパティを利用できます:

    • HW Acceleration: 一部のプラットフォームでは、ハードウェアリソースを使用してコンボリューション処理を加速できるため、このオプションを有効にするとCPU使用量を削減できます。ただし、ご利用のプラットフォームにおいてハードウェアアクセラレーションによる潜在的な副作用や追加の要件がないか、必ず確認してから適用してください。

    • Input Threshold: 高周波のインプットサウンドを、この閾値を下回る場合に破棄します。パフォーマンスへの影響はほかの要素と比べると小さいため、ほとんどの場合は変更する必要がありません。

    • Block Size: コンボリューションエフェクト用に処理するブロックのサイズを決定します。サイズが大きいほどCPU使用は減り、レイテンシは増えます。

    これらの機能の詳細についてはAK Convolution Reverbをご覧ください。

    典型的なIRでは、時間の経過とともに多少のエネルギーが失われます。以下はフリーケンシードメイン内のIRのスペクトログラムです。

    IRのThresholdプロパティで、黒い部分をどれだけIRにエンコードするのかを決められます。上の例で分かるとおり、全エネルギーが-70 dB前後でなくなります。

    このためIRのThresholdを大きく下げて必要な信号だけエンコードしたIRで保存しても、問題がないことが多いです。IRのThresholdによってエイリアシング(でこぼこした階段状のカーブ)が発生する場合は、Smoothプロパティを使ってカーブを滑らかにできますが、Smoothを使えば使うほど最適化率が下がります。次にIRのThresholdを-73 dBまで下げて、少しだけSmoothを適用してください。

  6. Threshold-73に設定します。

  7. Smooth18に設定します。

    すべてのオーディオソースが参照イベントを使用してSoundBankにパッケージされますが、インパルスレスポンスはされません。従って、すべてのインパルスレスポンスを手作業でSoundBankに追加する必要があります。それでは、インパルスレスポンスをそれが使われる場所であるAll_In_OneというSoundBankに追加してください。

  8. Layoutsメニューで、SoundBankを選択します。

  9. Project ExplorerのShareSetsタブでEffects > Default Work Unit > Reverbsを展開してから、WAG_Desertを選択します。

  10. 次にWAG_DesertというShareSetをAll_In_OneというSoundBankにドラッグします。

    最後に、前にPlayer_Pickupに設定したUser-Defined Auxiliary Sendsの選択を、外す必要があります。

  11. LayoutsメニューでDesignerを選択します。

  12. Project ExplorerでActor-Mixer Hierarchy > Default Work Unit > World > Player > Playerを展開し、Player_Pickup Switch Containerを選択します。

  13. User-Defined Auxiliary Sendsグループボックスで、Override parentを無効にします。

これで、Wwise Convolution Reverbを有効にし最適化する方法が分かりました。そのほかのAuxiliary Busを確認すれば、このエフェクトがWAGのいたるところで適用されている様子が分かります。


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