Advanced Character Control with Animation ControllersFriday, January 12, 2018 2:15 AM
Animation Controllers are a powerful addition to the animation toolkit of Creature. They allow for the blending/interpolation of any combination of Bone + Mesh Motor values over a 2D parametric space. This allows for some very sophisticated effects to be achieved, including Morph Pose Targeting, Muscle Pose Activation and more.
Demo of Animation Controllers
Watch this video of a Utahraptor dinosaur animated using the power + flexibility of Animation Controllers:
( Artwork: Fred Wierum, License: Creative Commons Attribution-Share Alike 4.0 International license, Source here )
In the animation above, Animation Controllers were use to capture both shape ( from IK and FK bone posing ) and Muscle/Flesh parameters ( From Bone Physics and Soft Body Mesh Motors ) as 3 separate poses. The result was generated by animating across the captured pose spaces, allowing for compelling Morph target blending and muscle/flesh response effects.
Video Tutorial Series
- Introduction: Learn about Animation Controllers and how to do Pose Target Morphing for a front facing character here.
Why Animation Controllers
To understand the reasoning behind such a feature, consider an example of animating a front facing character with pseudo/fake 3D head turning. In this case, you will most probably achieve a head turning pose via the Mesh Grid Motor ( keyframing the different head turning poses via Free Form Mesh Deformation ). If you wanted to animate a full head turning sequence, you will have to keyframe the entire sequence, possibly repeating animation knots along the way if you are having the character face a certain angle multiple times during the animation timeline.
The problem is quite apparent: This method is not scalable and gets very messy as you start putting in more complicated motions. It helps to step back a bit and consider what you actually want: The ability to pose at a high level the head pose and then morph/blend to another pose. In other words, you want to have the ability to animate along the concept of poses, not keyframing points. This is a high level animation controller concept. You are now keyframing pose targets instead of actually keyframing the hundreds of points along the Mesh Grid Motor.
The Solution: Animation Controllers
With Animation Controllers, you have to ability to capture poses, parameters etc. from any combination of mesh + bone motors. This means you can capture a character with a Mesh Grid Motor looking Left, Right, Up, Down etc. into different Poses of the Animation Controller. These Poses are captured into either a Line or Polygon shape. You can then simply drag a point along the Line or Polygon to blend/interpolate between the poses you want. Any point in between the vertices of the shape will be a blend of all the surrounding poses. This allows for the smooth generation of new poses from existing poses, as well as much simplifying the animation process. In addition to that, you can add the Animation Controller into the Animation Timeline. It will show the interpolation knots/curves of just either 1 ( for a Line ) or 2 ( for a Polygon ) parameters. This again makes the entire character animation process much simpler and a lot more flexible.
When to use Animation Controllers
Animation Controllers are perfect for high level character control. Here are some situations you should consider setting up your character with them:
Animating Pseudo 3D Front Facing Animation You capture different head turn poses of a Mesh Grid Motor into an Animation Controller. Then you easily animate with the controller instead of dragging points manually over keyframes.
Muscle/Flesh Activation or Response You associate different stiffness/damping properties of various Bone Bend Physics and Mesh SoftBody Motors with the poses of your Animation Controller. Then you can animate the controller simulating tense or loose muscle responses. You can even associate physics parameters with actual shapes of a limb ( say with IK or FK ) allowing for some very sophisticated organic flesh/muscle animations.
These are just some examples of when Animation Controllers can be very useful. In general, whenever you want to associate a large group of motor parameters with a certain pose of a character, consider using Animation Controllers to more easily manage your character.
First, open up the Animation Controllers window in Animation Mode:
Animate -> Motors/Swaps/Effects -> Animation Controllers
The Animation Controllers window will now show up:
There are 3 main modes available: Create, Capture and Animate.
You create and remove Animation Controllers here. The following functions are available:
- New Controller - Adds a new Animation Controller
- Remove Controller - Removes the selected Animation Controller
- Rename Controller - Rename the selected Animation Controller
Each Animation Controller is basically an entity that allows you to parametrically blend between the properties of a combination of Bone & Mesh Motors. The blending occurs on either a Polygon or Line shape. Each vertex of the controller represents a captured Pose where a Pose contains the values of all properties of the controller's motors when captured in time.
So to get started:
- Click on New Controller to add add a new controller
- Pick the blend shape you want: Polygon or Line
Polygon vs Line Shapes
The choice of using either a Polygon or Line shape for your Animation Controller is dependent on the type of blending effect you want to achieve. If you want your poses to be blended only with respect to 2 neighbouring poses, pick the Line Shape. If you are going for something like Pose Morphing of a 3D effect ( Face turning etc. ), you probably want to pick the Polygon shape. This allows blending between all poses of the controller.
General Settings for Controller, adding Motors
First, you want to add either Bone or Mesh motors to be driven by your controller. On the panel on the right:
You have 2 tabs, Bone Motors and Mesh Motors. With Bone Motors active, go back to your character in the main animation window and select any number of bones. Then go back to the Animation Controllers window and click on the Add selected Motors button. Similarly to add Mesh Motors, make sure the Mesh Motors tab is activated, then go into the main window, select your mesh ( make sure you are in Mesh Animation Submode as well in the main window ), and click Add selected Motors. You will see the list get populated with your selected motors.
Next, you can configure the number of points on your controller shape. This determines the number of poses the controller is expecting to drive your final animation. The maximum number you can set for a controller is 12.
For the Polygon shape, there is an additional Rest Pose property that can be checked/enabled. This will give you an additional point in the center of your Polygon shape. It acts as an optional rest pose to be captured for your animation.
Capture Mode is where you capture the different motor parameters as Poses into your controller. It is very simple to use:
- Select your Animation Controller in the controllers list
- Select a vertex on your controller shape
- Go into the main animation window and jump to the desired frame of animation to capture
- Return to the Animation Controllers window, and click the Capture button to capture that pose, give it a reasonable name describing that pose.
You should do this for every single unassigned vertex/pose in your controller. There are also buttons to remove and rename poses of your controller. Once all the poses have been captured, you are ready to begin animating with your controller.
To begin animating with your Animation Controller, go into Animate Mode. After selecting the controller you want to animate with, you should see your controller shape together with a draggable circle. This circle represents the animated controller blending point.
Here are the steps to animate with your controller:
- Select your Animation Controller in the controllers list
- Enable your controller by checking the Active toggle
- Now drag the controller point around your controller shape. You should see changes to your character pose if you captured motors like FK/IK or Mesh Grid(s). If you captured physics motors like Bend Physics, you are blending the physics parameters so play the animation to observe the difference.
Everytime you drag the controller point around, you create a new controller keyframe. You an jump between keyframes by clicking on the previous/next keyframe buttons on the right panel. There are other options as well to manage your controller animation:
- Jump to Previous Keyframe - Jumps the animation to the previous closest keyframe
- Jump to Next Keyframe - Jumps the animation to the next closest keyframe
- Remove Knot at current Time - Removes the keyframe knot at the current time
- Copy Knots at current Time - Copies the animation knots at the current time
- Paste Knots at current Time - Pastes the copied knots to the current time
- Knots & Spines - Adds the animation knots/curve of the controller to the main window Animation Knots/Spline Curve Timeline. Note: For a Polygon you will have 2 curves (X and Y ). For a Line only the X curve is relevant, the Y is ignored.