{"id":449,"date":"2026-03-19T00:48:01","date_gmt":"2026-03-19T00:48:01","guid":{"rendered":"https:\/\/sites.wsagames.com\/jz15n24\/?p=449"},"modified":"2026-05-14T12:29:14","modified_gmt":"2026-05-14T12:29:14","slug":"spatial-audio-perception-implementation-in-game-design","status":"publish","type":"post","link":"https:\/\/sites.wsagames.com\/jz15n24\/2026\/03\/19\/spatial-audio-perception-implementation-in-game-design\/","title":{"rendered":"Spatial Audio Perception &amp; Implementation Learning"},"content":{"rendered":"\n<h2 class=\"wp-block-heading\"><strong>Distance Attenuation<\/strong><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">First, the most basic thing: enable \u201cspatial (3D) sound\u201d in the game, and make the volume decrease as the distance increases.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img fetchpriority=\"high\" decoding=\"async\" width=\"378\" height=\"841\" src=\"https:\/\/sites.wsagames.com\/jz15n24\/wp-content\/uploads\/sites\/70\/2026\/03\/image-13.png\" alt=\"\" class=\"wp-image-450\" srcset=\"https:\/\/sites.wsagames.com\/jz15n24\/wp-content\/uploads\/sites\/70\/2026\/03\/image-13.png 378w, https:\/\/sites.wsagames.com\/jz15n24\/wp-content\/uploads\/sites\/70\/2026\/03\/image-13-135x300.png 135w\" sizes=\"(max-width: 378px) 100vw, 378px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" width=\"1024\" height=\"538\" src=\"https:\/\/sites.wsagames.com\/jz15n24\/wp-content\/uploads\/sites\/70\/2026\/03\/image-18-1024x538.png\" alt=\"\" class=\"wp-image-455\" srcset=\"https:\/\/sites.wsagames.com\/jz15n24\/wp-content\/uploads\/sites\/70\/2026\/03\/image-18-1024x538.png 1024w, https:\/\/sites.wsagames.com\/jz15n24\/wp-content\/uploads\/sites\/70\/2026\/03\/image-18-300x158.png 300w, https:\/\/sites.wsagames.com\/jz15n24\/wp-content\/uploads\/sites\/70\/2026\/03\/image-18-768x404.png 768w, https:\/\/sites.wsagames.com\/jz15n24\/wp-content\/uploads\/sites\/70\/2026\/03\/image-18.png 1185w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" width=\"650\" height=\"346\" src=\"https:\/\/sites.wsagames.com\/jz15n24\/wp-content\/uploads\/sites\/70\/2026\/03\/image-14.png\" alt=\"\" class=\"wp-image-451\" srcset=\"https:\/\/sites.wsagames.com\/jz15n24\/wp-content\/uploads\/sites\/70\/2026\/03\/image-14.png 650w, https:\/\/sites.wsagames.com\/jz15n24\/wp-content\/uploads\/sites\/70\/2026\/03\/image-14-300x160.png 300w\" sizes=\"(max-width: 650px) 100vw, 650px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Adjust the curve so that the attenuation feels closer to real life.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">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.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">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.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">This can control whether the player \u201cnotices a sound or not.\u201d<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">For example:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Unimportant sounds (campfire) \u2192 faster attenuation \u2192 avoid distraction<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Important sounds (enemy\/footsteps) \u2192 slower attenuation \u2192 easier to hear<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Basically, attenuation is a design tool, not just a physical effect \ud83e\udd14<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Distance Affecting Timbre (Filter)<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">When the distance between the player and the sound source changes, what we hear doesn\u2019t just change in volume.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">As distance increases, the sound not only becomes quieter but also \u201cmuddier,\u201d because high frequencies are more easily absorbed by air, while low frequencies travel further. (Like when you\u2019re next door to a livehouse: you might not hear the song clearly, but you can easily hear the bass \u201cdum-dum.\u201d)<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">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\u2019t just make a sound quieter, it also makes it blurrier.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"609\" src=\"https:\/\/sites.wsagames.com\/jz15n24\/wp-content\/uploads\/sites\/70\/2026\/03\/image-21-1024x609.png\" alt=\"\" class=\"wp-image-458\" srcset=\"https:\/\/sites.wsagames.com\/jz15n24\/wp-content\/uploads\/sites\/70\/2026\/03\/image-21-1024x609.png 1024w, https:\/\/sites.wsagames.com\/jz15n24\/wp-content\/uploads\/sites\/70\/2026\/03\/image-21-300x179.png 300w, https:\/\/sites.wsagames.com\/jz15n24\/wp-content\/uploads\/sites\/70\/2026\/03\/image-21-768x457.png 768w, https:\/\/sites.wsagames.com\/jz15n24\/wp-content\/uploads\/sites\/70\/2026\/03\/image-21.png 1435w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Because with distance, what we hear doesn\u2019t only change in volume. Different frequency ranges have different penetration abilities, so we can also appropriately add low-cut and high-cut.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Spread<\/strong><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">If we don\u2019t add spread, the sound will feel very \u201cpoint-like\u201d (sharp), and when moving left and right, the direction change will be very extreme.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">But in reality, within a certain range, sound doesn\u2019t come strictly from a single point\u2014it has some diffusion. So we should increase spread appropriately to make it more natural and avoid the sound jumping crazily from left to right.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Of course, sometimes we can choose not to add it. For example, I think collectible sounds in Resident Evil 9 don\u2019t need spread, since they\u2019re hidden, you can locate them by sound direction. Similar puzzle designs can also use this as a clue.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"720\" height=\"411\" src=\"https:\/\/sites.wsagames.com\/jz15n24\/wp-content\/uploads\/sites\/70\/2026\/03\/image-20.png\" alt=\"\" class=\"wp-image-457\" srcset=\"https:\/\/sites.wsagames.com\/jz15n24\/wp-content\/uploads\/sites\/70\/2026\/03\/image-20.png 720w, https:\/\/sites.wsagames.com\/jz15n24\/wp-content\/uploads\/sites\/70\/2026\/03\/image-20-300x171.png 300w\" sizes=\"(max-width: 720px) 100vw, 720px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"680\" height=\"651\" src=\"https:\/\/sites.wsagames.com\/jz15n24\/wp-content\/uploads\/sites\/70\/2026\/03\/image-15.png\" alt=\"\" class=\"wp-image-452\" srcset=\"https:\/\/sites.wsagames.com\/jz15n24\/wp-content\/uploads\/sites\/70\/2026\/03\/image-15.png 680w, https:\/\/sites.wsagames.com\/jz15n24\/wp-content\/uploads\/sites\/70\/2026\/03\/image-15-300x287.png 300w\" sizes=\"(max-width: 680px) 100vw, 680px\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>ShareSet \/ Property Container<\/strong><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">When a group of sounds (like footsteps or ambience) needs consistent rules, don\u2019t tweak them one by one.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">We can create a property container<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Use a ShareSet<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">So that a whole category of sounds uses the same settings<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">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.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Game audio is very different from film audio. It\u2019s not just \u201cplaying sound,\u201d but using distance \/ frequency \/ space \/ system management to control what the player hears, what they pay attention to, and what they ignore.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"743\" height=\"423\" src=\"https:\/\/sites.wsagames.com\/jz15n24\/wp-content\/uploads\/sites\/70\/2026\/03\/image-16.png\" alt=\"\" class=\"wp-image-453\" srcset=\"https:\/\/sites.wsagames.com\/jz15n24\/wp-content\/uploads\/sites\/70\/2026\/03\/image-16.png 743w, https:\/\/sites.wsagames.com\/jz15n24\/wp-content\/uploads\/sites\/70\/2026\/03\/image-16-300x171.png 300w\" sizes=\"(max-width: 743px) 100vw, 743px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"542\" height=\"841\" src=\"https:\/\/sites.wsagames.com\/jz15n24\/wp-content\/uploads\/sites\/70\/2026\/03\/image-19.png\" alt=\"\" class=\"wp-image-456\" srcset=\"https:\/\/sites.wsagames.com\/jz15n24\/wp-content\/uploads\/sites\/70\/2026\/03\/image-19.png 542w, https:\/\/sites.wsagames.com\/jz15n24\/wp-content\/uploads\/sites\/70\/2026\/03\/image-19-193x300.png 193w\" sizes=\"(max-width: 542px) 100vw, 542px\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Listener<\/strong><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Wwise places the listener on the camera by default, but the camera is not always equal to the \u201cplayer\u2019s ears\u201d (for example, in our current project <em>The Verdant Trail<\/em>).<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">For fixed camera or third-person views, using the camera directly may not be appropriate.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">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).<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"629\" height=\"319\" src=\"https:\/\/sites.wsagames.com\/jz15n24\/wp-content\/uploads\/sites\/70\/2026\/03\/image-17.png\" alt=\"\" class=\"wp-image-454\" srcset=\"https:\/\/sites.wsagames.com\/jz15n24\/wp-content\/uploads\/sites\/70\/2026\/03\/image-17.png 629w, https:\/\/sites.wsagames.com\/jz15n24\/wp-content\/uploads\/sites\/70\/2026\/03\/image-17-300x152.png 300w\" sizes=\"(max-width: 629px) 100vw, 629px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">This script is essentially creating an \u201cideal ear\u201d:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The ear is on the player\u2019s body (correct position), but the listening direction matches the camera (comfortable perception).<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Because our hearing is related to orientation, the listener\u2019s rotation affects spatial perception and weighting of sounds.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">In 3D games, we usually let the \u201cears rotate with the camera,\u201d so the world sounds natural to the player.<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"wp-block-paragraph\"><code>transform.rotation = mainCam.transform.rotation;<\/code><\/p>\n<\/blockquote>\n\n\n\n<p class=\"wp-block-paragraph\">This line ensures that orientation and hearing direction are aligned.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">But since our game uses a fixed camera, it\u2019s actually\u2026 not that useful, because the camera direction is always fixed. However, in a first-person game, this would be very important.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Distance Attenuation First, the most basic thing: enable \u201cspatial (3D) sound\u201d 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 [&hellip;]<\/p>\n","protected":false},"author":61,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[26],"tags":[],"class_list":["post-449","post","type-post","status-publish","format-standard","hentry","category-weekly-development"],"_links":{"self":[{"href":"https:\/\/sites.wsagames.com\/jz15n24\/wp-json\/wp\/v2\/posts\/449","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/sites.wsagames.com\/jz15n24\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/sites.wsagames.com\/jz15n24\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/sites.wsagames.com\/jz15n24\/wp-json\/wp\/v2\/users\/61"}],"replies":[{"embeddable":true,"href":"https:\/\/sites.wsagames.com\/jz15n24\/wp-json\/wp\/v2\/comments?post=449"}],"version-history":[{"count":2,"href":"https:\/\/sites.wsagames.com\/jz15n24\/wp-json\/wp\/v2\/posts\/449\/revisions"}],"predecessor-version":[{"id":649,"href":"https:\/\/sites.wsagames.com\/jz15n24\/wp-json\/wp\/v2\/posts\/449\/revisions\/649"}],"wp:attachment":[{"href":"https:\/\/sites.wsagames.com\/jz15n24\/wp-json\/wp\/v2\/media?parent=449"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/sites.wsagames.com\/jz15n24\/wp-json\/wp\/v2\/categories?post=449"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/sites.wsagames.com\/jz15n24\/wp-json\/wp\/v2\/tags?post=449"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}