{"id":4558,"date":"2023-09-06T10:00:16","date_gmt":"2023-09-06T01:00:16","guid":{"rendered":"https:\/\/blog.criware.com\/?p=4558"},"modified":"2024-05-17T18:22:50","modified_gmt":"2024-05-17T09:22:50","slug":"platformer-jump","status":"publish","type":"post","link":"https:\/\/blog.criware.com\/index.php\/2023\/09\/06\/platformer-jump\/","title":{"rendered":"Platformer Jump"},"content":{"rendered":"<p>2D platformers are a popular genre, with titles often adopting a retro-gaming style. And while relatively plain sound effects will often go well with the aesthetics, it is also possible to make them a bit more interesting by adding some interactions. For instance, in this post, we will see how easy it is to improve a simple retro jump sound effect using Atom Craft.<\/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-4558-1\" width=\"800\" height=\"423\" preload=\"metadata\" controls=\"controls\"><source type=\"video\/mp4\" src=\"https:\/\/blog.criware.com\/wp-content\/uploads\/2023\/09\/Video_Plateformer_Jump.mp4?_=1\" \/><a href=\"https:\/\/blog.criware.com\/wp-content\/uploads\/2023\/09\/Video_Plateformer_Jump.mp4\">https:\/\/blog.criware.com\/wp-content\/uploads\/2023\/09\/Video_Plateformer_Jump.mp4<\/a><\/video><\/div>\n<\/div>\n<h1 style=\"font-size: 150%; font-weight: bold; margin-top: 40px;\">Asset Creation<\/h1>\n<p>The jump will be separated in two assets, one for the initial impulsion and the other for the movement itself.<\/p>\n<ul>\n<li>A simple synthesizer with a square wave oscillator is used to generate both waveforms.<\/li>\n<li>The impulsion should be really short &#8211; between 75 and 100 ms &#8211; with the pitch only slightly rising.<\/li>\n<li>The motion sound, on the other hand, will be at least 1 second-long, and its pitch should rise one octave higher.<\/li>\n<\/ul>\n<p>Once the two files are rendered, import them in AtomCraft.<\/p>\n<h1 style=\"font-size: 150%; font-weight: bold; margin-top: 40px;\">Implementation<\/h1>\n<p>The goal of this implementation is to make the sound follow the height and the length of the jump. To achieve this, follow these steps:<\/p>\n<ul>\n<li>Create a new <strong>Cue<\/strong>.<\/li>\n<li>Drag and drop the two assets on the Cue, creating two <strong>Tracks<\/strong>.<\/li>\n<li>Select the <strong>Waveform region<\/strong> corresponding to the motion sound, and change its <em>Playback<\/em> <em>Timing Random<\/em> property to 25 ms.<\/li>\n<\/ul>\n<p style=\"text-align: center;\">\n<img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/blog.criware.com\/wp-content\/uploads\/2023\/09\/01-Timing.png\" alt=\"01 Timing\" width=\"1145\" height=\"581\" class=\"alignnone size-full wp-image-4563\" srcset=\"https:\/\/blog.criware.com\/wp-content\/uploads\/2023\/09\/01-Timing.png 1145w, https:\/\/blog.criware.com\/wp-content\/uploads\/2023\/09\/01-Timing-300x152.png 300w, https:\/\/blog.criware.com\/wp-content\/uploads\/2023\/09\/01-Timing-768x390.png 768w, https:\/\/blog.criware.com\/wp-content\/uploads\/2023\/09\/01-Timing-1024x520.png 1024w\" sizes=\"auto, (max-width: 1145px) 100vw, 1145px\" \/>\n<\/p>\n<p>Of course, as it is, the sound will be too long, and we need to add a mechanism to make it stop:<\/p>\n<ul>\n<li>Add an <strong>Action Track<\/strong> to the Cue<strong>.<\/strong><\/li>\n<li>Then, insert a <strong>Stop Action<\/strong> at about 150 ms on the timeline.<\/li>\n<li>Finally, drag and drop your Cue onto the Action Track\u2019s header, so that the Action will reference the Cue itself. The Cue will now stop itself when the playback cursor reaches the marker.<\/li>\n<\/ul>\n<p style=\"text-align: center;\">\n<img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/blog.criware.com\/wp-content\/uploads\/2023\/09\/02-Action.png\" alt=\"02 Action\" width=\"987\" height=\"499\" class=\"alignnone size-full wp-image-4564\" srcset=\"https:\/\/blog.criware.com\/wp-content\/uploads\/2023\/09\/02-Action.png 987w, https:\/\/blog.criware.com\/wp-content\/uploads\/2023\/09\/02-Action-300x152.png 300w, https:\/\/blog.criware.com\/wp-content\/uploads\/2023\/09\/02-Action-768x388.png 768w\" sizes=\"auto, (max-width: 987px) 100vw, 987px\" \/>\n<\/p>\n<p>Now we have the opposite problem, the Cue will stop too early!<\/p>\n<p>However, by using an AISAC, we will be able to modify the pitch and the duration of the sound dynamically:<\/p>\n<ul>\n<li>Select the track corresponding to the motion sound and create an <strong>AISAC<\/strong>.<\/li>\n<li>Add <em>Pitch<\/em>, <em>EG \u2013 Release Time<\/em> and <em>Pre-delay Time<\/em> graphs to the AISAC.<\/li>\n<li>The pitch curve should rise from 0 to 1200 cents (i.e., one octave).<\/li>\n<li>The release curve will span durations from 50 to 500 ms.<\/li>\n<li>The pre-delay will go from 75 to 25 ms.<\/li>\n<\/ul>\n<p style=\"text-align: center;\">\n<img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/blog.criware.com\/wp-content\/uploads\/2023\/09\/03-Aisac.png\" alt=\"03 Aisac\" width=\"1038\" height=\"491\" class=\"alignnone size-full wp-image-4565\" srcset=\"https:\/\/blog.criware.com\/wp-content\/uploads\/2023\/09\/03-Aisac.png 1038w, https:\/\/blog.criware.com\/wp-content\/uploads\/2023\/09\/03-Aisac-300x142.png 300w, https:\/\/blog.criware.com\/wp-content\/uploads\/2023\/09\/03-Aisac-768x363.png 768w, https:\/\/blog.criware.com\/wp-content\/uploads\/2023\/09\/03-Aisac-1024x484.png 1024w\" sizes=\"auto, (max-width: 1038px) 100vw, 1038px\" \/>\n<\/p>\n<p>The release time of the Envelope Generator allows us to make the sound last longer. The release is triggered when the Cue is stopped (i.e., when the playback cursor reaches the Action), thus making it longer will increase the overall Cue duration.<\/p>\n<p>The longer pre-delay is used to emphasize the initial impulsion when the jump is short. However, as the jump gets longer, the pre-delay becomes shorter, and the volume of the impulsion is also lowered to focus on the motion.<\/p>\n<p>Check out the Atom Craft project below to experiment with it!<\/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\/09\/AtomCraft_Project_PlateformerJump.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_PlateformerJump.zip<\/a><\/div>\n","protected":false},"excerpt":{"rendered":"<p>2D platformers are a popular genre, with titles often adopting a retro-gaming style. And while relatively plain sound effects will<\/p>\n","protected":false},"author":2,"featured_media":5399,"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-4558","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\/4558","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=4558"}],"version-history":[{"count":7,"href":"https:\/\/blog.criware.com\/index.php\/wp-json\/wp\/v2\/posts\/4558\/revisions"}],"predecessor-version":[{"id":5400,"href":"https:\/\/blog.criware.com\/index.php\/wp-json\/wp\/v2\/posts\/4558\/revisions\/5400"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/blog.criware.com\/index.php\/wp-json\/wp\/v2\/media\/5399"}],"wp:attachment":[{"href":"https:\/\/blog.criware.com\/index.php\/wp-json\/wp\/v2\/media?parent=4558"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.criware.com\/index.php\/wp-json\/wp\/v2\/categories?post=4558"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.criware.com\/index.php\/wp-json\/wp\/v2\/tags?post=4558"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}