Distance Attenuation
First, the most basic thing: enable “spatial (3D) sound” in the game, and make the volume decrease as the distance increases.



Adjust the curve so that the attenuation feels closer to real life.
In practice, this can also be used to control how much a player hears certain sounds. For example, if a campfire sound is not very important, we can make it attenuate faster to prevent it from distracting the player.
In reality, sound attenuation is non-linear, so we need to manually adjust the curve, make the change more noticeable at close range and more gradual at long range.
This can control whether the player “notices a sound or not.”
For example:
Unimportant sounds (campfire) → faster attenuation → avoid distraction
Important sounds (enemy/footsteps) → slower attenuation → easier to hear
Basically, attenuation is a design tool, not just a physical effect 🤔
Distance Affecting Timbre (Filter)
When the distance between the player and the sound source changes, what we hear doesn’t just change in volume.
As distance increases, the sound not only becomes quieter but also “muddier,” because high frequencies are more easily absorbed by air, while low frequencies travel further. (Like when you’re next door to a livehouse: you might not hear the song clearly, but you can easily hear the bass “dum-dum.”)
In this case, we can use low-pass / high-pass filters to make the sound change dynamically with distance. For example, distant sounds are more muffled, while nearby sounds are clearer. So distance doesn’t just make a sound quieter, it also makes it blurrier.

Because with distance, what we hear doesn’t only change in volume. Different frequency ranges have different penetration abilities, so we can also appropriately add low-cut and high-cut.
Spread
If we don’t add spread, the sound will feel very “point-like” (sharp), and when moving left and right, the direction change will be very extreme.
But in reality, within a certain range, sound doesn’t come strictly from a single point—it has some diffusion. So we should increase spread appropriately to make it more natural and avoid the sound jumping crazily from left to right.
Of course, sometimes we can choose not to add it. For example, I think collectible sounds in Resident Evil 9 don’t need spread, since they’re hidden, you can locate them by sound direction. Similar puzzle designs can also use this as a clue.


ShareSet / Property Container
When a group of sounds (like footsteps or ambience) needs consistent rules, don’t tweak them one by one.
We can create a property container
Use a ShareSet
So that a whole category of sounds uses the same settings
This way, we can keep a consistent style, update everything at once, and avoid chaos. If we need individual adjustments, we can still tweak them separately.
Game audio is very different from film audio. It’s not just “playing sound,” but using distance / frequency / space / system management to control what the player hears, what they pay attention to, and what they ignore.


Listener
Wwise places the listener on the camera by default, but the camera is not always equal to the “player’s ears” (for example, in our current project The Verdant Trail).
For fixed camera or third-person views, using the camera directly may not be appropriate.
So we need to disable the listener on the camera rig, create an empty object, and attach the listener to it, so it follows the character (or the desired listening position).

This script is essentially creating an “ideal ear”:
The ear is on the player’s body (correct position), but the listening direction matches the camera (comfortable perception).
Because our hearing is related to orientation, the listener’s rotation affects spatial perception and weighting of sounds.
In 3D games, we usually let the “ears rotate with the camera,” so the world sounds natural to the player.
transform.rotation = mainCam.transform.rotation;
This line ensures that orientation and hearing direction are aligned.
But since our game uses a fixed camera, it’s actually… not that useful, because the camera direction is always fixed. However, in a first-person game, this would be very important.
Leave a Reply