Go to: Synopsis. Return value. Keywords.
Flags. Python
examples.
characterize([activatePivot=boolean], [addAuxEffector=boolean], [addFloorContactPlane=boolean],
[addMissingEffectors=boolean],
[attributeFromHIKProperty=string],
[attributeFromHIKPropertyMode=
string], [autoActivateBodyPart=boolean],
[changePivotPlacement=boolean],
[effectors=string], [fkSkeleton=string], [name=string], [pinHandFeet=boolean], [placeNewPivot=boolean], [posture=string], [sourceSkeleton=string], [stancePose=string], [type=string])
Note: Strings representing object names and
arguments must be separated by commas. This is not depicted in the
synopsis.
characterize is undoable, queryable, and editable.
This command is used to scan a joint hierarchy for predefined joint
names or labels. If the required joints are found, human IK
effectors will be created to control the skeleton using full-body
IK. Alternatively, you can manually create all of the components
required for fullbody IK, and use this command to hook them up.
Fullbody IK needs 3 major components: the user input skeleton (sk),
the fk skeleton on which keys are set (fk) and the hik effectors
(ik). Together fk and ik provide parameters to the fullbody IK
engine, which solves for the output and plots it onto sk. This
command usage is used internally by Maya when importing data from
fbx files, but is not generally recommended. Note that a minimum
set of required joint names or joint labels must be found in order
for the characterize command to succeed. Please refer to the Maya
documentation for details on properly naming or labeling your
skeleton. The skeleton should also be z-facing, with its y-axis up,
its left hand parallel to positive x-axis and right hand parallel
to negative x-axis. END_COMMENT
string |
Names of full body IK effectors that were created. |
In query mode, return type is based on queried flag.
characterize, effectors, fullbody, IK
activatePivot, addAuxEffector, addFloorContactPlane, addMissingEffectors, attributeFromHIKProperty,
attributeFromHIKPropertyMode,
autoActivateBodyPart,
changePivotPlacement,
effectors, fkSkeleton, name,
pinHandFeet, placeNewPivot, posture, sourceSkeleton, stancePose, type
Long name (short name) |
Argument types |
Properties |
placeNewPivot(pnp) |
boolean |
|
|
Creates a new pivot and puts it into placement mode. Note that
you will not be able to do full body manipulation about this pivot
until you have activated it with the -activatePivot flag. A pivot
behaves in all ways the same as an effector (it IS an effector,
except that it is offset from the normal position of the effector
to allow one to rotate about a different point). A new pivot
created with this flag allow you to adjust the offset interactively
before activating it. |
|
activatePivot(apv) |
boolean |
|
|
Activates a pivot that has been properly placed. After
activating this new pivot, you will now be able to rotate and
translate about this pivot. A pivot behaves in all ways the same as
an effector (it IS an effector, except that it is offset from the
normal position of the effector to allow one to rotate about a
different point. |
|
changePivotPlacement(cpp) |
boolean |
|
|
Reverts a pivot back into pivot placement mode. A pivot that is
in placement mode will not participate in full body manipulation
until it has been activated with the -activatePivot flag. |
|
addAuxEffector(aae) |
boolean |
|
|
Adds an auxilliary (secondary) effector to an existing
effector. |
|
addFloorContactPlane(afp) |
boolean |
|
|
Adds a floor contact plane to one of the hands or feet. With
this plane, you will be able to adjust the floor contact height.
Select a hand or foot effector and then issue the characterize
command with this flag. |
|
pinHandFeet(phf) |
boolean |
|
|
When the character is first being characterized, pin the hands
and feet by default. |
|
type(typ) |
string |
|
|
Specifies the technique used by the characterization to
identify the joint type. Valid options are "label" and "name". When
"label" is used, the joints must be labelled using the guidelines
described in the Maya documentation. When name is used, the joint
names must follow the naming conventions described in the Maya
documentation. The default is "name". This flag cannot be used in
conjunction with the sourceSkeleton flag. |
|
posture(pos) |
string |
|
|
Specifies the posture of the character. Valid options are
"biped" and "quadruped". The default is "biped". |
|
sourceSkeleton(sk) |
string |
|
|
This flag can be used to characterize a skeleton that has not
been named or labelled according to the FBIK guidelines. It
specifies the association between the actual joint names and the
expected FBIK joint names. The format of the string is as follows:
For each joint that the user wants to involve in the solve: 1) the
partial path of the joint and 2) the name of the full body joint
this represents. 1) and 2) are to be separated by white space, and
multiple entries separated by ",". |
|
fkSkeleton(fk) |
string |
|
|
Specify the fk skeleton to be used by human IK by providing 2
pieces of information for each joint of the FK skeleton: 1) the
partial path of the joint and 2) the name of the full body joint
this represents. 1) and 2) are to be separated by white space, and
multiple entries separated by ",". Normally, the fk control
skeleton is automatically created. This flag is for advanced users
only. |
|
effectors(ef) |
string |
|
|
Specify the effectors to be used by human IK by providing 2
pieces of information for each effector: 1) the partial path of the
effector and 2) the name of the full body effector this represents.
1) and 2) are to be separated by white space, and multiple entries
separated by ",". Normally, the effectors are automatically
created. This flag is for advanced users only. |
|
stancePose(sp) |
string |
|
|
Specify the default stance pose to be used by human IK. The
stance pose is specified by providing 2 pieces of information for
each joint involved in the solve: 1) the partial path to the joint
and 2) 9 numbers representing translation rotation and scale. 1)
and 2) are to be separated by white space, and multiple entries
separated by ",". Normally, the stance pose is taken from the
selected skeleton. This flag is for advanced users only. |
|
addMissingEffectors(ame) |
boolean |
|
|
This flag tells the characterize command to look for any
effectors that can be added to the skeleton. For example, if the
user has deleted some effectors or added fingers to an existing
skeleton, "characterize -e -addMissingEffectors" can be used to
restore them. |
|
attributeFromHIKProperty(
ahk) |
string |
|
|
Query for the attribute name associated with a MotionBuilder
property. |
|
attributeFromHIKPropertyMode(
mhk) |
string |
|
|
Query for the attribute name associated with a MotionBuilder
property mode. |
|
autoActivateBodyPart(aab) |
boolean |
|
|
Query or change whether auto activation of character nodes
representing body parts should be enabled. |
|
name(nm) |
string |
|
|
At characterization (FBIK creation) time, use this flag to name
your FBIK character. This will affect the name of the hikHandle
node and the control rig will be put into a namespace that matches
the name of your character. If you do not specify the character
name, a default one will be used. At the moment edit and query of
the character name is not supported. |
|
Flag can appear in Create mode of
command |
Flag can appear in Edit mode of command |
Flag can appear in Query mode of command |
Flag can have multiple arguments, passed
either as a tuple or a list. |
import maya.cmds as cmds
# Characterize a skeleton. Select the root of the skeleton and enter
# the following. The skeleton joints must be named according to the
# FBIK naming conventions described in the main Maya documentation.
#
cmds.characterize( pinHandFeet=True )
# Characterize a skeleton that has not been named according to the
# FBIK naming conventions by using the -sk flag to define the
# purpose of the joints. Select the skeleton and enter the following.
#
cmds.characterize( sk = 'pelvis Hips,hipL LeftUpLeg,kneeL LeftLeg,footL LeftFoot,toeL LeftToeBase,hipR RightUpLeg,kneeR RightLeg,footR RightFoot,toeR RightToeBase,spine Spine,spine1 Spine1,collarL LeftShoulder,shoulderL LeftArm,elbowL LeftForeArm,handL LeftHand,collarR RightShoulder,shoulderR RightArm,elbowR RightForeArm,handR RightHand,neck Neck,head Head,spine2 Spine2' )
# Add a floor contact plane to the selected effector
#
cmds.select('LeftFootEff', r=True)
cmds.characterize( e=True, addFloorContactPlane=True )
# Add a full body pivot to the selected effector.
#
cmds.select('LeftHandEff', r=True)
cmds.characterize( e=True, placeNewPivot=True )
cmds.move( 1, 1, 0, r=True)
# Activate a new pivot now that it has been placed in the desired location.
#
cmds.characterize( e=True, activatePivot=True )
# De-activate a pivot so that it can be moved to another location.
#
cmds.characterize( e=True, changePivotPlacement=True )