{"id":4344,"date":"2023-05-18T10:32:47","date_gmt":"2023-05-18T01:32:47","guid":{"rendered":"https:\/\/blog.criware.com\/?p=4344"},"modified":"2024-05-21T11:26:38","modified_gmt":"2024-05-21T02:26:38","slug":"river-implementation","status":"publish","type":"post","link":"https:\/\/blog.criware.com\/index.php\/2023\/05\/18\/river-implementation\/","title":{"rendered":"River Implementation"},"content":{"rendered":"<p>Large areas that emit sound, such as rivers or traffic roads, can be challenging to implement. Based on the proximity of the player, various levels of details are needed, from general ambiences to specific sound events, and the areas can have very irregular shapes, making it tricky to decide where to place emitters. However, thanks to Atom Craft and its Unreal Engine Plugin, this can be done easily!<\/p>\n<div class=\"wp-video\" style=\"width: 800px; display: block; margin: 40px auto;\">\n<div style=\"width: 800px;\" class=\"wp-video\"><video class=\"wp-video-shortcode\" id=\"video-4344-1\" width=\"800\" height=\"450\" preload=\"metadata\" controls=\"controls\"><source type=\"video\/mp4\" src=\"https:\/\/blog.criware.com\/wp-content\/uploads\/2023\/05\/Video_River.mp4?_=1\" \/><a href=\"https:\/\/blog.criware.com\/wp-content\/uploads\/2023\/05\/Video_River.mp4\">https:\/\/blog.criware.com\/wp-content\/uploads\/2023\/05\/Video_River.mp4<\/a><\/video><\/div>\n<\/div>\n<h2 style=\"font-size: 150%; font-weight: bold; margin-top: 40px;\">Atom Craft<\/h2>\n<p>First, let\u2019s create the audio assets for the river:<\/p>\n<ul>\n<li>Prepare three stereo loops that will correspond to different distances (close, medium, far). This will allow us to have a more natural roll-off when moving away from the river.<\/li>\n<li>Import the assets in AtomCraft\u2019s Materials folder. Set the <em>Override loop information Flag<\/em> to <em>True<\/em> for the 3 Materials.<\/li>\n<\/ul>\n<p>Now, add the Cue for the River:<\/p>\n<ul>\n<li>Create a Polyphonic Cue.<\/li>\n<li>Drag and drop the three River Materials onto the Cue, creating three new tracks, one for each distance.<\/li>\n<li>Select the Cue and change its <em>Pan Type<\/em> to <em>3D Positioning<\/em>.<\/li>\n<li>Set the <em>3D Positioning Inside and Outside Angle <\/em>properties to 0.65 and 1, respectively.<\/li>\n<li><em>Min Attenuation Distance<\/em> should be set to 3.00 and <em>Max Attenuation Distanc<\/em>e to 50.00.<\/li>\n<li>Finally, select the three Waveform Regions in the Cue and set the <em>Fixed Pan<\/em> property to <em>True<\/em>.<\/li>\n<\/ul>\n<p style=\"text-align:center;\">\n<img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/blog.criware.com\/wp-content\/uploads\/2023\/05\/01-Cue.png\" alt=\"01 Cue\" width=\"1272\" height=\"697\" class=\"alignnone size-full wp-image-4356\" srcset=\"https:\/\/blog.criware.com\/wp-content\/uploads\/2023\/05\/01-Cue.png 1272w, https:\/\/blog.criware.com\/wp-content\/uploads\/2023\/05\/01-Cue-300x164.png 300w, https:\/\/blog.criware.com\/wp-content\/uploads\/2023\/05\/01-Cue-768x421.png 768w, https:\/\/blog.criware.com\/wp-content\/uploads\/2023\/05\/01-Cue-1024x561.png 1024w\" sizes=\"auto, (max-width: 1272px) 100vw, 1272px\" \/>\n<\/p>\n<p>An AISAC will be used to crossfade between the three sounds as the distance of the listener from the river changes:<\/p>\n<ul>\n<li>Create an AISAC named <em>3DDistance,<\/em> and assign to control the Distance of the Cue (in the <em>3D<\/em> <em>Positioning<\/em> properties).<\/li>\n<li>\nFor each track, create a Volume graph controlled by the 3DDistance AISAC, effectively designing a crossfade from the close to far distances.<\/li>\n<\/ul>\n<p style=\"text-align:center;\">\n<img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/blog.criware.com\/wp-content\/uploads\/2023\/05\/02-AISAC-Tracks.png\" alt=\"02 AISAC Tracks\" width=\"922\" height=\"402\" class=\"alignnone size-full wp-image-4357\" srcset=\"https:\/\/blog.criware.com\/wp-content\/uploads\/2023\/05\/02-AISAC-Tracks.png 922w, https:\/\/blog.criware.com\/wp-content\/uploads\/2023\/05\/02-AISAC-Tracks-300x131.png 300w, https:\/\/blog.criware.com\/wp-content\/uploads\/2023\/05\/02-AISAC-Tracks-768x335.png 768w\" sizes=\"auto, (max-width: 922px) 100vw, 922px\" \/>\n<\/p>\n<p>The main attenuation will be done at the Cue level:<\/p>\n<ul>\n<li>Create new graphs for the Volume and the Bandpass \u2013 Cutoff High parameters, both with a fade-out curve.<\/li>\n<li>Finally create a Pan \u2013 Spread graph going from 0.9 to 0.2. This will implement a more natural panning as the listener come closer to the river.<\/li>\n<\/ul>\n<p style=\"text-align:center;\">\n<img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/blog.criware.com\/wp-content\/uploads\/2023\/05\/03-AISAC-Cue.png\" alt=\"03 AISAC Cue\" width=\"922\" height=\"402\" class=\"alignnone size-full wp-image-4358\" srcset=\"https:\/\/blog.criware.com\/wp-content\/uploads\/2023\/05\/03-AISAC-Cue.png 922w, https:\/\/blog.criware.com\/wp-content\/uploads\/2023\/05\/03-AISAC-Cue-300x131.png 300w, https:\/\/blog.criware.com\/wp-content\/uploads\/2023\/05\/03-AISAC-Cue-768x335.png 768w\" sizes=\"auto, (max-width: 922px) 100vw, 922px\" \/>\n<\/p>\n<p>Now the Atom CueSheet Binaries can be built. Once it is done, switch to Unreal, and drag and drop the .acf and .acb files to generate the corresponding Unreal Assets, including the River Cue.<\/p>\n<h2 style=\"font-size: 150%; font-weight: bold; margin-top: 40px;\">Unreal Engine<\/h2>\n<p>We designed a simple map that includes a flowing river. The first step is to create a volume that will delimit where the sound of the river comes from. Fortunately, the Criware Unreal Plugins provides a dedicated class for this purpose:<\/p>\n<ul>\n<li>In the Place Actors browser, search for <b>Atom Area Sound Volume<\/b>.<\/li>\n<li>Drag and drop this class directly onto the view port. It will create a special Brush object that can be moved and extended to match the length and the position of the river.<\/li>\n<\/ul>\n<p style=\"text-align:center;\">\n<img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/blog.criware.com\/wp-content\/uploads\/2023\/05\/04-Atom-Area-Sound-Volume.png\" alt=\"04 Atom Area Sound Volume\" width=\"1292\" height=\"666\" class=\"alignnone size-full wp-image-4359\" srcset=\"https:\/\/blog.criware.com\/wp-content\/uploads\/2023\/05\/04-Atom-Area-Sound-Volume.png 1292w, https:\/\/blog.criware.com\/wp-content\/uploads\/2023\/05\/04-Atom-Area-Sound-Volume-300x155.png 300w, https:\/\/blog.criware.com\/wp-content\/uploads\/2023\/05\/04-Atom-Area-Sound-Volume-768x396.png 768w, https:\/\/blog.criware.com\/wp-content\/uploads\/2023\/05\/04-Atom-Area-Sound-Volume-1024x528.png 1024w\" sizes=\"auto, (max-width: 1292px) 100vw, 1292px\" \/>\n<\/p>\n<p>The Area Sound Volume calculates the shortest distance between the boundary of the Brush object &#8211; representing the river shape &#8211; and the listener&#8217;s coordinates. If the listener moves while outside the Brush object, the sound source will follow it along the shape of the river. The whole length of the river will be considered for the 3D positioning, as you can see in the introduction video.<\/p>\n<p>All that remains to do to achieve this is to assign our Cue:<\/p>\n<ul>\n<li>In the Content Browser, double click on the Cue to open its settings window.<\/li>\n<li>\nEnable the <em>Use Area Sound Volume<\/em> property.<\/li>\n<\/ul>\n<p style=\"text-align:center;\">\n<img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/blog.criware.com\/wp-content\/uploads\/2023\/05\/05-Cue-settings-UE.png\" alt=\"05 Cue settings UE\" width=\"964\" height=\"618\" class=\"alignnone size-full wp-image-4360\" srcset=\"https:\/\/blog.criware.com\/wp-content\/uploads\/2023\/05\/05-Cue-settings-UE.png 964w, https:\/\/blog.criware.com\/wp-content\/uploads\/2023\/05\/05-Cue-settings-UE-300x192.png 300w, https:\/\/blog.criware.com\/wp-content\/uploads\/2023\/05\/05-Cue-settings-UE-768x492.png 768w\" sizes=\"auto, (max-width: 964px) 100vw, 964px\" \/>\n<\/p>\n<ul>\n<li>Then, in the <em>World Outliner,<\/em> select the Atom Area Sound Volume to show its <em>details panel<\/em>, and in the <em>Sound Atom Cue<\/em> section, add a new <em>Sound,<\/em> and assign the River Cue.<\/li>\n<\/ul>\n<p style=\"text-align:center;\">\n<img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/blog.criware.com\/wp-content\/uploads\/2023\/05\/06-AtomAreaSoundVolume-details.png\" alt=\"06 AtomAreaSoundVolume details\" width=\"630\" height=\"453\" class=\"alignnone size-full wp-image-4361\" srcset=\"https:\/\/blog.criware.com\/wp-content\/uploads\/2023\/05\/06-AtomAreaSoundVolume-details.png 630w, https:\/\/blog.criware.com\/wp-content\/uploads\/2023\/05\/06-AtomAreaSoundVolume-details-300x216.png 300w\" sizes=\"auto, (max-width: 630px) 100vw, 630px\" \/>\n<\/p>\n<p>&nbsp;<\/p>\n<p>When playing the level, you will hear the sound following you as you move along the river!<\/p>\n<p>&nbsp;<\/p>\n<div style=\"max-width: 800px; margin: 0 auto; margin-bottom: 20px; text-align: center;\"><a style=\"display: block; border: 1px solid #ccc; padding: 20px; max-width: 100%; margin: 0 auto;\" href=\"https:\/\/blog.criware.com\/wp-content\/uploads\/2023\/05\/AtomCraft_Project_River.zip\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-1813\" style=\"display: block; margin: 0 auto;\" src=\"https:\/\/blog.criware.com\/wp-content\/uploads\/2018\/06\/zip.png\" alt=\"zip\" width=\"80\" height=\"78\" \/>AtomCraft_Project_River<\/a><\/div>\n","protected":false},"excerpt":{"rendered":"<p>Large areas that emit sound, such as rivers or traffic roads, can be challenging to implement. Based on the proximity<\/p>\n","protected":false},"author":2,"featured_media":5517,"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-4344","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\/4344","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=4344"}],"version-history":[{"count":13,"href":"https:\/\/blog.criware.com\/index.php\/wp-json\/wp\/v2\/posts\/4344\/revisions"}],"predecessor-version":[{"id":5423,"href":"https:\/\/blog.criware.com\/index.php\/wp-json\/wp\/v2\/posts\/4344\/revisions\/5423"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/blog.criware.com\/index.php\/wp-json\/wp\/v2\/media\/5517"}],"wp:attachment":[{"href":"https:\/\/blog.criware.com\/index.php\/wp-json\/wp\/v2\/media?parent=4344"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.criware.com\/index.php\/wp-json\/wp\/v2\/categories?post=4344"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.criware.com\/index.php\/wp-json\/wp\/v2\/tags?post=4344"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}