{"id":2758,"date":"2020-01-28T20:54:05","date_gmt":"2020-01-28T11:54:05","guid":{"rendered":"https:\/\/blog.criware.com\/?p=2758"},"modified":"2020-01-30T14:07:17","modified_gmt":"2020-01-30T05:07:17","slug":"3d-2d-audio-transitions","status":"publish","type":"post","link":"https:\/\/blog.criware.com\/index.php\/2020\/01\/28\/3d-2d-audio-transitions\/","title":{"rendered":"3D -> 2D Audio Transitions"},"content":{"rendered":"<h2 style=\"font-size: 150%; font-weight: bold; margin-top: 40px;\">Introduction<\/h2>\n<p>In previous blogs, we\u2019ve looked at setting up 3D audio systems to deal with topics such as spatialisation and occlusion. In this month\u2019s blog, we will look at transitioning a 3D spatialised sound to 2D. This can serve many purposes, such as moving a spatialised character\u2019s voice from being in the player\u2019s world to being in the player\u2019s headset or mimicking the effect of a sound losing its directionality in a big reverberant field.<\/p>\n<div style=\"max-width: 800px; margin: 0 auto; margin-bottom: 20px;\">\n<div style=\"width: 800px;\" class=\"wp-video\"><video class=\"wp-video-shortcode\" id=\"video-2758-1\" width=\"800\" height=\"450\" preload=\"metadata\" controls=\"controls\"><source type=\"video\/mp4\" src=\"https:\/\/blog.criware.com\/wp-content\/uploads\/2020\/01\/2020_01_3D2D.mp4?_=1\" \/><a href=\"https:\/\/blog.criware.com\/wp-content\/uploads\/2020\/01\/2020_01_3D2D.mp4\">https:\/\/blog.criware.com\/wp-content\/uploads\/2020\/01\/2020_01_3D2D.mp4<\/a><\/video><\/div>\n<\/div>\n<h2 style=\"font-size: 150%; font-weight: bold; margin-top: 40px;\">3D to 2D Transition<\/h2>\n<p>To get started, we simply need some dialogue audio to test with. The basic setup is as follows:<\/p>\n<ul>\n<li>Create a Polyphonic Cue and name it \u201cCue_TestDialogue<\/li>\n<li>In Cue_TestDialogue\n<ul>\n<li>Create 2 new Tracks\n<ul>\n<li>Name them \u201cTrack_2D\u201d and \u201cTrack_3D\u201d<\/li>\n<\/ul>\n<\/li>\n<li>Import the same test dialogue Material to both Tracks\n<ul>\n<li>Name the copies \u201cMaterial_2D\u201d and \u201cMaterial_3D\u201d accordingly<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p>Next up, we need to enable the relevant 3D audio processing and create the necessary AISAC\u2019s to control our sound playback.<\/p>\n<ul>\n<li>Rename AisacControl_00 to \u201cAisacControl_Distance\u201d<\/li>\n<li>On Track 2D and Track 3D\n<ul>\n<li>Create an AISAC for each\n<ul>\n<li>Name = \u201cAisac_2D\u201d and \u201cAisac_3D\u201d accordingly<\/li>\n<li>Control = AisacControl_Distance<\/li>\n<li>Graph Type = <em>Volume<\/em><\/li>\n<\/ul>\n<\/li>\n<li>Finesse the curves so that they transition smoothly<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p><img loading=\"lazy\" decoding=\"async\" style=\"margin: 0 auto; display: block;\" class=\"alignnone size-full wp-image-2763\" src=\"https:\/\/blog.criware.com\/wp-content\/uploads\/2020\/01\/25-1.png\" alt=\"25-1\" width=\"1160\" height=\"359\" srcset=\"https:\/\/blog.criware.com\/wp-content\/uploads\/2020\/01\/25-1.png 1160w, https:\/\/blog.criware.com\/wp-content\/uploads\/2020\/01\/25-1-300x93.png 300w, https:\/\/blog.criware.com\/wp-content\/uploads\/2020\/01\/25-1-768x238.png 768w, https:\/\/blog.criware.com\/wp-content\/uploads\/2020\/01\/25-1-1024x317.png 1024w\" sizes=\"auto, (max-width: 1160px) 100vw, 1160px\" \/><\/p>\n<ul>\n<li>In Cue_TestDialogue\n<ul>\n<li>Select the 3D Positioning tab in the Inspector\n<ul>\n<li>Set AISAC Control \u2192 Distance to AisacControl_Distance<\/li>\n<li>Set Attenuation Distance\n<ul>\n<li>Min = \u201c20\u201d<\/li>\n<li>Max = \u201c100\u201d<\/li>\n<\/ul>\n<\/li>\n<li>On Material_3D, set Pan Type to <em>3D Positioning<\/em><\/li>\n<li>On Material_2D, ensure Pan Type is set to Pan [5.1]<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p><img loading=\"lazy\" decoding=\"async\" style=\"margin: 0 auto; display: block;\" class=\"alignnone size-full wp-image-2764\" src=\"https:\/\/blog.criware.com\/wp-content\/uploads\/2020\/01\/25-2.png\" alt=\"25-2\" width=\"715\" height=\"402\" srcset=\"https:\/\/blog.criware.com\/wp-content\/uploads\/2020\/01\/25-2.png 715w, https:\/\/blog.criware.com\/wp-content\/uploads\/2020\/01\/25-2-300x169.png 300w\" sizes=\"auto, (max-width: 715px) 100vw, 715px\" \/><\/p>\n<p>With this set up as-is, we can already have some impressive dynamic behaviour. And thanks to the power of the Session Window, we can test the finer details of our system directly within Atom Craft.<\/p>\n<p>Of course, the setup outlined above does not achieve our initial aims, so let\u2019s look at how we can expand this system by employing some effects processing.<\/p>\n<h2 style=\"font-size: 150%; font-weight: bold; margin-top: 40px;\">Filtering and DSP Bus<\/h2>\n<p>For our test case, let\u2019s assume we are working on an FPS with NPC characters that relay information to the player. It is going to be a fast-paced game, and so the player will likely not want to stand around listening to NPC\u2019s for very long. By moving the sound from 3D space to 2D, and applying some DSP, we can create the effect of the sound seemingly coming from the player\u2019s communication device. This will allow the player to explore without missing out on key information.<\/p>\n<ul>\n<li>In DspBusSetting_0, create 2 new DSP buses\n<ul>\n<li>Name them \u201cBus_2DEffects\u201d and \u201cBus_3DEffects\u201d<\/li>\n<li>Set both to send full signal to MasterOut<\/li>\n<\/ul>\n<\/li>\n<li>In BusMap_Default,\n<ul>\n<li>Set DspBusName1 to Bus_2DEffects<\/li>\n<li>Set DspBusName2 to Bus_3DEffects<\/li>\n<\/ul>\n<\/li>\n<li>In Cue_TestDialogue\n<ul>\n<li>Set BusSend0 to \u201c0.00\u201d<\/li>\n<li>Then in Track_2D\n<ul>\n<li>Enable BusSend1<\/li>\n<\/ul>\n<\/li>\n<li>And finally, in Track_3D\n<ul>\n<li>Enable BusSend2<\/li>\n<\/ul>\n<\/li>\n<li>In Bus_2DEffects, add some effects such a Bandpass, Distortion, and Limiter<\/li>\n<li>Tweak the effects\u2019 parameters to taste<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p><img loading=\"lazy\" decoding=\"async\" style=\"margin: 0 auto; display: block;\" class=\"alignnone size-full wp-image-2766\" src=\"https:\/\/blog.criware.com\/wp-content\/uploads\/2020\/01\/25-3-1.png\" alt=\"25-3\" width=\"859\" height=\"449\" srcset=\"https:\/\/blog.criware.com\/wp-content\/uploads\/2020\/01\/25-3-1.png 859w, https:\/\/blog.criware.com\/wp-content\/uploads\/2020\/01\/25-3-1-300x157.png 300w, https:\/\/blog.criware.com\/wp-content\/uploads\/2020\/01\/25-3-1-768x401.png 768w, https:\/\/blog.criware.com\/wp-content\/uploads\/2020\/01\/25-3-1-390x205.png 390w\" sizes=\"auto, (max-width: 859px) 100vw, 859px\" \/><\/p>\n<p>Heavy use of bandpass filtering and a touch of distortion can create the impression of a communication device, such as a mobile phone. How heavily we want to lean into these sorts of effects depends on the feel of the game we are designing for. In the example above, Chorus was also used for a more sci-fi element to the mix.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Introduction In previous blogs, we\u2019ve looked at setting up 3D audio systems to deal with topics such as spatialisation and<\/p>\n","protected":false},"author":2,"featured_media":2761,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"colormag_page_container_layout":"default_layout","colormag_page_sidebar_layout":"default_layout","footnotes":""},"categories":[5,7],"tags":[],"class_list":["post-2758","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-adx","category-tutorials"],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/blog.criware.com\/index.php\/wp-json\/wp\/v2\/posts\/2758","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.criware.com\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.criware.com\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.criware.com\/index.php\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.criware.com\/index.php\/wp-json\/wp\/v2\/comments?post=2758"}],"version-history":[{"count":9,"href":"https:\/\/blog.criware.com\/index.php\/wp-json\/wp\/v2\/posts\/2758\/revisions"}],"predecessor-version":[{"id":2773,"href":"https:\/\/blog.criware.com\/index.php\/wp-json\/wp\/v2\/posts\/2758\/revisions\/2773"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/blog.criware.com\/index.php\/wp-json\/wp\/v2\/media\/2761"}],"wp:attachment":[{"href":"https:\/\/blog.criware.com\/index.php\/wp-json\/wp\/v2\/media?parent=2758"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.criware.com\/index.php\/wp-json\/wp\/v2\/categories?post=2758"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.criware.com\/index.php\/wp-json\/wp\/v2\/tags?post=2758"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}