[img]https://i.imgur.com/Uf17ogv.png[/img] Foundry has been undergoing some massive changes over the past few years, bringing on developers from across the industry to create a unique factory game like no other. Myself (MarkL) and Cheerio were previously at a game studio called [url=https://www.klei.com/]Klei[/url], where we regularly worked with traditional animators and artists from the world of television cartoons. I thought for this Foundry Friday I would share some secrets they taught me, and what I find to be the most useful curve in all of game development. Traditional animation training can impart numerous lessons, including Disney’s famous “[url=https://en.wikipedia.org/wiki/Twelve_basic_principles_of_animation]Twelve Principles of Animation[/url]”. Foundry is very much not a Disney cartoon, but many of these principles are still useful. We have examples of most of the twelve principles in Foundry, but in this post I chose to focus on the ones I, as an engineer/designer, reach for the most. After learning about these principles in Foundry you may start to see them in many of your favorite games. [h1]Slow in, slow out[/h1] [img]https://i.imgur.com/IFFBTtF.png[/img] Many 3D animation packages use this curve on movements by default. This creates a more natural motion because it mimics the need to accelerate and decelerate. But there is another place you will find this curve, in graphics! [url=https://developer.download.nvidia.com/cg/smoothstep.html]The shader function: [i]smoothstep()[/i][/url] If you were to peruse the Foundry code base you would find this function used liberally. It’s a great way to create a visually pleasing falloff or blend. Recently I have been working on a new grid visualization shader to help you place objects, and as the grid approaches an edge we use the smoothstep to blend it off, instead of a jarring hard cut. [img]https://i.imgur.com/bLNT2d1.png[/img] Searching through Foundry’s shaders it looks like we have used this to “smooth things out” 103 times, from lighting falloffs to chroma keying. [h1]Exaggeration[/h1] Now on to my absolute favorite curve and animation curve of all time. This curve will come in handy no matter what you are working on and make everything feel more “intentional” and exciting. [img]https://i.imgur.com/YImwd9j.png[/img] We have placement helpers when building objects that we need to show, let's first take a look at linearly scaling them in and see how that feels. [img]https://i.imgur.com/uSyZg43.gif[/img] [i]I slowed the animation down so it shows up on GIF better[/i] That feels cold and mechanical. Now what if we apply that exaggeration curve? [img]https://i.imgur.com/Z3g5mte.gif[/img] Now it feels more Impactful, playful and intentional! Truly the easiest improvement you can make to any linear animation. This is the first curve I reach for in Foundry whenever any animation doesn’t feel “right”. Heck, here it is when displaying UI options: [img]https://i.imgur.com/2MR1snY.gif[/img] This almost cartoony exaggeration feels pleasant and playful. It’s such a simple concept, a curve that goes a bit too far and comes back. [h1]Rewind[/h1] I feel like the curve is basically communicating to the user that "hey, we mean to be doing this thing". With that knowledge you can now apply these curves in reverse, like when we remove things. [img]https://i.imgur.com/CgcFWJv.png[/img] [i]Reverse exaggeration curve[/i] When objects or terrain shatters we despawn it over time. Previously we simply popped it off, but that was jarring and unpleasant. Here I've added a despawn over time AND an immediate despawn when the objects get close to the camera, so they don't clutter your vision. [img]https://i.imgur.com/mBwLfpt.gif[/img] The effect is subtle, but satisfying. [h1]In Summary[/h1] Video games (even 3d ones) can borrow a lot of cartoons and traditional animation. There is no reason the to reinvent the wheel. When you look outside your own "bubble" you can find helpful lessons that might apply in your situation, even outside of games. Cheers, -MarkL