{"id":5199,"date":"2024-04-04T10:54:11","date_gmt":"2024-04-04T01:54:11","guid":{"rendered":"https:\/\/blog.criware.com\/?p=5199"},"modified":"2024-04-04T10:54:11","modified_gmt":"2024-04-04T01:54:11","slug":"water-flow","status":"publish","type":"post","link":"https:\/\/blog.criware.com\/index.php\/2024\/04\/04\/water-flow\/","title":{"rendered":"Water Flow"},"content":{"rendered":"<p>Water can be used in many ways in games, from environments to gameplay, in simple puzzles or elemental magic attacks. In this post, we will implement a dynamic water flow in Atom Craft, that can later be adapted to many of these scenarios.<\/p>\n<div style=\"max-width: 700px; margin: 0 auto; margin-bottom: 20px; border: 1px solid #aaa;\">\n<div style=\"width: 800px;\" class=\"wp-video\"><video class=\"wp-video-shortcode\" id=\"video-5199-1\" width=\"800\" height=\"423\" preload=\"metadata\" controls=\"controls\"><source type=\"video\/mp4\" src=\"https:\/\/blog.criware.com\/wp-content\/uploads\/2024\/03\/video_waterflow.mp4?_=1\" \/><a href=\"https:\/\/blog.criware.com\/wp-content\/uploads\/2024\/03\/video_waterflow.mp4\">https:\/\/blog.criware.com\/wp-content\/uploads\/2024\/03\/video_waterflow.mp4<\/a><\/video><\/div>\n<\/div>\n<h1 style=\"font-size: 150%; font-weight: bold; margin-top: 40px;\">Asset Creation<\/h1>\n<p>For the source materials, we need to record variations of water movements, or streams flowing at different speeds. The goal is to be able to create smooth transitions between tiny streams and turbulent flows of water.<\/p>\n<p>For a slow stream, it may be easier to manually create the water flow with your hand or a stick in a puddle or a pond, where you can precisely control the movement of the water. Recording a river or even the ocean may be the most convenient for larger water movements.<\/p>\n<p>Using procedural audio to produce the sounds may also help ensure consistency across the assets. For instance, GameSynth offers dedicated sound generators for liquid sounds.<\/p>\n<ul>\n<li>Once your sources are gathered, create five sounds going from tiny to large streams.<\/li>\n<li>If your sounds are too similar, adding some layers with splashes or bubbles is a great way to bring more fluctuations.<\/li>\n<li>Make sure the five sounds are looping and export them.<\/li>\n<\/ul>\n<p>Import the files into Atom Craft and set the <em>Override loop information Flag<\/em> to <em>True<\/em> for each Material.<\/p>\n<h1 style=\"font-size: 150%; font-weight: bold; margin-top: 40px;\">Implementation<\/h1>\n<p>We will start by creating the Cue:<\/p>\n<ul>\n<li>Select your Cue Sheet and create a <strong>Polyphonic Cue<\/strong>.<\/li>\n<li>Drag and drop your Materials onto the Cue to automatically create the associated Tracks and Waveform Regions.<\/li>\n<li>Make sure the Tracks are sorted by density from top to bottom.<\/li>\n<li>Set the <em>Voice Behavior<\/em> property to <em>Virtual Voice<\/em>.<\/li>\n<li>Set the <em>Cue Limit Flag<\/em> to <em>True<\/em> and the <em>Cue<\/em> <em>Limits<\/em> to 1.<\/li>\n<\/ul>\n<p style=\"text-align:center;\">\n<img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/blog.criware.com\/wp-content\/uploads\/2024\/03\/01-Water-Cue.png\" alt=\"01 Water Cue\" width=\"1386\" height=\"652\" class=\"alignnone size-full wp-image-5200\" srcset=\"https:\/\/blog.criware.com\/wp-content\/uploads\/2024\/03\/01-Water-Cue.png 1386w, https:\/\/blog.criware.com\/wp-content\/uploads\/2024\/03\/01-Water-Cue-300x141.png 300w, https:\/\/blog.criware.com\/wp-content\/uploads\/2024\/03\/01-Water-Cue-768x361.png 768w, https:\/\/blog.criware.com\/wp-content\/uploads\/2024\/03\/01-Water-Cue-1024x482.png 1024w\" sizes=\"auto, (max-width: 1386px) 100vw, 1386px\" \/><\/p>\n<p>Unless you want everything to play at the same time, we will need an AISAC to control the flow of the water.<\/p>\n<ul>\n<li>Start by creating an <strong>AISAC Control<\/strong> named \u201cWater Power\u201d.<\/li>\n<li>Then, for each Track, create an <strong>AISAC<\/strong> with a <strong>Volume Graph<\/strong> that uses the Water Power control.<\/li>\n<li>Edit the Volume graphs to create crossfades between successive Tracks.<\/li>\n<li>We recently published <a href=\"https:\/\/blog.criware.com\/index.php\/2023\/12\/08\/aisac-crossfades-script-with-robot-api\/\">a post<\/a> that leverages the Robot API to automatically create this kind of AISAC configuration. If you go that route though, make sure to still edit the graphs a bit to create a more natural flow.<\/li>\n<\/ul>\n<p style=\"text-align:center;\">\n<img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/blog.criware.com\/wp-content\/uploads\/2024\/03\/02-AISAC.png\" alt=\"02 AISAC\" width=\"1191\" height=\"445\" class=\"alignnone size-full wp-image-5201\" srcset=\"https:\/\/blog.criware.com\/wp-content\/uploads\/2024\/03\/02-AISAC.png 1191w, https:\/\/blog.criware.com\/wp-content\/uploads\/2024\/03\/02-AISAC-300x112.png 300w, https:\/\/blog.criware.com\/wp-content\/uploads\/2024\/03\/02-AISAC-768x287.png 768w, https:\/\/blog.criware.com\/wp-content\/uploads\/2024\/03\/02-AISAC-1024x383.png 1024w\" sizes=\"auto, (max-width: 1191px) 100vw, 1191px\" \/><\/p>\n<ul>\n<li>As a finishing touch, add an AISAC at the Cue level.<\/li>\n<li>Create a graph for <em>Bandpass \u2013 Cutoff High<\/em>.<\/li>\n<li>Let the curve start at 0.5 and rapidly increase to 1.<\/li>\n<li>This will allow you to control the water flow more precisely for slower sounds.<\/li>\n<\/ul>\n<p style=\"text-align:center;\">\n<img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/blog.criware.com\/wp-content\/uploads\/2024\/03\/03-Bandpass-AISAC.png\" alt=\"03 Bandpass AISAC\" width=\"1570\" height=\"902\" class=\"alignnone size-full wp-image-5202\" srcset=\"https:\/\/blog.criware.com\/wp-content\/uploads\/2024\/03\/03-Bandpass-AISAC.png 1570w, https:\/\/blog.criware.com\/wp-content\/uploads\/2024\/03\/03-Bandpass-AISAC-300x172.png 300w, https:\/\/blog.criware.com\/wp-content\/uploads\/2024\/03\/03-Bandpass-AISAC-768x441.png 768w, https:\/\/blog.criware.com\/wp-content\/uploads\/2024\/03\/03-Bandpass-AISAC-1024x588.png 1024w\" sizes=\"auto, (max-width: 1570px) 100vw, 1570px\" \/><\/p>\n<p>Now you should be able to create a dynamic water movement that can be easily reused in many different scenarios.<\/p>\n<p>To see how to implement this type of sound in Atom Craft, download the demo project below.<\/p>\n<div style=\"max-width: 800px; margin: 0 auto; margin-bottom: 20px; text-align: center;\">\n<a style=\"display: block; border: 1px solid #ccc; padding: 20px; max-width: 100%; margin: 0 auto;\" href=\"https:\/\/blog.criware.com\/wp-content\/uploads\/2024\/03\/AtomCraft_Project_Water.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_Water.zip<\/a>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Water can be used in many ways in games, from environments to gameplay, in simple puzzles or elemental magic attacks.<\/p>\n","protected":false},"author":2,"featured_media":5208,"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-5199","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\/5199","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=5199"}],"version-history":[{"count":6,"href":"https:\/\/blog.criware.com\/index.php\/wp-json\/wp\/v2\/posts\/5199\/revisions"}],"predecessor-version":[{"id":5212,"href":"https:\/\/blog.criware.com\/index.php\/wp-json\/wp\/v2\/posts\/5199\/revisions\/5212"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/blog.criware.com\/index.php\/wp-json\/wp\/v2\/media\/5208"}],"wp:attachment":[{"href":"https:\/\/blog.criware.com\/index.php\/wp-json\/wp\/v2\/media?parent=5199"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.criware.com\/index.php\/wp-json\/wp\/v2\/categories?post=5199"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.criware.com\/index.php\/wp-json\/wp\/v2\/tags?post=5199"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}