Economic-Tick

概述

当声源与倾听者之间的距离很遠时,此功能可以通过减少其声源的Tick处理的频率来减轻处理负荷。

处理负荷是否一定下降?

不是。
“远的声源的Tick处理负荷 > 计算所有声源与倾听者之间的距离的处理负荷”时,整体处理负荷将降低,但是相反时,处理负荷则增加。
此功能可以应用在声音播放在远离倾听者的地方频繁进行的场景下。

详细信息

满足以下条件时,将减少Tick处理的频率。
  • 3D音效(不是2D音效)。
  • 声源与倾听者之间的距离>(声源距离衰减的最大值 + 任意的Margin)。
关于是否判定为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功能的Cue Asset的属性

勾选“Enable Economic Tick”。
criware_ue4_optimization_economic_tick_cue_asset.jpg

为每个Cue执行不同设置时

Economic Tick功能有关的设置已经在项目设置窗口中进行。要为各Cue分别进行不同设置时请执行以下操作。 勾选“Override Economic Tick Settings”,设置如下项目:
  • "Economic Tick Distance Margin"
  • "Economic Tick Frequency"

获取信息

  • UAtomComponent::IsReducingTickFrequency
    • 返回是否通过Economic Tick功能減少Tick频率。
  • UAtomComponent::GetEconomicTickDistance
    • 返回当前应用于此AtomComponent的Economic Tick边界距离。
    • 也就是说,将返回最后一次播放的Cue(最大衰减距离 + 用于Economic Tick的Margin距离)。
可以同时获得蓝图和C++的信息。
criware_ue4_optimization_bp_economic_tick_n_culling.jpg

批量设置多个Cue的Economic Tick功能

要对多个Cue批量设置Economic Tick功能时,使用Asset Action的属性Matrix的批量编辑较为有效。
关于如何使用属性Matrix进行批量编辑,请参照 批量编辑多个Asset