Blender 3D

Animation attempt 3: F-Curves are a lot more complicated than I expected

For my third exercise in animation with Blender, I chose what I thought would be an easy clip of my subject jumping off a log at the playground. The idea was that the animation would be simple and would provide large-scale movement to test a ponytail with one of the physics modifiers.

This didn’t turn out to be the case. I fell into the “awkward valley” of too much effort for too little polish. Although there was not a lot of motion most of the time, the arm rotation required either a cartoonish simplification or quite a lot of craft to make satisfying. The experience of getting this wrong was very enlightening.

My general workflow was this:

I kept the “root” bone – the bone the entire figure is parented to – stationary, and animated everything else from the torso and working out to the extremities. The initial location was established by positioning the torso and IK feet. From there, I blocked out the main positions, inserting lots of keyframes by eye, and cleaned up, again starting at the torso, using F-curves.

I used IK control for the legs and arms whenever a foot or hand stayed in one spot for any number of frames, and FK the remainder of the time, when their general motion originated from that of the torso.

For the spinning arms at the beginning of the clip, I worked outward from the shoulder bones in FK mode. There’s lots of inertia and balancing to think about in this segment, so the torso and hips had work to do too.

Notes from this round:

Autokeying This was my first try at using automatic keyframe insertion (the red record button in the Timeline Editor). It does save a lot of work, but occasionally inserts a keyframe when I don’t expect it to. Also, it seems a manual keyframe is needed on clearing rotation or location. Need to remember to turn it off or move to the first frame when not wanted (moving lights, camera, stationary objects in the scene).

F-Curve axes Rotating arms involves adjustment of several bones, and adjusting keyframes after blocking out has taught me something about the Graph Editor in Blender: the axes used for F-Curves are not intuitive. They apparently refer to the rest position of the bone. For rotation, this is further complicated by the cumulative effects of rotation around one axis on the other axes (well-illustrated in the Bouncy Ball chapter of Humane Rigging, which also can be found on YouTube).

Lacking a visible reference for the F-Curve coordinates, I went through numerous cycles of tweaking and correcting. I had clearly made an error in assuming that the F-Curves were an easy way to adjust many keyframes at once, especially where rotations are concerned. They’re still great for cleanup, but it saves a lot of work to get the key frames right before heading to the graph editor.

FK vs IK With appropriate constraints added to the armature bones, I think even when hands are in the air, active arm motion might be blocked out more quickly using IK hands. FK still makes sense when the arm motion is mainly to follow the shoulder. I’m not sure whether PitchiPoy’s IK angle control or Rigify’s pole target approach might work better for this. Visual posing becomes more important than I had thought, because the rotation curves in the F-Curve editor are interdependent and so can’t be related to a visual position.

Hiding parts of the mesh To focus on the torso motion, I used a Mask Modifier on the mesh to make the arms, legs, and head temporarily invisible. I made ARMS, LEGS, and HEAD vertex groups, and placed three instances of the mask modifier in the modifier stack, to make all of these groups invisible. The mask modifier can be used to hide (mask) a vertex group, or to hide every part of the mesh except that vertex group. Once the torso was sorted, I disabled the mask on the legs to work on those without the distraction of the legs and head.

This can make test renders a bit disturbing.

I made some progress in the cartoon hair department as well, and I’ll make some notes on that soon.