Public Types | Public Member Functions | Protected Member Functions

MFnMotionPath Class Reference

This reference page is linked to from the following overview topics: Appendix D: Frequently asked questions.


Search for all occurrences

Detailed Description

Motion path animation function set.

This class is used for constructing and manipulating motion path animation.

Motion path animation requires a curve (or surface) and one or more other objects. During the animation, the objects will be moved along the curve.

Setting "follow" for the motion path aligns the object(s) local axis to the tangent of the motion path. Banking can also be applied to objects.

Motion path markers are points along the path where the orientation and position for the object(s) travelling along the path can be specified.

Examples:

motionPathCmd.cpp.

#include <MFnMotionPath.h>

Inheritance diagram for MFnMotionPath:
Inheritance graph
[legend]

List of all members.

Public Types

enum  Axis { kXaxis, kYaxis, kZaxis }
 

Available axes.

More...

Public Member Functions

virtual MFn::Type type () const
 Function set type.
virtual ~MFnMotionPath ()
 Destructor.
 MFnMotionPath ()
 Default constructor.
 MFnMotionPath (MObject &object, MStatus *ReturnStatus=NULL)
 Constructor.
MObject create (const MDagPath &pathObject, const MDagPath &objectToAnimate, MTime &timeStart, MTime &timeEnd, MDGModifier *modifier=NULL, MStatus *ReturnStatus=NULL)
 Create a new motion path dependency node.
MStatus setPathObject (const MDagPath &pathObject, MDGModifier *modifier=NULL)
 Set the curve or surface for this motion path.
MDagPath pathObject (MStatus *ReturnStatus=NULL)
 Return a dag path to the motion path object.
MStatus addAnimatedObject (const MDagPath &objectToAnimate, MDGModifier *modifier=NULL)
 Add an object to be animated along this motion path.
MStatus getAnimatedObjects (MDagPathArray &array)
 Returns an array of dag paths to the animated objects for this motion path.
MStatus setFollow (bool on, MDGModifier *modifier=NULL)
 Setting follow on will cause the animated object(s) local axis to be aligned with the tangent of the motion path.
bool follow (MStatus *ReturnStatus=NULL) const
 Determines whether follow is set for this motion path node.
MStatus setFollowAxis (Axis axis)
 Sets the axis of the animated object that will follow the motion path.
Axis followAxis (MStatus *ReturnStatus=NULL)
 Return the follow axis for this motion path.
MStatus setUpAxis (Axis axis)
 Set the up-axis for this motion path.
Axis upAxis (MStatus *ReturnStatus=NULL)
 Return the up-axis for this motion path.
MStatus setBank (bool bank)
bool bank (MStatus *ReturnStatus=NULL) const
 Determines whether bank has been enabled for this motion path.
MStatus setBankScale (double bankScale)
 Set the bank scale for this motion path.
double bankScale (MStatus *ReturnStatus=NULL)
 Return the bank scale for this motion path.
MStatus setBankThreshold (double bankThreshold)
 Set the bank threshold for this motion path.
double bankThreshold (MStatus *ReturnStatus=NULL)
 Return the bank threshold for this motion path.
MStatus setUseNormal (bool use)
 If true, enables alignment of the up axis of the animated object to the normal vector of the path geometry.
bool useNormal (MStatus *ReturnStatus=NULL)
 Determines whether the up-axis of the animated object for this motion path is aligned with the normal vector of the path geometry.
MStatus setInverseNormal (bool invert)
 If true, enable alignment of the up axis of the moving object(s) to the opposite direction of the normal vector of the path geometry.
bool inverseNormal (MStatus *ReturnStatus=NULL)
 Determines whether the up-axis of the animated object for this motion path is aligned to the opposite direction of the normal vector of the path geometry.
MStatus setUStart (double start)
 Sets the starting value of the u parameterization for the animation.
MStatus setUEnd (double end)
 Sets the end value of the u parameterization for the animation.
