レッスン 4
目次
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に追加してみてください。
-
Project ExplorerでMaster-Mixer Hierarchy > Master Audio Bus > World > AUX > Region_Desertを展開し、Desert Auxiliary Busを選択します。
-
EffectsタブでAdd Effect(+)をクリックし、Wwise Convolution Reverb > Reverbs > WAG_Desertを選択します。
AK Convolution Reverbのライセンスがない場合は、それに関する通知が届きます。でも、心配はいりません!レッスンの手順を問題なく進められます。それでは、Player_PickupというSwitch ContainerのためのAuxiliary Busを使い、Convolution Reverbをテストしてください。
-
Project ExplorerでActor-Mixer Hierarchy > Default Work Unit > World > Player > Playerを展開し、Player_PickupというSwitch Containerを選択します。
-
DesertというAuxiliary BusをMaster-Mixer Hierarchyから最初の行にドラッグし、前から設定されていたAuxiliary Busを置き換えます。
必ずアサインされているAux busが1つしかないことを確認します。
-
Playをクリックし、Convolution ReverbがPlayer_Pickupに適用されるのを聞きます。
次にDesertというAux busに戻り、最適化を行います。
-
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のメモリ使用をかなり削減させます。
-
PropertiesグループボックスでIRLPFを選択し、Automateを有効にします。
Timeのウィンドウに青色の線が表示されます。これは時間の経過とともにImpulse ResponseにどれだけLow-pass filterを適用するかを定義する線です。Impulse Responseの終わりでよく、多くの低周波があります。そのため右端のコントロールポイントを最低周波数に設定すれば、高周波は徐々にフィルターでとり除かれます。
時間軸にそってカーブを設定することをAutomationやAutomateと言います。
-
右端のコントロールポイントを選択し、Yを20に設定します。
次に最低周波数毎に、より早くLow pass filterを設定するために、新しいコントロールポイントを追加してください。
-
カーブをダブルクリックし、コントロールポイントを1.5 (X) と 20 (Y) に設定します。
カーブのポイント間の移り変わりを改善するために、特定のカーブタイプを設定することもできます。
-
左端のカーブを右クリックし、Logarithmic (Base 1.41) を選択します。
ここで、SoundBankメモリ(SoundBank内のIRのサイズ)の使用だけが、かなり削減され、lower engineメモリ(IRを処理するのに必要なランタイムメモリ)が削減されていないことに注目してください。理由は、時間の経過とともに低周波のボリュームだけを下げたため、IR(インスタンスレスポンス)の長さが変わらないからです。
IRの長さを短くするには、Endカーソルを調整します。Information and statisticsウィンドウに、RT60という値が表示されます。信号がディケイして-60 dB未満になる時点を示してくれるので、これを利用してEndカーソルの位置を決めます。
-
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を適用してください。
-
-
Thresholdを-73に設定します。
-
Smoothを18に設定します。
すべてのオーディオソースが参照イベントを使用してSoundBankにパッケージされますが、インパルスレスポンスはされません。従って、すべてのインパルスレスポンスを手作業でSoundBankに追加する必要があります。それでは、インパルスレスポンスをそれが使われる場所であるAll_In_OneというSoundBankに追加してください。
-
Layoutsメニューで、SoundBankを選択します。
-
Project ExplorerのShareSetsタブでEffects > Default Work Unit > Reverbsを展開してから、WAG_Desertを選択します。
-
次にWAG_DesertというShareSetをAll_In_OneというSoundBankにドラッグします。
最後に、前にPlayer_Pickupに設定したUser-Defined Auxiliary Sendsの選択を、外す必要があります。
-
LayoutsメニューでDesignerを選択します。
-
Project ExplorerでActor-Mixer Hierarchy > Default Work Unit > World > Player > Playerを展開し、Player_Pickup Switch Containerを選択します。
-
User-Defined Auxiliary Sendsグループボックスで、Override parentを無効にします。
これで、Wwise Convolution Reverbを有効にし最適化する方法が分かりました。そのほかのAuxiliary Busを確認すれば、このエフェクトがWAGのいたるところで適用されている様子が分かります。