Economic-Tick

概要

⾳源がリスナーから⼗分遠いとき、その音源のTick処理の頻度を下げることで処理負荷を下げる機能です。

必ず処理負荷が下がるのですか?

いいえ。
「遠くの音源のTick処理負荷 > 全ての音源とリスナーの距離を計算する処理負荷」のとき全体の処理負荷が下がりますが、逆の場合は処理負荷が上がります。
リスナーから遠い場所で頻繁に音が鳴ることが予想される場合にご活用ください。

詳細

正確には下記条件を満たすとき、Tick処理の頻度を下げます。
  • 3Dサウンドである(つまり2Dサウンドではない)
  • ⾳源とリスナーの距離 > (⾳源の距離減衰の最⼤値 + 任意のマージン)
3Dサウンドかどうかの判定について
  • 以下のサウンドを3Dサウンドとみなします
    • SpawnSoundAtLocationで再生
    • SpawnSoundAttachedで再生
    • PlaySoundForAnimNotifyで再生
    • "Only 2D Sound"プロパティがfalseのAtomComponentから再生
  • 以下のサウンドを2Dサウンドとみなします
    • SpawnSound2Dで再生
    • "Only 2D Sound"プロパティがtrueのAtomComponentから再生

Economic-Tick 機能の有効化手順

(1) プロジェクト設定ウィンドウを開き、CriWareのページを表⽰します

criware_ue4_optimization_economic_tick_project_settings.jpg

(2) "Economic Tick Margin Distance (Unreal Unit)"プロパティを設定します

「⾳源とリスナーの距離 > (⾳源の距離減衰の最⼤値 + "Economic Tick Margin Distance (Unreal Unit)"プロパティの現在値)」のときTick処理の頻度が下がります。

(3) "Economic Tick Frequency (Tick/Second)"プロパティを設定します

⾳源がリスナーから⼗分遠いとき、どの程度の頻度でTick処理を⾏うか指定します。
例えば「15」を指定すると1秒間に15回の頻度でTick処理が⾏われます。

(4) Economic-Tick機能を適用させたいキューアセットのプロパティを編集します

"Enable Economic Tick"にチェックを入れます。
criware_ue4_optimization_economic_tick_cue_asset.jpg

キューごとに異なる設定を行う場合

Economic-Tick機能に関する設定は既にプロジェクト設定ウィンドウで行いましたが、キューごとに異なる設定を行いたい場合は以下のようにします。
"Overrides Economic Tick Settings"にチェックを入れて、 下記項目を設定します。
  • "Economic Tick Distance Margin"
  • "Economic Tick Frequency"

情報の取得

  • UAtomComponent::IsReducingTickFrequency
    • Economic-Tick機能によってTickの頻度が下がっている状態かどうか返します。
  • UAtomComponent::GetEconomicTickDistance
    • 現在このAtomComponentに適用されているEconomic-Tick境界距離を返します。
    • つまり最後に再生したキューの(最大減衰距離 + Economic-Tick用のマージン距離)を返します。
BP, C++共に情報を取得することができます。
criware_ue4_optimization_bp_economic_tick_n_culling.jpg

複数のキューに対する Economic-Tick 機能の一括設定

複数のキューに対してまとめて Economic-Tick 機能の設定を行いたい場合はアセットアクションのプロパティマトリクスによる一括編集が有効です。
プロパティマトリクスを用いた一括編集の手順については「 複数のアセットをまとめて編集する 」をご参照ください。