pymel.core.effects.air

air(*args, **kwargs)

For each listed object, the command creates a new field. The field has a shape which lives in the DAG and it has an associated dependency node. The field is added to the list of fields owned by the object. Use connectDynamic to cause the field to affect a dynamic object. Note that if more than one object is listed, a separate field is created for each object. If fields are created, this command returns the names of each owning shape and of the field shapes themselves. If a field was queried, the results of the query are returned. If a field was edited, the field name is returned. If no object names are provided but the active selection list is non-empty, the command creates a field for every object in the list. If the list is empty, the command defaults to -pos 0 0 0. 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.

Flags:

Long Name / Short Name Argument Types Properties
attenuation / att float ../../../_images/query.gif ../../../_images/edit.gif
  Attentuation rate of field
directionX / dx float ../../../_images/query.gif ../../../_images/edit.gif
   
directionY / dy float ../../../_images/query.gif ../../../_images/edit.gif
   
directionZ / dz float ../../../_images/query.gif ../../../_images/edit.gif
  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.
enableSpread / es bool ../../../_images/query.gif ../../../_images/edit.gif
  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.
fanSetup / fs bool ../../../_images/edit.gif
  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 )
inheritRotation / iro bool ../../../_images/query.gif ../../../_images/edit.gif
  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.
inheritVelocity / iv float ../../../_images/query.gif ../../../_images/edit.gif
  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.
magnitude / m float ../../../_images/query.gif ../../../_images/edit.gif
  Strength of field.
maxDistance / mxd float ../../../_images/query.gif ../../../_images/edit.gif
  Maximum distance at which field is exerted. -1 indicates that the field has no maximum distance.
name / n unicode ../../../_images/query.gif ../../../_images/edit.gif
  name of field
perVertex / pv bool ../../../_images/query.gif ../../../_images/edit.gif
  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 froce is exerted only from the geometric center of the set of points.
position / pos float, float, float ../../../_images/query.gif ../../../_images/edit.gif
  Position in space (x,y,z) where you want to place a gravity field. The gravity 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.
speed / s float ../../../_images/query.gif ../../../_images/edit.gif
  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.
spread / sp float ../../../_images/query.gif ../../../_images/edit.gif
  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.
torusSectionRadius / tsr float ../../../_images/query.gif ../../../_images/edit.gif
  Section radius for a torus volume. Applies only to torus. Similar to the section radius in the torus modelling primitive.
velocityComponentOnly / vco bool ../../../_images/query.gif ../../../_images/edit.gif
  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.
volumeExclusion / vex bool ../../../_images/query.gif ../../../_images/edit.gif
  Volume exclusion of the field. If true, points outside the volume (defined by the volume shape attribute) are affected, If false, points inside the volume are affected. Has no effect if volumeShape is set to none.
volumeOffset / vof float, float, float ../../../_images/query.gif ../../../_images/edit.gif
  Volume offset of the field. Volume offset translates the field’s volume by the specified amount from the actual field location. This is in the field’s local space.
volumeShape / vsh unicode ../../../_images/query.gif ../../../_images/edit.gif
  Volume shape of the field. Sets/edits/queries the field’s volume shape attribute. If set to any value other than none, determines a 3-D volume within which the field has effect. Values are: none,cube,sphere,cylinder,cone,torus.
volumeSweep / vsw float ../../../_images/query.gif ../../../_images/edit.gif
  Volume sweep of the field. Applies only to sphere, cone, cylinder, and torus. Similar effect to the sweep attribute in modelling.
wakeSetup / wks bool ../../../_images/edit.gif
  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
windSetup / wns bool ../../../_images/edit.gif
  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 Flag can have multiple arguments, passed either as a tuple or a list.

Derived from mel command maya.cmds.air

Example:

import pymel.core as pm

pm.air( name='particle1', m=5.0, mxd=2.0 )
# Result: nt.AirField(u'particle1') #
# Creates an air field with magnitude 5.0 and maximum distance 2.0,
# and adds it to the list
# of fields particle1 owns.

pm.air( wakeSetup=True )
# Creates an air field with no no velocity in and of itself (magnitude = 0).
# All of the air's
# velocity is derived from the motion of the objects that own the field.