Graphics Reference
In-Depth Information
Interacting with other members
A member interacts with other members of the flock to maintain separation without collision while
trying to maintain membership in the flock. There is an attractive force toward other members of
the flock while a stronger, but shorter range, repulsion from individual members of the flock exists.
In analyzing the behavior of actual flocks, Potts [ 33 ] observed a chorus line effect in which a wave
motion travels faster than any rate chained reaction time could produce. This may be due to perception
extending beyond a simple closest-neighbor relationship.
Interacting with the environment
The main interaction between a flock member and the environment is collision avoidance, for which
various approaches can be used. Force fields are the simplest to implement and give good results in
simple cases. However, in more demanding situations, force fields can give undesirable results. The
trade-offs of various strategies are discussed later, under the section Collision Avoidance.
Global control
There is usually a global goal that is used to control and direct the flock. This can be used to influence
all members of the flock or to influence just the leader. The animation of the current leader of the flock
is often scripted to follow a specific path or is given a specific global objective. Members can have a
migratory urge, follow the leader, stay with the pack, or exhibit some combination of these urges.
Flock leader
To simulate the behavior of actual flocks, the animator can have the leader change periodically. Pre-
sumably, actual flocks change leaders because the wind resistance is strongest for the leader and rotat-
ing the job allows the birds to conserve energy. However, unless changing the flock leader adds
something substantive to the resulting animation, it is easier to have one designated leader whose
motion is scripted along a path to control the flock's general behavior.
Negotiating the motion
In producing the motion, three low-level controllers are commonly used. They are, in order of priority,
collision avoidance, velocity matching, and flock centering. Each of these controllers produces a direc-
tive that indicates desired speed and direction (a velocity vector). The task is to negotiate a resultant
velocity vector given the various desires.
As previously mentioned, control can be enforced with repulsion from other members and environ-
mental obstacles and attraction to flock center. However, this has major problems as forces can cancel
each other out. Reynolds refers to the programmatic entity that resolves competing urges as the nav-
igation module . As Reynolds points out, averaging the requests is usually a bad idea in that requests can
cancel each other out and result in nonintuitive motion. He suggests a prioritized acceleration allocation
strategy in which there is a finite amount of control available, for example, one unit. A control value is
generated by the low-level controllers in addition to the velocity vector. A fraction of control is allo-
cated according to priority order of controllers. If the amount of control runs out, then one or more of
the controllers receives less than what they requested. If less than the amount of total possible control is
allocated, then the values are normalized (e.g., to sum to the value of one). A weighted average is then
used to compute the final velocity vector. Governors may be used to dampen the resulting motion by
clamping the maximum velocity or clamping the maximum acceleration.
Search WWH ::




Custom Search