This post shows some of the process and workflow that went into animating this cycle in blender
Blockout
I began a blockout of a run cycle based on motion breakdowns I posted previously. The initial blockout is actually a simple 3 key poses, the first and fourth poses are identical, with the entire squirrel moved forward.
NOTE: The Squirrel model and rig were provided via the "Alive!" course here https://www.p2design-academy.com and I would highly recommend giving it a look if you're interested in learning animation in blender.
The first (and last) pose was the one I spent the most time iterating. The squirrels front-right and back-left paws are making contact with the ground, while the it's back-right has yet to contact, and it's front-left is just barely lifting off the ground. This asymmetry in movement makes the pose more organic. The squirrel's body is squashed, but it's neck is outstretched and it's snout is pushing outward. This is meant to anticipate the next pose.
Now we're back to the 1st/4th pose. As i mentioned this is identical to the 1st pose, but other things to note is that the tail arcs upward due to dragging behind it from it's previous airborn pose. The reason this pose was iterated on the most is because I had to keep tweaking it to seamlessly transition forward into the 2nd post and backward into the 3rd pose.
Here's a small gif showing roughly how this will look in motion. The actual next step is to do breakdowns.
Seeing it in motion makes me feel like the ears are too stiff and the snout squishes in a little too much!
Breakdowns
The next step is breakdown frames, frames that naturally connect the dots between the 4 keys.
Blender has a very convenient feature allowing you to disable all keyframes for a specific bone, so in this case I can just disable the ROOT bone to remove the root motion.
This
can be used to quickly preview what the animation looks like when it's
cycling in place. Currently it's a bit jittery for my liking so I'll be
tweaking it a bit more before I move onto polishing.
Polishing involves looking at individual curves for individual transform channels, people get intimidated by F-curves because it can look like this
At first it's confusing, and you're really not intended to look at every curve, for every transform, for every bone at once. It can be meticulous, but it's less confusing and better to focus only on a few curves at once, I was doing them one at a time, I do this by selecting one bone, hiding every channel, then unhiding the channel I want to work on.
You also need to make sure "only show selected" is enabled, now we have sanity and clarity.
These channels are created when you create keyframes in animation, and each keyframe is an individual control point on the curve in this view.
Sometimes it can be a little unclear what each curve is doing, this one is straight forward, it's controlling the X-Rotation of the squirrels' body you can select a point on the curve and move it around on the graph after hitting the "G" key, and you can always right-click to discard any changes you make. This is very helpful for figuring out what motion certain curves are controlling.
This is somewhat useful, but it's even more useful when I re-enable root motion.
I could endlessly talk about ways you can filter your workspace to hide all the confusing clutter, typically I hide all components that I don't need to see, like this.Generally speaking, in this animation I tried cleaning curves to keep them smooth, remove bumps and hitches. This depends on the intent of the motion, and in this case the intent is to show the squirrels' agility and flowing motion. I won't go through every curve for every bone here, but I'll show some key screenshots.
The Z-Location curve for the body is perhaps the most influential curve in the whole animation, it's a good practice to start cleanup on the most influential curve and work your way down to the more detailed, subtle motions. When I select the Z-Location curve, it looks similar to the motion path on the squirrel
For
clarity, in the blender world the Z axis references upwards and
downwards motion. So increasing the Z value on this graph will raise the
squirrel, decreasing it will lower it.
Also, notice that there's
some very subtle easing out of the contact pose and back into it, this
is because the body isn't actually colliding with anything, the
squirrels' paws and legs are making contact and absorbing the shock of
each impact.
I went through and cleaned individual curves for each transform of the body, chest, hips and head bone to further support each motion. The chest and hips were largely the same, I tweaked the X-Rotation curves of each to sell the feeling of overlap and drag, while keeping the curves relatively clean and flowy.
Chest X-Rotation
Hips X-Rotation
The other important value in this case is actually a perk of how this rig is designed, the Y-location value of both the chest and hips bone also controls squash and stretch, like this
With this in mind, I made sure the curves for these channels weren't too jittery or bumpy, I also used this to "tame" the curve and make the squash and stretch I already keyed more subtle, as well as making it flow better.
The blue horizontal line represents a value of 0, the lower green curve is the squash/stretch of the chest, and the upper green curve is the squash/stretch of the hips. points below the blue line are squashed and points above it are stretched.
As you can see, the lower line (the chest) doesn't stretch at all, but it does squash inward as the squirrel lands on it's front paws, stretching back out close to 0 as it's mid leap.
The upper line (the hips) squash a little, and stretch much more dramatically. I did this to give the hips and the entire squirrel a convincing anticipation for each leap, and it gives it's hips and legs a feeling of "dragging" behind mid arc.
There's a lot of other bones with other curves I had to tweak and polish, but I'd like to focus on one particular problem that can be difficult to fix. Here I'm going to calculate a motion path for this bone on the tip of the squirrels nose
It's a little hard to see this problem without root motion, this motion path should be more of a clean circle
When I reenable root motion and update the path, you can see the problem a lot more clearly,
See that huge "bump" in the curve? it's subtle in motion but it's still a problem that could be ironed out. The nose, like every other part of the body, should be traveling in more of an arc.
The nose itself doesn't actually have any motion, but it's motion path is affected by the bones it's parented to, particularly the head bone. It took some trial and error, eventually I found that the X-Rotation for the head bone could be tweaked to fix this motion, here's what it looked like before I made adjustments.
I slowly worked my way through each frame in the bump, tweaking the X-Rotation's value on the graph editor and re-updating the motion path each time.
Eventually I got to a result I was happy with. The curve could probably use more cleaning, but that's all I'm doing for the time being.
Since the paws are controlled using IKs, I spent most of my time cleaning up the curves for the location channels instead of the rotation channels, making ample use of the motion trail visualizer to get clean looking arcs.
I really focused on the Y location and Z location, so it was helpful to have each curve visible. I wanted make the arc of the foot larger and less jagged, but it's best to do this by adjusting F-curves instead of re-keying any poses. Creating new keyframes automatically places points on the F-curve with auto-aligned handles, which rarely comes out clean. This process boils down to taking keyframes on the graph view, bumping them up and down, playing with vector handles and trying to smooth out the curve, while also updating the motion trail to see how it effects it. I did this process on both the Y Location channel and Z Location channel. I kept tweaking it until I got a better looking arc.
While I was working on this, I also took the X-location channel and gave it a bit of a back-and-forth wobble just to make the arc more interesting from a frontal view, and to throw in some asymmetry.
I did also polish the rotation curves, I did this mainly with the goal of showing the "drag" of the hind paws as they sail through the air.
I noticed some sliding on the hind-paws, so I set my sights on fixing that.
From a side view, I started with using the grease pencil, drawing a line where the squirrels toe should stay
I found that the pose difference between my keyframes on frame 2 and 4 was too great
To correct this pose, I rotated the X-Rotation value so that the foot is just barely angled off the ground, then I moved the Z and Y location values to make it appear like it's just barely lifting off.
After this I started using the motion trail visualizer to clean up the arc accordingly. Using the same processes as above, the arc went from looking like this:
To this:
Before I move on, it's also worth noting two more things that I didn't record while working on this.
The first thing is that, on the contact pose when the squirrels' foot meets the ground, it's important to make sure the squirrels' heel makes first contact, then the rest of the foot. Heel > Toe
The other thing worth noting is that on the foots' contact frame, the F-Curve for the foot's height position will abruptly halt, with no easing. This is because vertical speed builds up until contact with the ground (or reaches terminal velocity), at which point it immediately stops.
An interesting trick I picked up while working on this is using one of blenders' lighting previews to display a silhouette of the character,
this can be done by clicking the viewport shading button > selecting flat > then "Object" under color
Now if you hide all UI elements with Shift+Alt+Z, all you'll see is a flat-shaded silhouette of the geometry. This is very helpful for testing the readability of your poses.
I followed a very similar process for refining the fore-paws, with one key difference that I think really sold the movement, I actually struggled to figure out what the issue was until a friend of mine gave me some solid critique and feedback.
After lift off and through the majority of the arc, I kept the squirrels forepaws dragging behind them, pointing at their previous position.
I don't actually ready the squirrels' forepaws until the last moment, where I use exactly 3 keyframes, 1 frame apart, to flip it's paws forward as it catches itself. The left and right paws are offset to avoid twinning, but each paw flips from pointing backwards to pointing forwards in exactly 3 frames.
I think this worked to great effect to resolve the "flappy" look the forepaws originally had.
The last thing to cleanup was the motion of the tail, which was honestly fairly easy and fun.
Simply put, the tail trails behind the body of the squirrel. So the first thing I did was use the greasepencil to literally trace the curvature of the squirrels' body through each frame of the cycle. I did this with root motion enabled.
I used this trace as a guideline, and got to work tweaking the X-Rotation values on the tail, I started with the segment closest to the squirrel's body, and worked my way down the other segments. Since in this situation, the squirrel taking somewhat shorter leaps, had to tweak the rotation on the middle bones of the tail to prevent it from "clipping" through the floor.
The motion trail visualizer was helpful here too, I specifically generated trails on the TIP of the tail to get an idea of it's arc.
Other than this, some minor tweaks were made to the ears and eyes to get some small secondary motion. This is the final result.
.png)
.png)
.png)
.png)



















