I helped design a sound occlusion system to be used on The Walking Dead: Survival Instinct.
Much research and brainstorming was done with our principal programmers and we eventually decided upon a raycast system that tracks the distance between an audio source and listener as well any geometry, its material type and acoustic dampening properties between them – including physics objects and destructibles such as doors that could open, close or be shattered. The values would then be calculated in code and passed to Wwise via RTPC’s which drove EQ’s and attenuation curves in real time.
Below are some high-res screenshots of the system and a short video demonstrating it within Infernal Engine. Click the thumbnails to expand them (each one corresponds to the four different examples presented in the video underneath so you can see a clear still frame of what’s happening).
If you open the first thumbnail, you’ll see the sound occlusion element is in the grey box in front of the Walker’s hands (the other boxes can be ignored). It shows the actor number (1), distance to the player (11.34 ft), percentage of calculated occlusion (0.00% occ) as well as how much of the ‘raw’ (that is, original) sound is subsequently being affected (0.00% raw).
Additionally, both percentages are represented as a fraction (0/8). Since there is no occluding geometry between the walker and player in this screen shot, both percentages are at 0 and the Walker sounds would have no EQ’ing or attenuation applied to them. When there is occlusion, it will also list the material type – glass, wood, steel and so on. You see this in the second and third screenshots where it lists metal and wood, respectively. Although the player sees brick in the second shot, the occluding material is listed as metal because on the other side of the wall is a freezer where the walker is located. This can be seen in the video.
You will also notice the ray casts emitting from the blue bounding box around the walker – their origin points signified by the blue and green dots.
Here is the video demonstrating the occlusion system in-game. You’ll want to set it to 720p or 1080p HD and full-screen to see the debug text clearly.