Animations/ Choreography Essentials

Choreography Essentials

Working with multiple choreographs

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

Phase

Defines how much the local time of an object is shifted. This is often very useful when creating walking legs and other animations where the motions of the both legs are identical, only shifted so that they are in different phase of the cycle.

Frequency

Defines the speed of the local time. Setting Frequency to 3 makes the choreography occur in one-third the number of frames; thus, the movement is 3 times faster. Again, this is often useful if you have objects which should perform identical choreographs, only with different speeds.

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

Extrapolates 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.

Additionally, all of these parameters 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 a sphere near the top left corner of the view window.

2. Set animation recording on and move the sphere horizontally near the top right corner of the view window. You have now created the first choreography for the sphere.

3. In the select window, make sure that the sphere is highlighted, and select 'Add New Choreography' from the pop-up menu. This creates a second choreography for the selected sphere, and makes the new choreography the current choreography. In other words, all further modifications are recorded into this new choreography.

4. Move the sphere downward to the bottom of the view window.

We now have two choreographs. If you now play with the time slider, nothing happens. This is pretty much what you expected since you just modified the sphere in the frame 0.

5. Open the choreography window by selecting 'Animation/Choreographs' from the pull down menu. Click the 'sphere.chor0' choreography slowly two times (or select 'Rename' from the pop-up menu). Replace the 'chor0' string with 'right'. Rename the second choreography to 'down'.


Two choreographs created for the sphere

Note: The yellow circle with the new choreography indicates that the newly created choreography is the 'current choreography'.

6. Click the 'Weight' tab.


Weight controls

These sliders control how strongly the choreographs affect the object.

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

7. Make sure that animation recording is enabled. 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.

8. 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.

9. Move the time slider to the last frame. The define:

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

10. 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:

11. Go to the 'Curves' tab of the choreography window. Select 'Show All Curves' from the popup menu.

You can now see two curves. They indicate how strongly each choreography affects the objects as the time changes.  You can edit these curves directly to fine tune the blending of the choreographs. The figure below shows a better weight curve for the 'down' choreography:
 

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

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.

 

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.


A simple shinbone in the initial 'forward' position

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.

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'.


The structure of the 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 is now ready. Let's animate it.

The original position

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.

The whole leg rotated backwards in frame 20

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.

The shinbone rotated in frame 30

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

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?

If you take a look at the choreography window, the time lines of the both animated objects stop to frame 40.


Choreographs rotating the left leg and shinbone

We already have used time lines in the previous tutorials. In addition to time lines, choreographs define a number of other parameters for controlling timing. You can find these time line related attributes through the choreography window's 'Time Lines' tab (at the bottom edge of the window).

'Periodic' attribute extrapolates the choreography. The time line defines the start and end times for one period (cycle).

9. Set the 'Periodic' attribute for both choreographs and play the animation. The leg keeps walking through the entire animation.

How to create another leg?

10. Select the 'left leg', duplicate it and rename it to 'right leg'.

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

'Phase' defines how much the local time of an object is shifted. This is often very useful when creating animations where one of two identical motions is 'shifted' so that they are in a different phase of the same cycle.

11. Set 'Phase' to 0.5 for both choreographs of the right leg. Play the animation to see how the legs walk.