double uStart (MStatus *ReturnStatus=NULL)
 Returns the starting value of the u parameterization for the animation.
double uEnd (MStatus *ReturnStatus=NULL)
 Returns the end value of the u parameterization for the animation.
MStatus setUTimeStart (MTime &start)
 Sets the starting time of the animation for the u parameter.
MStatus setUTimeEnd (MTime &end)
 Sets the end time of the animation for the u parameter.
MTime uTimeStart (MStatus *ReturnStatus=NULL)
 Returns the start time of the animation for the u parameter.
MTime uTimeEnd (MStatus *ReturnStatus=NULL)
 Returns the end time of the animation for the u parameter.
unsigned int numPositionMarkers (MStatus *ReturnStatus=NULL)
 Returns the number of position markers on this motion path.
MObject getPositionMarker (unsigned int, MStatus *ReturnStatus=NULL)
 Gets the position marker where markerNum is the order in which the marker was created.
unsigned int numOrientationMarkers (MStatus *ReturnStatus=NULL)
 Returns the number of orientation markers on this motion path.
MObject getOrientationMarker (unsigned int, MStatus *ReturnStatus=NULL)
 Gets the orientation marker where markerNum is the order in which the marker was created.
 MFnMotionPath (const MObject &object, MStatus *ReturnStatus=NULL)
 Constructor.

Protected Member Functions

virtual const char * className () const
 Class name.

Member Enumeration Documentation

enum Axis

Constructor & Destructor Documentation

MFnMotionPath ( MObject object,
MStatus ReturnStatus = NULL 
)

Constructor.

Class constructor that initializes the function set to the given MObject.

Parameters:
[in]objectThe MObject to attach the function set to
[out]ReturnStatusthe return status
Status Codes:
MFnMotionPath ( const MObject object,
MStatus ReturnStatus = NULL 
)

Constructor.

Class constructor that initializes the function set to the given MObject.

Parameters:
[in]objectThe MObject to attach the function set to
[out]ReturnStatusthe return status
Status Codes:

Member Function Documentation

MFn::Type type ( ) const [virtual]

Function set type.

Return the class type : MFn::kMotionPath.

Reimplemented from MFnDependencyNode.

const char * className ( ) const [protected, virtual]

Class name.

Return the class name : "MFnMotionPath".

Reimplemented from MFnDependencyNode.

MObject create ( const MDagPath pathObject,
const MDagPath objectToAnimate,
MTime timeStart,
MTime timeEnd,
MDGModifier modifier = NULL,
MStatus ReturnStatus = NULL 
)

Create a new motion path dependency node.

When a motion path node is created, the following defaults are set:

  • Follow OFF
  • Bank OFF
  • BankScale 1.0
  • BankThreshold 0.5 * PI
Parameters:
[in]pathObjectthe curve, surface, or curve-on-surface to use as the object path
[in]objectToAnimatethe object that will follow the motion path
[in]timeStartthe time at which to start the animation
[in]timeEndthe time at which to end the animation
[in]modifierthis object will hold the undo information
[out]ReturnStatusStatus Code
Returns:
The new motion path node
Status Codes:
Examples:
motionPathCmd.cpp.
MStatus setPathObject ( const MDagPath pathObject,
MDGModifier modifier = NULL 
)

Set the curve or surface for this motion path.

All animated objects for this motion path will follow the new path that is specified.

Parameters:
[in]pathObjectThe curve (or surface) that will be the motion path
[in]modifierThe object that will hold the undo information
Returns:
Status Code
Status Codes:
MDagPath pathObject ( MStatus ReturnStatus = NULL)

Return a dag path to the motion path object.

The motion path object is the curve/surface that animated objects of this node will move along.

Parameters:
[out]ReturnStatusStatus Code
Returns:
The dag path of the motion path object
Status Codes:
MStatus addAnimatedObject ( const MDagPath objectToAnimate,
MDGModifier modifier = NULL 
)

