{"id":3306,"date":"2021-03-17T13:24:55","date_gmt":"2021-03-17T04:24:55","guid":{"rendered":"https:\/\/blog.criware.com\/?p=3306"},"modified":"2021-04-01T13:38:38","modified_gmt":"2021-04-01T04:38:39","slug":"creating-a-vehicle-engine-in-atom-craft","status":"publish","type":"post","link":"https:\/\/blog.criware.com\/index.php\/2021\/03\/17\/creating-a-vehicle-engine-in-atom-craft\/","title":{"rendered":"Creating a Vehicle Engine in Atom Craft"},"content":{"rendered":"<p>\nVehicles are a common feature of modern games, from racing games where the player is placed directly in control of a car to games where busses and motorbikes merely form part of the backdrop. There are as many approaches to designing vehicles as there are games that feature them. In this blog, we will showcase a reasonably simple engine with a whole bunch of power built-in. We will trigger playback like any other sound and control RPM is by a single AISAC.<\/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-3306-1\" width=\"800\" height=\"450\" preload=\"metadata\" controls=\"controls\"><source type=\"video\/mp4\" src=\"https:\/\/blog.criware.com\/wp-content\/uploads\/2021\/03\/2021-03_Engine.mp4?_=1\" \/><a href=\"https:\/\/blog.criware.com\/wp-content\/uploads\/2021\/03\/2021-03_Engine.mp4\">https:\/\/blog.criware.com\/wp-content\/uploads\/2021\/03\/2021-03_Engine.mp4<\/a><\/video><\/div>\n<\/div>\n<p><\/p>\n<div style=\"max-width: 800px; margin: 0 auto; margin-bottom: 20px; text-align:center;\"><a style=\"display: inline-block; border: 1px solid #ccc; padding: 20px;\" href=\"https:\/\/blog.criware.com\/wp-content\/uploads\/2021\/03\/2021-03_Engine.zip\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-1813\" src=\"https:\/\/blog.criware.com\/wp-content\/uploads\/2018\/06\/zip.png\" alt=\"zip\" width=\"80\" height=\"78\" style=\"\n    display: block;\n    margin: 0 auto;\n\">2021-03_Engine.zip<\/a>\n<\/div>\n<p><em>This project was created using CRI Atom Craft Ver.3.44.13<\/em><\/p>\n<h2 style=\"font-size: 150%; font-weight: bold; margin-top: 40px;\">Cue Creation<\/h2>\n<p>For our Materials, we will use separate loops sustained at incremental RPM values. These can be looped from actual recordings of cars or synthesized from scratch. You can access our more stylized synth loop samples in the project files linked above. To get started, let\u2019s:<\/p>\n<ul>\n<li>Create a Polyphonic Cue, and name it \u201cEngine\u201d\n<ul>\n<li>Create Tracks for idle state, and subsequent speed states<\/li>\n<li>Drag all relevant Material loops onto this Cue<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/blog.criware.com\/wp-content\/uploads\/2021\/03\/2021-03_Engine_1.png\" alt=\"2021-03_Engine_1\" width=\"1028\" height=\"456\" class=\"alignnone size-full wp-image-3308\" srcset=\"https:\/\/blog.criware.com\/wp-content\/uploads\/2021\/03\/2021-03_Engine_1.png 1028w, https:\/\/blog.criware.com\/wp-content\/uploads\/2021\/03\/2021-03_Engine_1-300x133.png 300w, https:\/\/blog.criware.com\/wp-content\/uploads\/2021\/03\/2021-03_Engine_1-768x341.png 768w, https:\/\/blog.criware.com\/wp-content\/uploads\/2021\/03\/2021-03_Engine_1-1024x454.png 1024w\" sizes=\"auto, (max-width: 1028px) 100vw, 1028px\" \/><\/p>\n<p>\nWe can perform additional optimization by setting the Cue\u2019s Voice Behaviour to \u201cVirtual Voice Retrigger\u201d. Since we won\u2019t simultaneously be playing all 4 tracks, and it doesn\u2019t matter where we start in the waveform, we can prevent silent voices from using resources.<\/p>\n<h2 style=\"font-size: 150%; font-weight: bold; margin-top: 40px;\">AISAC Volume &#8211; Cross Fade<\/h2>\n<p>\nApart from sourcing the audio, this part is the most creative part of the design process. We need to create natural modulation between each Track so that it sounds like a convincing RPM increase. The first thing we need to do is fade our volume between tracks. To do this, let\u2019s:<\/p>\n<ul>\n<li>Rename AisacControl_00 to \u201cEngineRPM\u201d<\/li>\n<li>For each Track in Engine Cue\n<ul>\n<li>Right-click \u2192 New Object \u2192 Create AISAC\u2026 and set\n<ul>\n<li>AISAC Name = respective Track name<\/li>\n<li>AISAC Control = EngineRPM<\/li>\n<li>AISAC Graph = Volume<\/li>\n<\/ul>\n<\/li>\n<li>Finesse each curve as appropriate<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/blog.criware.com\/wp-content\/uploads\/2021\/03\/2021-03_Engine_2.png\" alt=\"2021-03_Engine_2\" width=\"1028\" height=\"456\" class=\"alignnone size-full wp-image-3308\" \/><\/p>\n<h2 style=\"font-size: 150%; font-weight: bold; margin-top: 40px;\">AISAC Pitch<\/h2>\n<p>\nVolume automation alone can sound a little unnatural, so let\u2019s sell the effect further by applying pitch modulation. We can either apply this globally within the Cue, to individual tracks, or both!\n<\/p>\n<ul>\n<li>In the AISAC List, right-click Engine Cue \u2192 Create AISAC and set\n<ul>\n<li>AISAC Name = \u201cWhole Engine\u201d<\/li>\n<li>AISAC Control = EngineRPM<\/li>\n<li>AISAC Graph = Pitch<\/li>\n<\/ul>\n<\/li>\n<li>Create a linear curve with destination values of -600 to 600 cents. <\/li>\n<\/ul>\n<p><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/blog.criware.com\/wp-content\/uploads\/2021\/03\/2021-03_Engine_3.png\" alt=\"2021-03_Engine_3\" width=\"1028\" height=\"456\" class=\"alignnone size-full wp-image-3308\" \/><\/p>\n<p>\nWe can also add a pitch curve to our Speed 2 Track, gradually increasing beyond to a destination of 1200. Or, we could even add a Pitch AISAC with an Auto Modulation Control Type to add some subtle looping jitter. ADX2 is really flexible in this regard!\n<\/p>\n<h2 style=\"font-size: 150%; font-weight: bold; margin-top: 40px;\">AISAC Bus Send<\/h2>\n<p>To add a little more power to the top end, we can set up a Bus with DSP effects to gradually receive more signal via a Bus Send AISAC. <\/p>\n<ul>\n<li>On DspBusSettings_0, right-click \u2192 Create DSP Bus and name it \u201cEngine\u201d\n<ul>\n<li>Set Send to MasterOut<\/li>\n<li>Set fader Volume to -9 dB<\/li>\n<li>Add Distortion, Bit Crusher, and Compressor Effects<\/li>\n<\/ul>\n<\/li>\n<li>In BusMap For AISAC and Automation, set DspBusName2 to Engine<\/li>\n<li>In Engine AISAC, right-click Whole Engine \u2192 Create Graph \u2192 Bus Send \u2192 BusSend2 (Engine)<\/li>\n<li>Create a Slow Change curve that ends on 0.5<\/li>\n<\/ul>\n<p><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/blog.criware.com\/wp-content\/uploads\/2021\/03\/2021-03_Engine_4.png\" alt=\"2021-03_Engine_4\" width=\"1028\" height=\"456\" class=\"alignnone size-full wp-image-3308\" style=\"\n    max-width: 800px;\n\"><\/p>\n<p>\nWith these settings applied, we can go back and adjust the DSP effects\u2019 parameters to fine-tune what it sounds like when our Engine has high RPM. This stage also requires some creativity, but the main goal is getting it to sound a little dirtier.\n<\/p>\n<p>\nWe can test our final product in the Session view, but it may sound a little staggered with manual slider control. Once this Engine is implemented and controlled by a smoothed in-game parameter, it sounds really convincing!<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Vehicles are a common feature of modern games, from racing games where the player is placed directly in control of<\/p>\n","protected":false},"author":2,"featured_media":3312,"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-3306","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\/3306","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=3306"}],"version-history":[{"count":6,"href":"https:\/\/blog.criware.com\/index.php\/wp-json\/wp\/v2\/posts\/3306\/revisions"}],"predecessor-version":[{"id":3333,"href":"https:\/\/blog.criware.com\/index.php\/wp-json\/wp\/v2\/posts\/3306\/revisions\/3333"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/blog.criware.com\/index.php\/wp-json\/wp\/v2\/media\/3312"}],"wp:attachment":[{"href":"https:\/\/blog.criware.com\/index.php\/wp-json\/wp\/v2\/media?parent=3306"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.criware.com\/index.php\/wp-json\/wp\/v2\/categories?post=3306"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.criware.com\/index.php\/wp-json\/wp\/v2\/tags?post=3306"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}