air is undoable, queryable, and editable.
The air field simulates the effects of moving air. The affected
objects will be accelerated or decelerated so that their velocities
match that of the air. With the '-vco true' flag thrown, only
accelerations are applied. By parenting an air field to a moving
part of an object (ie. a foot of a character) and using '-i 1 -m 0
-s .5 -vco true' flags, one can simulate the movement of air around
the foot as it moves, since the TOTAL velocity vector of the field
would be only based on the movement of the foot. This can be done
while the character walks through leaves or dust on the ground. For
each listed object, the command creates a new field. The transform
is the associated dependency node. Use connectDynamic to cause the
field to affect a dynamic object. If fields are created, this
command returns the field names. If a field was queried, the
results of the query are returned. If a field was edited, the field
name is returned. If the -pos flag is specified, a field is created
at the position specified. If not, if object names are provided or
the active selection list is non-empty, the command creates a field
for every object in the list and calls addDynamic to add it to the
object; otherwise the command defaults to -pos 0 0 0. Setting the
-pos flag with objects named on the command line is an error.
In query mode, return type is based on queried flag.
Long name (short name) |
Argument types |
Properties |
position(pos) |
[linear, linear, linear] |
|
|
Position in space where you want to place a field. The field
then emanates from this position in space rather than from an
object. Note that you can both use -pos (creating a field at a
position) and also provide object names. |
|
magnitude(m) |
float |
|
|
The speed along the direction vector that the air is moving.
Use this in conjunction with the -dx -dy -dz flags. |
|
attenuation(att) |
float |
|
|
Attentuation rate of field The air field attenuates so as to
taper the field's magnitude to zero when the maximum distance is
reached. Thus, attenuation has no effect unless useMaxDistance is
true and a positive maximum distance has been set. |
|
maxDistance(mxd) |
linear |
|
|
Maximum distance at which field is exerted. -1 indicates that
the field has no maximum distance. |
|
name(n) |
string |
|
|
perVertex(pv) |
boolean |
|
|
Per-vertex application. If this flag is set true, then each
individual point (CV, particle, vertex,etc.) of the chosen object
exerts an identical copy of the force field. If this flag is set to
false, then the force is exerted only from the geometric center of
the set of points. |
|
directionX(dx) |
float |
|
|
directionY(dy) |
float |
|
|
directionZ(dz) |
float |
|
|
Direction that the air will try to match the affected
particles' velocity to. NOTE: This is not the velocity; this is
only the direction. Use the -s flag to set the speed. |
|
speed(s) |
float |
|
|
How fast the affected objects' speed reaches the speed (based
on the -mag, -dx, -dy, -dz flags) of the air field. This value gets
clamped internally to be between 0.0 and 1.0. A value of 0.0 will
make the air field have no effect. A value of 1.0 will try to match
the air field's speed much quicker, but not necessarily
immediately. |
|
inheritVelocity(iv) |
float |
|
|
Amount (from 0 to 1) of the field-owner's velocity added to the
vector determined by the direction and speed flags. The combination
of these two vectors makes up the TOTAL velocity vector for the air
field. This allows the air to be determined directly by the motion
of the owning object. |
|
velocityComponentOnly(vco) |
boolean |
|
|
If this is 'false', the air will accelerate or decelerate the
affected objects so that their velocities will eventually match the
TOTAL velocity vector of the air field. If this is 'true', only
ACCELERTION is applied to the affected objects so that their
velocity component along the TOTAL velocity vector matches or is
greater in magnitude than the TOTAL velocity vector. This will not
slow objects down to match velocities, only speed them up to match
components. This is most useful when using the -iv flag with a
value >0. |
|
inheritRotation(iro) |
boolean |
|
|
If this is set to 'true', then the direction vector described
with -dx, -dy, and -dz will be considered local to the owning
object. Therefore, if the owning object's transform undergoes any
rotation (by itself or one of its parents), the direction vector of
the air field will undergo that same rotation. |
|
spread(sp) |
float |
|
|
This represents the angle from the direction vector within
which objects will be affected. The values are in the range of 0 to
1. A value of 0 will result in an effect only exactly in front of
the air field along the direction vector. A value of 1 will result
in any object in front of the owning object, 90 degrees in all
direction from the direction vector. |
|
enableSpread(es) |
boolean |
|
|
This tells the system whether or not to use the spread angle
given by '-sp'. If this is 'false' then all connected objectswithin
the maximum distance will be affected. Also, if this is set to
'false', all affected objects are forced to match their velocities
along the direction vector. If this is set to 'true' and spread is
used, then the direction of the force is along the direction from
the field to the object. |
|
windSetup(wns) |
boolean |
|
|
This will set some of the values above in a way that
approximates the effects of a basic wind. This allows the user to
then change certain values as he/she wishes on the same command
line. First the preset values get set, and then any other flags
that were passed get taken into account. These are the values that
get set to approximate 'wind': inheritVelocity 0.0 inheritRotation
true componentOnly false enableSpread false |
|
fanSetup(fs) |
boolean |
|
|
Similar to 'windSetup' except that the effects of a fan or a
person blowing air are approximated. The user can pass the same
flags on the command line to adjust them from the defaults. These
are the values that get set to approximate a 'fan': inheritVelocity
1.0 inheritRotation true componentOnly false enableSpread true
spread .5 (45 degrees from center ) |
|
wakeSetup(wks) |
boolean |
|
|
Like the 'windSetup' and 'fanSetup', 'wakeSetup' sets certain
values in the field to approximate the movement of air near a
moving object, such as a character's foot or hand. The values that
are set are: inheritVelocity 1.0 inheritRotation false
componentOnly true enableSpread false speed 0.0 |
|