Add an object to be animated along this motion path.

Parameters:
[in]objectToAnimateA DAG path to the animated object
[in]modifierThe object that will hold the undo information
Returns:
Status Code
Status Codes:
MStatus getAnimatedObjects ( MDagPathArray array)

Returns an array of dag paths to the animated objects for this motion path.

Parameters:
[out]arrayStorage for the dag paths.
Returns:
Status Code
Status Codes:
MStatus setFollow ( bool  on,
MDGModifier modifier = NULL 
)

Setting follow on will cause the animated object(s) local axis to be aligned with the tangent of the motion path.

The default alignment axis is Y.

Parameters:
[in]onSpecifies whether follow is activated for this motion path
[in]modifierThe object that will hold the undo information
Returns:
Status Code
Status Codes:
bool follow ( MStatus ReturnStatus = NULL) const

Determines whether follow is set for this motion path node.

Parameters:
[out]ReturnStatusStatus Code
Returns:
  • true Follow is turned on
  • false Follow is turned off
Status Codes:
MStatus setFollowAxis ( MFnMotionPath::Axis  axis)

Sets the axis of the animated object that will follow the motion path.

Possible alignment parameters are kXaxis, kYaxiz, or kZaxis.

Parameters:
[in]axisObject axis to align with motion path tangent
Returns:
Status Code
Status Codes:
MFnMotionPath::Axis followAxis ( MStatus ReturnStatus = NULL)

Return the follow axis for this motion path.

Parameters:
[out]ReturnStatusStatus Code
Returns:
The follow axis.
Status Codes:
MStatus setUpAxis ( MFnMotionPath::Axis  axis)

Set the up-axis for this motion path.

Parameters:
[in]axisAxis to be set
Returns:
Status Code
Status Codes:
MFnMotionPath::Axis upAxis ( MStatus ReturnStatus = NULL)

Return the up-axis for this motion path.

Parameters:
[out]ReturnStatusStatus Code
Returns:
The up-axis for this motion path
Status Codes:
MStatus setBank ( bool  bank)
Parameters:
[in]bankSpecifies whether bank is turned on
Returns:
Status Code
Status Codes:
bool bank ( MStatus ReturnStatus = NULL) const

Determines whether bank has been enabled for this motion path.

Parameters:
[out]ReturnStatusStatus Code
Returns:
  • true Bank is enabled
  • false Bank is disabled
Status Codes:
MStatus setBankScale ( double  bankScale)

Set the bank scale for this motion path.

If the computed bank angles are not large enough, the user can specify the bankScale to amplify them. The default value is 1.

Positive bankScale produces inward bank angle, negative bankScale produces outward bank angle.

Parameters:
[in]bankScaleThe new bank scale value
Returns:
Status Code
Status Codes:
double bankScale ( MStatus ReturnStatus = NULL)

Return the bank scale for this motion path.

Parameters:
[out]ReturnStatusStatus Code
Returns:
The bank scale.
Status Codes:
MStatus setBankThreshold ( double  bankThreshold)

Set the bank threshold for this motion path.

The bank threshold is used to specify the maximum bank angle. The default value is 90 degrees.

Parameters:
[in]bankThresholdThe new bank threshold value
Returns:
Status Code
Status Codes:
double bankThreshold ( MStatus ReturnStatus = NULL)

Return the bank threshold for this motion path.

The bank threshold is used to specify the maximum bank angle. The default value is 90 degrees.

Parameters:
[out]ReturnStatusStatus Code
Returns:
The bank threshold.
Status Codes:
MStatus setUseNormal ( bool  use)

If true, enables alignment of the up axis of the animated object to the normal vector of the path geometry.

Parameters:
[in]useSpecifies if normal is used
Returns:
Status Code
Status Codes:
bool useNormal ( MStatus ReturnStatus = NULL)

