1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135

8

switching between several controllers over time, possibly subject to some form of transition

requirements.


Early versions of controllers for animation used force and torque functions, specified either by the

user [Wil86] [AGL87] [FW88] or based on measured or observed data [MZ90] [Mil88].

Other

controllers are based on state machines, dividing the motion into a number of phases, each of

which is represented by a single state.

Controllers are designed by hand in many cases [RH91]

[SC92]

[HSL92]

[H+95].

Hand-designed

controllers

require

the

use

of

carefully

chosen

parameters to simplify the control program and are typically specific to a particular type of motion

(e.g. hopping).

Controllers can also be automatically synthesized.

Automatic synthesis uses various stochastic

search strategies to explore the space of possible controllers [VF93] [vKF94] [vKF94b] [vL95]

[NM93] [A+95] [Sim94] [GT95]. Each controller is assigned a fitness value which characterizes

its "goodness" and a mechanism is provided for keeping and refining good controllers and

eliminating poor ones. In [Sim94], the structure of the creature itself is allowed to evolve, as well

as the controller.

Current automatic synthesis techniques are best at finding controllers for

relatively stable creatures and motions such as a crawling ant or motion in a single plane.

This is

because they rely on the fact that a good first guess can be stochastically determined with a

reasonable amount of computation. A relatively smooth fitness function is also typically required

to allow incremental progress toward an acceptable solution.

Unstable motions such as human

walking do not meet these requirements since the solution space is exceedingly small compared to

that of a more stable creature and motion, especially when motion in 3 dimensions is desired.


The use of motion controllers increases the autonomy of the creature being animated, thereby

requiring

less

direct

animator

intervention

as

compared

to

kinematic

and

trajectory-based

approaches. The cost of this increased autonomy is in the degree of control the animator has over

[CONVERTED BY MYRMIDON]