以减轻宽阔场地上的音频处理负荷为目的
- 在开发使用宽阔场地的游戏时,很重要的一点是如何降低场地上的角色和对象的处理负荷。
在音频的播放处理方面,也同样需要减轻处理负荷。
很多情况下,处理宽阔场地上的音频时,会通过衰减效果,按照距离缓缓降低音频的音量。该处理在衰减区域外的音频为静音状态,即使进行播放,也需要考虑到Player(倾听者)进入区域内的情况,时常对音频播放进行控制。
然而,在同时播放成百上千个声音的环境中,如对所有音频播放进行处理,会产生无法忽略的巨大处理负荷。
- 因此,作为减轻处理负荷的一种方法,如已事先决定了Player的行动范围和移动速度等,则可设置为在距离衰减区域的外侧不进行音频播放控制,这样一来可避免不必要的音频播放,就能减轻处理负荷。
发声距离Culling功能
- CRIWARE虚幻引擎4插件在播放音频时,通过创建Component,或关联UE4上的Actor等位置信息等来进行播放。
该处理在成百上千的音频同时在场地各处被触发时,也会产生不可忽略的巨大处理负荷。
在CRIWARE UE4插件的发声距离Culling功能是指当3D音效与倾听者之间的距离较远时,可以忽略发声触发器来减少处理负荷的功能。
规格
- 满足以下条件将取消音频播放。
- 3D音效(不是2D音效)。
- 为一次性的音频(不是循环音频)。
- 声源与倾听者之间的距离>(声源距离衰减的最大值 + 任意的Margin)。
- 判断是否为3D音效
- 以下音頻被视为是3D音效
- 在SpawnSoundAtLocation中播放
- 在SpawnSoundAttached中播放
- 在PlaySoundForAnimNotify中播放
- 从"Only 2D Sound"属性为false的AtomComponent中播放
- 以下音頻被视为是2D音效
- 在SpawnSound2D中播放
- 从"Only 2D Sound"属性为true的AtomComponent中播放
有效化距离Culling功能的步骤
(1) 打开项目设置画面
- 打开项目设置窗口,显示CriWare页面。
-
(2) 更改CriWare插件设置
- 设置Culling Margin Distance (Unreal Unit)。
“声源与倾听者之间的距离>(声源距离衰减的最大值 + "Culling Margin Distance")”时,將执行触发Culling。
(3) 打开Atom Cue Asset设置画面
- 用Asset浏览器打开AtomCue。
-
(4) 更改Atom Cue Asset设置
- 勾选“Enable Distance Culling”。
为每个Cue进行不同设置时
- Distance Culling功能设置是在项目设置窗口执行;而要为每个Cue进行不同设置时,请添加以下设置。
- 勾选"Override Cull Settings"
- 设置"Cull Distance Margin"
确认声源距离衰减的最大值
- 需要确认声源距离衰减的最大值时,请参照下图数值。
-
获取信息
- UAtomComponent::GetCullDistance()
- 返回当前应用于此AtomComponent的Culling边界距离。
- 也就是说,将返回最后一次播放的Cue(最大衰减距离 + Culling的Margin距离)。
- 可以同时获得蓝图和C++的信息。
-
批量设置多个Cue的触发Culling
- 要批量对多个Cue执行触发Culling设置时,使用Asset Action的属性Matrix的批量编辑较为有效。
关于如何使用属性Matrix作批量编辑,请参照 批量编辑多个Asset 。