Basic occlusion is exposed in UAkComponent::SetOcclusion()
. To enable occlusion on an Actor, use the Set Occlusion Refresh Interval function in the Blueprint Editor. A version for a UAkComponent is also available. If the refresh interval is set to 0, the occlusion check will never be performed.
Determining whether a listener is occluded from a source is done with a simple line-of-sight check, using the line trace channel set in the AkComponent's properties (OcclusionCollisionChannel
). If the line of sight is blocked, the occlusion level calculation is started. This calculation maps the hit point on the obstacle to its bounding box, creating twelve points around the obstacle. To see if these "secondary paths" are also blocked, other line-of-sight tests are done. The occlusion sent to the SoundEngine is modulated from the number of "secondary paths" that are blocked.
A temporal fade method is also added to allow smooth transition between occlusion levels. To change the fade speed, change the OCCLUSION_FADE_RATE
constant.
Generated by
1.6.3