Choreography Essentials

Each animation choreography can be controlled through a set of parameters. Therefore, in many cases it is often better to record different kinds of animation effects as separate choreographs. For example, a bouncing sphere animation can be accomplished by combining two motions: the forward movement and the bounce movement. If created in this way, such choreographs can be used to make many types of "bouncing sphere" animations by editing the parameters of the choreography rather than keyframing a new animation.

In addition to its time line, a choreography has a number of other parameters that can be used to control timing.

Parameter Name

Description

Weight

Controls how strongly a certain choreography affects an object. For example, you could create a mouth movement that consists of 10% of the 'smile' and 40% of the 'open mouth' choreographs.

Periodic

Repeats the choreography. The time line is used to define the start and end times for one period (cycle). For example, record one 'bounce' cycle for a sphere, and make it bounce all the time by setting this option.

Active

Turns a choreography on/off. Often, it is easier to add new motion components when other components are turned off.

The weight parameter can be animated. For example, a talking head can be created by animating the weight parameters of various basic expressions.

Animating weights

Each choreography can be assigned a weight, which controls how strongly it affects an object. To see how this works in practice, we'll create a sphere with motion defined by two separate choreographs.

1. Create an analytic sphere near the top left corner of the view window.

2. Select Make Choreographable from the popup menu of the select window.

3. Open the choreography window and select the 'sphere.init0' choreography. Select New/Pose from the popup menu of the choreography window.

4. Double click the init choreography to open its sub structure. Select the pose choreography under it.

5. Go to the Animateable Attributes tab, find and select Translate from the attribute list and check Animated.

6. Move the sphere horizontally near the top right corner of the view window. You have now created the first choreography for the sphere. Apply the Rename tool of the popup menu to change the name of the pose choreograph to 'right'.

Add Translate attribute to the pose

7. Go to the Weights tab and try the sphere.pose1 weight slider. The sphere moves between its original position and the new position. Leave the weight slider to zero.

8. Select New/Pose again. By default, it inherits the attributes of previous choreographs. The new choreography is automatically the current choreography (a little yellow triangle on the choreography window marks it), and therefore new posing actions will be stored to it. So, just move the sphere vertically to the bottom left corner of the view window. Rename the second choreography as 'Down'.

We now have two choreographs. If you now play with the time slider, nothing happens, because the poses just define static attribute states, which do not depend on the time.

By combining these two choreographs with different weights, you can create 'bouncing sphere' animations easily. For example:

Two choreographs created for the sphere

9. Select New/keyframer from the popup menu. Then enable animation recording. The weight modifications presented below will be recorded to the keyframe choreography.

10. In the first frame, set:

  • sphere.right = 0
  • sphere.down= 0

Since the effect of both choreographs is now zero, the sphere returns back to its original position near the left top corner of the view window.

10. Move the time slider to half way in time and set weight sliders to:

  • sphere.right = 0.5
  • sphere.down= 1

This takes 50% of 'right' position and 100% of 'down' position.

11. Move the time slider to the last frame. Then define:

  • sphere.right = 1
  • sphere.down= 0

12. Turn animation recording off and play the animation. You can now see the result of the two blended choreographs: the sphere travels along a curved path across the screen.

We can improve the result by editing the weight curves as follows:

13. Go to the Weight Curves tab of the choreography window. You can now see two curves. They indicate how strongly each choreography affects the objects as the time changes.

14. You can edit these curves directly to fine tune the blending of the choreographs. The weight curve for 'right' choreography is OK, but change the type of the 'Down' curve to Bezier from the popup menu of the curve graph. The figure below shows a better weight curve for the 'down' choreography - it is easy to edit the Bezier curve to this kind of shape.

The strength of the first choreography increases with time. In other words, the 'right' choreograph affects more and more as the time proceeds, making the object to move vertically. The 'down' weight curve has a peak in the middle of the animation. This makes the sphere to fall down and bounce back. The combination is a moving and bouncing sphere.

