pymel.core.animation.dagPose¶
- dagPose(*args, **kwargs)¶
This command is used to save and restore the matrix information for a dag hierarchy. Specifically, the data stored will restore the translate, rotate, scale, scale pivot, rotate pivot, rotation order, and (for joints) joint order for all the objects on the hierarchy. Data for other attributes is not stored by this command. This command can also be used to store a bindPose for an object. When you skin an object, a dagPose is automatically created for the skin.
Flags:
Long Name / Short Name Argument Types Properties addToPose / a bool Allows adding the selected items to the dagPose. atPose / ap bool Query whether the hierarchy is at same position as the pose. Names of hierarchy members that are not at the pose position will be returned. An empty return list indicates that the hierarchy is at the pose. bindPose / bp bool Used to specify the bindPose for the selected hierarchy. Each hierarchy can have only a single bindPose, which is saved automatically at the time of a skin bind. The bindPose is used when adding influence objects, binding new skins, or adding flexors. Take care when modifying the bindPose with the -rs/-reset or -rm/-remove flags, since if the bindPose is ill-defined it can cause problems with subsequent skinning operations. g / g bool This flag can be used in conjunction with the restore flag to signal that the members of the pose should be restored to the global pose. The global pose means not only is each object locally oriented with respect to its parents, it is also in the same global position that it was at when the pose was saved. If a hierarchy’s parenting has been changed since the time that the pose was saved, you may have trouble reaching the global pose. members / m bool Query the members of the specified pose. The pose should be specified using the selection list, the -bp/-bindPose or the -n/-name flag. name / n unicode Specify the name of the pose. This can be used during create, restore, reset, remove, and query operations to specify the pose to be created or acted upon. remove / rm bool Remove the selected joints from the specified pose. reset / rs bool Reset the pose on the selected joints. If you are resetting pose data for a bindPose, take care. It is appropriate to use the -rs/-reset flag if a joint has been reparented and/or appears to be exactly at the bindPose. However, a bindPose that is much different from the exact bindPose can cause problems with subsequent skinning operations. restore / r bool Restore the hierarchy to a saved pose. To specify the pose, select the pose node, or use the -bp/-bindPose or -n/-name flag. save / s bool Save a dagPose for the selected dag hierarchy. The name of the new pose will be returned. selection / sl bool Whether or not to store a pose for all items in the hierarchy, or for only the selected items. worldParent / wp bool Indicates that the selected pose member should be recalculated as if it is parented to the world. This is typically used when you plan to reparent the object to world as the next operation. Flag can have multiple arguments, passed either as a tuple or a list. Derived from mel command maya.cmds.dagPose
Example:
import pymel.core as pm # To create a pose for all objects parented above and below # the selected items. # pm.dagPose( save=True ) # To create a dagPose named "mypose" for the selected items only and not # the dag objects parented below the selected items. # pm.dagPose( save=True, selection=True, name='mypose' ) # To restore the local (rather than global) mypose pose # pm.dagPose( 'mypose', restore=True ) # To restore the mypose pose in global mode. # pm.dagPose( 'mypose', restore=True, global=True ) # To query the members of the mypose pose. # pm.dagPose( 'mypose', query=True, members=True ) # To return the name (if any) of the bindPose attached to the # selected items. # pm.dagPose( q=True, bindPose=True ) # To reset the pose data on a joint named bigToe for "mypose" # pm.dagPose( 'bigToe', reset=True, n='mypose' ) # To remove a joint named pinky from "mypose" # pm.dagPose( 'pinky', remove=True, n='mypose' ) # To restore the skeleton to its bindPose # pm.dagPose( restore=True, global=True, bindPose=True )