Many FX artists hate to do custom animation. I know I do! I'm always interested in finding ways to let Houdini animate for me - It's procedural for a reason right? It also makes it way cleaner and easier to apply to other shots. Or in the case that someone else has to un-web your Houdini setup. This is one of the ways I tend to animate gradients across a pre-defined distance so to speak. Let me clarify! This gives the freedom of applying procedural animation to anything you like - without placing a single keyframe.
The iconic 0 to 1 range
Let's say you're creating a shock-wave, and you need to animate an emission ring from the center of an explosion. You could create a circle and create a custom animation for the scale, but that wouldn't be very procedural. Every time you need a new explosion you'd have to manually go in and re-animate or re-time your shock-wave. Instead, I'd much rather input a start frame and let Houdini animate by itself. This little setup can do that. Here's a quick test I did.
Let's pretend this is a great explosion!
Automation is great!
This setup may seem underwhelming at first, as it's basically just one attribute vop. But the power and simplicity makes up for the lack of tech. These kinds of techniques are by far my most favorite aspects of any FX setup. The idea here is to create what I call a "map" attribute, which is simply a value from 0-1. As you know, anything can be fitted into that range. Then you feed your data over this range, over time.
Here's a look at the settings for the "autoramp" attribute vop. As you can see it takes the attribute "map", and fit's it into a 0-1 animation controlled by "Animation Curve" - This is your timing. Then runs the values from "Animated Value" through that curve based on your input "Start Frame" / "End Frame". Simple! I've used this type of setup on a ton of real feature film productions, and I will use keep on using it to control all sorts of animation tasks. I'm a huge fan of re-usability, and this is no exception. For this post I made a little experiment to show some animated UI elements to give a sense of what you can use it for. It also makes good use of the "Kickblast" asset which is available on this website as well!
This is a test I did for the website, but it shows one way of using this method to great effect. And it's very easy to change! I'll be diving in to a few more examples soon, but I hope this give an idea of how this could be used to drive interesting animations.
If you put this guy in a for loop you can use it to drive ripples through a surface. No need for that ripple solver. - Unless your ripples are a hero element naturally. Even though I'm distorting an actual piece of geometry in this example, you could do this in the shader, or render a pass to distort your surface with. Pretty handy! This example is included in the hip file bellow.
TIP: If your map attribute is a frame range as well. For example:
f@map = fit($F, 1, 100, 0, 1);
This way you can animate values as well. The "compass" element in my little UI experiment has it's size animated by the "autoramp" node as well. which is great for more motion graphics looking animations.
When combined can create more complex animations like this. I recommend linking your end frame to your start frame once you find a timing you like. This makes it very simple to shift your animation around by just using start frame.
Here's a bunch of tests I did with this setup. It's using a couple popular animation curves and I think it's looking pretty interesting. The ways you combine these could be really powerful. This is also included in the hipfile.
Applied to a cube scale
Here's another video that illustrates this pretty well.
I've been raving about this for too long already, but there's a couple things I think is interesting for any future tweaks. I feel like chops could somehow be fed into this to control the animation as well. And with chops we could allow for more detailed animations. Or better yet, animation presets. I know after effects people use animation curves to create fresh floops and swoops that could be done in Houdini as well. Relatively simple!
Here's a great site visualizing the concept I'm imagining:
All of these curves are well established as being very pleasing, and could be automated pretty easily. And I think FX has some healthy lessons to learn from the mograph folks!
What I did find from my UI compass animation test is that once you have several nodes creating various animations it get's a little messy in your scene. I think using a subnet could clean some of this up. Or even better, find a way to re-use the same node, but using different timings stored as attributes. This way animating becomes more a process of inputting your frames and watching it unfold. I like it!