Determines whether the up-axis of the animated object for this motion path is aligned with the normal vector of the path geometry.

Parameters:
[out]ReturnStatusStatus Code
Returns:
  • true Normal vector is used for object alignment.
  • false Normal vector is not used for object alignment.
Status Codes:
MStatus setInverseNormal ( bool  invert)

If true, enable alignment of the up axis of the moving object(s) to the opposite direction of the normal vector of the path geometry.

Parameters:
[in]invertSpecifies if inverse normal is used
Returns:
Status Code
Status Codes:
bool inverseNormal ( MStatus ReturnStatus = NULL)

Determines whether the up-axis of the animated object for this motion path is aligned to the opposite direction of the normal vector of the path geometry.

Parameters:
[out]ReturnStatusStatus Code
Returns:
  • true Inverse normal vector is used for object alignment.
  • false Inverse normal vector is not used for object alignment.
Status Codes:
MStatus setUStart ( double  start)

Sets the starting value of the u parameterization for the animation.

Parameters:
[in]startthe new start value
Returns:
Status Code
Status Codes:
MStatus setUEnd ( double  end)

Sets the end value of the u parameterization for the animation.

Parameters:
[in]endthe new end value
Returns:
Status Code
Status Codes:
double uStart ( MStatus ReturnStatus = NULL)

Returns the starting value of the u parameterization for the animation.

Parameters:
[out]ReturnStatusStatus Code
Returns:
The starting value
Status Codes:
double uEnd ( MStatus ReturnStatus = NULL)

Returns the end value of the u parameterization for the animation.

Parameters:
[out]ReturnStatusStatus Code
Returns:
The end value
Status Codes:
MStatus setUTimeStart ( MTime start)

Sets the starting time of the animation for the u parameter.

Parameters:
[in]startthe new start time
Returns:
Status code
Status Codes:
MStatus setUTimeEnd ( MTime end)

Sets the end time of the animation for the u parameter.

Parameters:
[in]endthe new end time
Returns:
Status code
Status Codes:
MTime uTimeStart ( MStatus ReturnStatus = NULL)

Returns the start time of the animation for the u parameter.

Parameters:
[out]ReturnStatusStatus Code
Returns:
The starting time
Status Codes:
MTime uTimeEnd ( MStatus ReturnStatus = NULL)

Returns the end time of the animation for the u parameter.

Parameters:
[out]ReturnStatusStatus Code
Returns:
The end time
Status Codes:
unsigned int numPositionMarkers ( MStatus ReturnStatus = NULL)

Returns the number of position markers on this motion path.

Parameters:
[out]ReturnStatusStatus Code
Returns:
The number of markers
Status Codes:
MObject getPositionMarker ( unsigned int  markerNum,
MStatus ReturnStatus = NULL 
)

Gets the position marker where markerNum is the order in which the marker was created.

Parameters:
[in]markerNumThe number of the marker
[out]ReturnStatusStatus Code
Returns:
The position marker
Status Codes:
unsigned int numOrientationMarkers ( MStatus ReturnStatus = NULL)

Returns the number of orientation markers on this motion path.

Parameters:
[out]ReturnStatusStatus Code
Returns:
The number of markers
Status Codes:
MObject getOrientationMarker ( unsigned int  markerNum,
MStatus ReturnStatus = NULL 
)

Gets the orientation marker where markerNum is the order in which the marker was created.

Parameters:
[in]markerNumThe number of the marker
[out]ReturnStatusStatus Code
Returns:
The orientation marker
Status Codes:

MFnMotionPath MFnMotionPath MFnMotionPath MFnMotionPath MFnMotionPath MFnMotionPath MFnMotionPath MFnMotionPath MFnMotionPath MFnMotionPath
MFnMotionPath MFnMotionPath MFnMotionPath MFnMotionPath MFnMotionPath MFnMotionPath MFnMotionPath MFnMotionPath MFnMotionPath MFnMotionPath