Bouncing created by animating weights of 'right' and 'down' choreographs

Hierarchical animations

In the modeling specific tutorials we have demonstrated how geometric objects can be constructed to hierarchical structures using level objects. For example, you can create a 'leg' object, which consists of two sub objects: a thighbone and a shinbone.

Correspondingly, you can attach a choreography to the entire level object and another choreography to the its children.

To demonstrate this, let's create walking legs.

Tutorial level: Medium

Example project: 'tutorprojects\animations\gettingstarted\walking legs'

First, we need to create a leg consisting of two sub objects: a shinbone and a thighbone.

1. Create a simple object representing shinbone (for example, edit a SDS cube). Move the pivot point to the kneecap (the leg object will be rotated about the knee).Tip: you can use the Insert key to activate the pivot move tool.

2. Luckily the thighbone looks pretty much like the shinbone. So, duplicate the shinbone and move it upwards so that the lower endpoint of the thighbone matches the upper endpoint of the shinbone.

A simple shinbone in the initial 'forward' position
The structure of the leg

3. Now select both the objects and apply 'Drop to a level' from the select window's pop-up menu. This creates a new level object and drops the selected bones inside the level. You can rename the new level object as 'left leg'.

4. Move the pivot point of the 'left leg' to the hip. We do this because the entire leg will be rotated about the hip.

The hierarchical leg model, in its initial position, is now ready. Let's animate it.

5. Set animation recording on, jump to frame 20 and use rotation handles to rotate 'left leg' about its hip so that the leg now represents its back position.

6. Jump to frame 40 and rotate 'left leg' back to its original position.

7. Now, jump to frame 30 and rotate the shinbone so that it represents the back position.

8. Go to frame 40 and rotate the shinbone back to its original position.

The whole leg rotated backwards in frame 20
The shinbone rotated in frame 30

Reset animation recording and play the animation. The shinbone rotates about the kneecap while the entire leg rotates about the hip. Because of hierarchical construction, the parameters used for rotating the shinbone are rotated with the thighbone.

However, the leg takes only one step! As soon as the time reaches the last key frame 40, the leg stops. How can we make the leg walking all the time?

9. Select the left leg object and open the choreography window. Go to the Time Lines Tab. Open the time lines of the left leg and the shinbone, as well as the time lines of the included keyframe choreographs. Although the time lines cover the entire animation, there are keys only during the first 41 frames.

Choreographs rotating the left leg and shinbone

10. First we normalize the time lines so that they correspond the actual key range. Click the end knob of keyfr1 timeline under the left leg:init0 timeline. Press Shift key down and click the end knob of the keyfr1 timeline of the shinbone object. Now both end knobs should be selected. Press also the Alt key down; then Alt-Shift-drag the end knobs to the frame 40. Then you can release the hotkeys. Dragging with the Alt key down scales a timeline but does not scale the underlying keys.

Note that it does not matter, which choreography item is selected when you drag the time line knobs in the time line graph. However, the numeric Start and End fields at the bottom of the window show the properties of the selected choreography, and therefore selecting a choreography before dragging its time line knob helps to make the operation accurate.

Keyframe time lines normalized and made periodic

11. Select the left leg/keyfr1 choreography and set the Periodic option from the bottom of the choreography window. Set Periodic for the shinbone/keyfr1, too. Play the animation. The leg object now repeats its motion several times.

How to create another leg?

12. On the select window, select the left leg object and apply the Duplicate tool from the popup menu. Rename the copy as to 'right leg'.

Now we have a new problem. We have two identical legs, which also function identically.

13. Multi select the left leg and the right leg. Go back to the choreography window. Select the choreography right leg/keyfr1. Then click in the middle if its time line to select it. Shift click the time line of the choreography right leg/shinbone/keyfr1 to multi select it, too. Then Shift drag both time lines to the right until they start from the frame 20.

14. You can now close the choreography window. As the final step, take a top view and move the legs slightly apart from each other. Play the animation to see how the legs walk.

Time lines of the right leg shifted