Last week started our animation course at the TA program and I was finally given time to practice animation during school time. So this week I bring you three different animation practices I took on and how I approached them. I’ll start by introducing them in this short little showreel:
1. Classic bouncing ball with emphasis on Squash and Stretch
A basic exercise which can be taken to a much higher level of complexity, depending on the result you’re looking for. I tried to take weight into accountant while giving the ball a small factor of bouncy rubber.
I’ve seen others do it throughout the years, myself included, using the curve tools to attach their object to a motion path which is a good idea in most cases. That is, if we don’t actually want to spend time putting out every frame manually. I don’t say one shouldn’t use the curve tool for motion paths, I do it for cameras and turntables in Maya, but in this case I prefer pose-to-pose with keyframes. Why?
By simply painting out the object on a piece of paper and determine where most frames needs to be used (the top of the hills), you have full control of your animation. In order for the curve animation to come even close to the pose-to-pose animation since the default motion path uses constant speed, vertex points needs to be placed in correspondation to the frames on the paper and then tweaked by setting motion path keys to adjust speed.
Furthermore, the graph editor holds a lot of power and it doesn’t really matter which approach you pick. Essentially it’s just as much work to get the same results, in which pose-to-pose with keyframes takes a lot more manual work compared to motion paths.
We can still bake the simulation from the motion path into the control object of the ball, so we can easily regain that control if we would like to. Essentially a combination between these two methods could prove to be a good and efficient way of working. It’s up to you to decide.
2. Binding deformer attributes to user-friendly controls
My only experience so far with animation controls are driven keys and occasionally connecting attributes between objects by using the connection editor (for example getting the twist attribute from a pole vector and connecting it to a control object). Never did it occur to be that the very same thing could be achieved by playing around in the Node Editor, which also makes the connection a lot more clearer.
For example, we could play around with the bend deformer. We can simulate the behavior of an octopus by using curves and hooking up the curvature attribute of the bendhandle to a control object. Ultimately we could achieve the same effect in three different ways, but I’ll start with the Node Editor approach.
I create two nurb circles, one for translation/rotation and one for controlling the curvature of the bendhandle. I select the z-axis of the curvature circle to be the main channel for the bending effect. Then I lock the other attributes and also make two arrows to indicate the direction of the bending.
Here I connect the attributes, but quickly realize something is wrong. Whenever I now change value of the z-axis, the direction of the bend is inverted.
Luckily for us, there is a reverse utility available from the Hypergraph. With this, we can invert the effect to match the right direction.
That’s better! Now the animator can move the object around and easily control the bending effect without having to scroll through menus or finding attributes. But wait! There is more…remember that you can set your curves to be dynamic in the FX section?
By making a curve dynamic, we are actually creating a new hair system and upon creation, we receive a new dynamic curve from the original one.
Since this is just like any other curve, we can extrude a cylinder along it and adjust the taper to a negative value. This object is now driven by the dynamic curve. The final approach almost speaks for itself, but we can enhance it even more with just a single little script. A joint hierarchy is created and bounded to the object.
By selecting the base joint and typing in select -hi; in the mel script line, we travel all the way up in the chain and enable ourselves to bend it.
We could also use this method to easily create tree branches without having to model it from scratch. So by demonstrating these three different approaches, we find that all of them can be used for so much more than just animation and control setups.
Alternatively, we could attach a Spline IK Handle to the joint hierarchy and connect it with a cluster to achieve the same effect. The possibilities are endless.
3. Studying the running cycle of a humanoid
So by this point I think nobody has missed out I’m a big fan of Metroid. I downloaded an extracted model of Samus Aran from Metroid: Another M and rigged it by using a single-chain rig and also took my time to investigate the new binding method from 2015 called Geodesic Voxel. So far, I’ve found it to be extremely powerful. It allows efficient binding of non-manifold meshes(not that it justifies the fact if a mesh is non-manifold, we still want to avoid it) and objects consisting of multiple connected components. By using voxels resembling small cubic spaces spread out along the input mesh, it’s somewhat similar to a 2D rasterization process.
All that was necessary for this mesh was to play a bit with the the falloff radius. Higher voxel resoulution means smoother paint weights transitions and more precise placements on the character’s limbs. It had some problems with the fingers on the lower resolutions, but the max resolution 1024 fixed this when I made a second binding. Very little tweaking had to be made for the deformation to work properly.
So for the actual posing, I followed one of the examples in The Animator’s Survival Kit and focused on hip motion while constantly adding more motion to a static running cycle. The head also features some importance, in which it should never be raised by a full head length, only in half. I don’t know if that little tip is strictly a law, but I found it logical since it’s easy to exaggerate head motion (my experience only).
I spent many hours looking at references, sprinters and athletes. Still it all comes down to actually starting to put out some key frames and fill in the gaps. My intention for this animation is to loop it, in case I want to use it for an animation setup in the future. Most of all, I’m just trying to understand the motion of the human body.