FBCharacter Class Reference

#include <fbcharacter.h>
FBCharacter FBCharacter FBCharacter FBCharacter FBCharacter FBCharacter FBCharacter FBCharacter FBCharacter FBCharacter FBCharacter FBCharacter FBCharacter FBCharacter FBCharacter FBCharacter FBCharacter FBCharacter FBCharacter FBCharacter FBCharacter FBCharacter FBCharacter FBCharacter FBCharacter FBCharacter FBCharacter FBCharacter FBCharacter FBCharacter FBCharacter FBCharacter FBCharacter FBCharacter FBCharacter FBCharacter FBCharacter FBCharacter FBCharacter FBCharacter FBCharacter FBCharacter FBCharacter FBCharacter FBCharacter FBCharacter FBCharacter FBCharacter FBCharacter FBCharacter FBCharacter FBCharacter FBCharacter FBCharacter FBCharacter FBCharacter FBCharacter FBCharacter FBCharacter FBCharacter FBCharacter FBCharacter FBCharacter FBCharacter FBCharacter FBCharacter FBCharacter FBCharacter FBCharacter FBCharacter FBCharacter FBCharacter FBCharacter FBCharacter FBCharacter FBCharacter FBCharacter FBCharacter FBCharacter FBCharacter FBCharacter FBCharacter FBCharacter FBCharacter FBCharacter FBCharacter FBCharacter FBCharacter FBCharacter FBCharacter FBCharacter FBCharacter FBCharacter FBCharacter FBCharacter FBCharacter FBCharacter FBCharacter FBCharacter FBCharacter FBCharacter FBCharacter FBCharacter FBCharacter FBCharacter FBCharacter FBCharacter FBCharacter FBCharacter FBCharacter FBCharacter FBCharacter FBCharacter FBCharacter FBCharacter FBCharacter FBCharacter FBCharacter FBCharacter FBCharacter
Inheritance diagram for FBCharacter:
Inheritance graph
[legend]

List of all members.


Detailed Description

Character class.

These classes are under development and may change dramatically between versions. This class exposes part of the functionality associated with a Character. A character can possess a number of potential sources at the same time, such as an actor and another character, but with only one active at any given time. Before setting the InputType to the desired value, one must make sure to have previously set either the InputCharacter or the InputActor.

To obtain the list of characters present in a scene, you need to create an instance of class FBSystem, to obtain the current scene. The FBScene object holds the list of characters in the property Characters.

       FBSystem lSystem;
       HFBScene lScene = lSystem.Scene;
       for( int lIdx = 0; lIdx < lScene->Characters.GetCount(); ++lIdx )
       {
           FBTrace( "Character[%d]: '%s'\n", lIdx, (char*)lScene->Characters[lIdx] );
       }

The current character selected in the Character tool can be obtained via the FBApplication object.

       FBApplication lApplication;
       HFBCharacter lCharacter = lApplication.CurrentCharacter;
       if( lCharacter )
       {
           FBTrace( "Current character is: '%s'\n", (char*)lCharacter->Name );
       }
       else
       {
           FBTrace( "No character currently selected\n" );
       }

Definition at line 1021 of file fbcharacter.h.


Public Member Functions

  FBCharacter (char *pName, HIObject pObject=NULL)
  Constructor.
virtual void  FBDelete ()
  Actual Character destructor.
FBCharacter Clone ()
  Clone the character.
void  AddCharacterExtension (HFBCharacterExtension pExt)
  AddCharacterExtension.
void  RemoveCharacterExtension (HFBCharacterExtension pExt)
  Get the model associated with each body part of the character.
HFBModel  GetModel (FBBodyNodeId pBodyNodeId)
  Get the model associated with each body part of the character.
FBBodyNodeId  GetIndexByModel (HFBModel pModel)
  Get the index associated with Given Model.
HFBModel  GetCtrlRigModel (FBBodyNodeId pBodyNodeId)
  Get the model associated with each body part in the Control Rig of the character.
FBBodyNodeId  GetCtrlRigIndexByModel (HFBModel pModel)
  Get the index of the model associated with each body part in the Control Rig of the character.
HFBModel  GetEffectorModel (FBEffectorId pEffectorId, FBEffectorSetID pEffectorSetID=FBEffectorSetDefault)
  Get the model associated with each effector in the Control Rig of the character.
HFBModel  GetFloorContactModel (FBFloorContactID pMemberIndex)
  Get the model associated with the floor contact ID.
virtual bool  PlotAnimation (FBCharacterPlotWhere pPlotWhere, FBPlotOptions *pPlotOptions)
  Plot the animation of the character.
bool  ReadyForRetarget ()
  Test if character is ready for the Retarget operation (basically, is it in character input ?).
void  Retarget (bool pOnBaseLayer)
  Retarget the animation from the input character to us.
void  CopyAnimation ()
  Copy the animation from the input character to us.
virtual void  ResetProperties (FBCharacterResetProperties pType)
  Reset the properties of the character.
void  SelectModels (bool pSelect, bool pApplyToCharacter, bool pApplyToRig, bool pApplyToExtensions)
  Select the objects that make a character.
void  GoToStancePose (bool pPushUndo=false, bool pIncludeCharacterExtensions=true)
  Set the character in stance pose.
bool  SetCharacterizeOn (bool pSetAsBiped)
  Set the Characterize flag on.
const char *  GetCharacterizeError ()
  Get error message for the previous SetCharacterizeOn operation.
void  SetCharacterizeOff ()
  Set Characterize flag off.
bool  GetCharacterize ()
  Get Characterize flag.
bool  CreateControlRig (bool pSetFKIK)
  Create the Control-Rig.
FBControlSet GetCurrentControlSet (bool pForce=false)
  Obtain Input ControlSet.
bool  IsParentNodeOffset (FBBodyNodeId pNodeId)
  Check if there is an offset on Parent.
FBCharacterSolver GetExternalSolver ()
  Get a pointer to the external solver of a character, or NULL is no external solver is used on the character.
void  SetExternalSolver (int pIndex)
  Set character external solver.
void  SetExternalSolver (FBCharacterSolver *pSolver)
  Set character solver.
void  GetActiveBodyPart (bool *pActivePart)
  Get the active body part array.
bool  IsRotationPin (FBEffectorId pEffectorIndex)
  Return true if the object is Pinned in Rotation (Manipulation).
bool  IsTranslationPin (FBEffectorId pEffectorIndex)
  Return true if the object is Pinned in Translation (Manipulation).
bool  IsCtrlSetReady ()
  Return true Ctrl Set is Ready to be used.
bool  IsPlottingActorToCtrlRig ()
  Return true if the Actor is currently being plot to the Control Rig.

Public Attributes

FBPropertyCharacterInputType  InputType
  Read Write Property: The input type for the character (ex: Actor).
FBPropertyCharacterKeyingMode  KeyingMode
  Read Write Property: The current keying mode.
FBPropertyActor  InputActor
  Read Write Property: The index of the actor used for the input.
FBPropertyCharacter  InputCharacter
  Read Write Property: The index of the character used for the input.
FBPropertyBool  ActiveInput
  Read Write Property: Is the character input active?
FBPropertyListCharacterExtension  CharacterExtensions
  List: Character Extensions in the character.
FBString  mCharacterizeError
  Used to store SetCharacterizeOn errors and warnings.
FBPropertyBool  MirrorMode
  Read Write Property: is in mirror mode.
FBPropertyAnimatableDouble  ShoulderCorrection
  Read Write Property: shoulder correction values.
FBPropertyBool  LeftKneeKillPitch
  Read Write Property: is Pitch used for Left knee.
FBPropertyBool  RightKneeKillPitch
  Read Write Property: is Pitch used for Right knee.
FBPropertyBool  LeftElbowKillPitch
  Read Write Property: is Pitch used for Left elbow.
FBPropertyBool  RightElbowKillPitch
  Read Write Property: is Pitch used for Right elbow.
FBPropertyCharacterHipsTranslationMode  HipsTranslationMode
  Read Write Property: Hips Translation Mode.
FBPropertyBool  WriteReference
  Read Write Property: are we writing back on reference.
FBPropertyBool  SyncMode
  Read Write Property: is character in sync mode.
FBPropertyBool  InverseLeftKnee
  Read Write Property: Is left knee inverted.
FBPropertyBool  InverseRightKnee
  Read Write Property: Is right knee inverted.
FBPropertyBool  InverseLeftElbow
  Read Write Property: Is left elbow inverted.
FBPropertyBool  InverseRightElbow
  Read Write Property: Is right elbow inverted.
FBPropertyCharacterRollSolver  RollSolver
  Read Write Property: Roll Solver selection.
FBPropertyCharacterContactBehaviour  ContactBehaviour
  Read Write Property: Contact Behavior selection.
FBPropertyAnimatableDouble  ScaleCompensation
FBPropertyAnimatableDouble  HipsHeightCompensation
FBPropertyAnimatableDouble  AnkleHeightCompensation
FBPropertyAnimatableDouble  AnkleProximityCompensation

Constructor & Destructor Documentation

FBCharacter ( char *  pName,
HIObject  pObject = NULL  
)

Constructor.

Parameters:
pName  Name of new character.
pObject  For internal use only. This parameter does not need to be specified by the developer.

Member Function Documentation

virtual void FBDelete (  )  [virtual]

Actual Character destructor.

This method is used to delete the actual character object represented by an instance of FBCharacter.

Reimplemented from FBComponent.

FBCharacter* Clone (  )  [virtual]

Clone the character.

Reimplemented from FBConstraint.

void AddCharacterExtension ( HFBCharacterExtension  pExt  ) 

AddCharacterExtension.

Parameters:
pExt  extension to be added to the character.

void RemoveCharacterExtension ( HFBCharacterExtension  pExt  ) 

Get the model associated with each body part of the character.

Parameters:
pExt  extension to be removed to the character.

HFBModel GetModel ( FBBodyNodeId  pBodyNodeId  ) 

Get the model associated with each body part of the character.

Returns:
The model linked to the specified body part.

FBBodyNodeId GetIndexByModel ( HFBModel  pModel  ) 

Get the index associated with Given Model.

Returns:
The model linked to the specified body part.

HFBModel GetCtrlRigModel ( FBBodyNodeId  pBodyNodeId  ) 

Get the model associated with each body part in the Control Rig of the character.

Returns:
The model in the Control Rig corresponding to the specified body part.

FBBodyNodeId GetCtrlRigIndexByModel ( HFBModel  pModel  ) 

Get the index of the model associated with each body part in the Control Rig of the character.

Returns:
The Index if the model in the Control Rig corresponding to the specified body part.

HFBModel GetEffectorModel ( FBEffectorId  pEffectorId,
FBEffectorSetID  pEffectorSetID = FBEffectorSetDefault  
)

Get the model associated with each effector in the Control Rig of the character.

Parameters:
pEffectorId  The effector ID.
pEffectorSetID  Id of the ControlSet to obtain, if not specified the current one is taken.
Returns:
The model in the Control Rig corresponding to the specified Effector.

HFBModel GetFloorContactModel ( FBFloorContactID  pMemberIndex  ) 

Get the model associated with the floor contact ID.

Parameters:
pMemberIndex  Id of the floor contact
Returns:
The model associated with the floor contact ID

virtual bool PlotAnimation ( FBCharacterPlotWhere  pPlotWhere,
FBPlotOptions pPlotOptions  
) [virtual]

Plot the animation of the character.

Returns:
True if the operation completed successfully.

bool ReadyForRetarget (  ) 

Test if character is ready for the Retarget operation (basically, is it in character input ?).

Returns:
True if the character is ready.

void Retarget ( bool  pOnBaseLayer  ) 

Retarget the animation from the input character to us.

Parameters:
pOnBaseLayer  if true, keys corrections will be made on base layer; else they will be made on another layer.

void CopyAnimation (  ) 

Copy the animation from the input character to us.

virtual void ResetProperties ( FBCharacterResetProperties  pType  )  [virtual]

Reset the properties of the character.

Parameters:
pType  Speficy which properties will be reset.

void SelectModels ( bool  pSelect,
bool  pApplyToCharacter,
bool  pApplyToRig,
bool  pApplyToExtensions  
)

Select the objects that make a character.

Parameters:
pSelect  True to select, false to deselect.
pApplyToCharacter  TSould the character contraint be selected ?
pApplyToRig  should The rig (and its children) be selected ?
pApplyToExtensions  Should the character extensions (and their children) be selected ?

void GoToStancePose ( bool  pPushUndo = false,
bool  pIncludeCharacterExtensions = true  
)

Set the character in stance pose.

Parameters:
pPushUndo  Should we push an undo transaction on the undo stack? Don't push undo in non UI thread.
pIncludeCharacterExtensions  Should the character extensions go to stance pose too?

bool SetCharacterizeOn ( bool  pSetAsBiped  ) 

Set the Characterize flag on.

Parameters:
pSetAsBiped  true to use biped characterization or false to use quadruped.
Returns:
current state of the flag after the operation (true if it did succeed).

const char* GetCharacterizeError (  ) 

Get error message for the previous SetCharacterizeOn operation.

Returns:
The string containing all errors and warnings.

void SetCharacterizeOff (  ) 

Set Characterize flag off.

bool GetCharacterize (  ) 

Get Characterize flag.

Returns:
Current state of the Characterize flag.

bool CreateControlRig ( bool  pSetFKIK  ) 

Create the Control-Rig.

Parameters:
pSetFKIK  true to use FK/IK or false to use IK only.
Returns:
current state of the flag after the operation (true if it did succeed).

FBControlSet* GetCurrentControlSet ( bool  pForce = false  ) 

Obtain Input ControlSet.

Parameters:
pForce  If True, will return the current ControlSet even if the character is not in ControlSet Input.
Returns:
Return current Active ControlSet, NULL if none.

bool IsParentNodeOffset ( FBBodyNodeId  pNodeId  ) 

Check if there is an offset on Parent.

Parameters:
pNodeId  Node Id to Check.
Returns:
True if there is an offset on Parent.

FBCharacterSolver* GetExternalSolver (  ) 

Get a pointer to the external solver of a character, or NULL is no external solver is used on the character.

Returns:
The pointer of the current External Solver, NULL if it's the internal solver.

void SetExternalSolver ( int  pIndex  ) 

Set character external solver.

Parameters:
pIndex  Index of external solver.

void SetExternalSolver ( FBCharacterSolver pSolver  ) 

Set character solver.

Parameters:
pSolver  Character solver that will be used by the character.

void GetActiveBodyPart ( bool *  pActivePart  ) 

Get the active body part array.

Parameters:
pActivePart  A pointer to an array of bool. On return, the index with a "true" value are active part.

bool IsRotationPin ( FBEffectorId  pEffectorIndex  ) 

Return true if the object is Pinned in Rotation (Manipulation).

Parameters:
pEffectorIndex  Given Index to obtain Model
Returns:
True if the effector is pinned in Rotation

bool IsTranslationPin ( FBEffectorId  pEffectorIndex  ) 

Return true if the object is Pinned in Translation (Manipulation).

Parameters:
pEffectorIndex  Given Index to obtain Model
Returns:
True if the effector is pinned in Translation

bool IsCtrlSetReady (  ) 

Return true Ctrl Set is Ready to be used.

Returns:
return true if character is active, characterized and is in input control rig

bool IsPlottingActorToCtrlRig (  ) 

Return true if the Actor is currently being plot to the Control Rig.

Returns:
return true if the Actor is currently being plot to the Control Rig.

Member Data Documentation

FBPropertyCharacterInputType InputType

Read Write Property: The input type for the character (ex: Actor).

Definition at line 1043 of file fbcharacter.h.

FBPropertyCharacterKeyingMode KeyingMode

Read Write Property: The current keying mode.

Definition at line 1044 of file fbcharacter.h.

FBPropertyActor InputActor

Read Write Property: The index of the actor used for the input.

Definition at line 1045 of file fbcharacter.h.

FBPropertyCharacter InputCharacter

Read Write Property: The index of the character used for the input.

Definition at line 1046 of file fbcharacter.h.

FBPropertyBool ActiveInput

Read Write Property: Is the character input active?

Definition at line 1047 of file fbcharacter.h.

FBPropertyListCharacterExtension CharacterExtensions

List: Character Extensions in the character.

Definition at line 1049 of file fbcharacter.h.

FBString mCharacterizeError

Used to store SetCharacterizeOn errors and warnings.

Definition at line 1237 of file fbcharacter.h.

FBPropertyBool MirrorMode

Read Write Property: is in mirror mode.

Definition at line 1241 of file fbcharacter.h.

FBPropertyAnimatableDouble ShoulderCorrection

Read Write Property: shoulder correction values.

Definition at line 1242 of file fbcharacter.h.

FBPropertyBool LeftKneeKillPitch

Read Write Property: is Pitch used for Left knee.

Definition at line 1243 of file fbcharacter.h.

FBPropertyBool RightKneeKillPitch

Read Write Property: is Pitch used for Right knee.

Definition at line 1244 of file fbcharacter.h.

FBPropertyBool LeftElbowKillPitch

Read Write Property: is Pitch used for Left elbow.

Definition at line 1245 of file fbcharacter.h.

FBPropertyBool RightElbowKillPitch

Read Write Property: is Pitch used for Right elbow.

Definition at line 1246 of file fbcharacter.h.

FBPropertyCharacterHipsTranslationMode HipsTranslationMode

Read Write Property: Hips Translation Mode.

Definition at line 1247 of file fbcharacter.h.

FBPropertyBool WriteReference

Read Write Property: are we writing back on reference.

Definition at line 1248 of file fbcharacter.h.

FBPropertyBool SyncMode

Read Write Property: is character in sync mode.

Definition at line 1249 of file fbcharacter.h.

FBPropertyBool InverseLeftKnee

Read Write Property: Is left knee inverted.

Definition at line 1250 of file fbcharacter.h.

FBPropertyBool InverseRightKnee

Read Write Property: Is right knee inverted.

Definition at line 1251 of file fbcharacter.h.

FBPropertyBool InverseLeftElbow

Read Write Property: Is left elbow inverted.

Definition at line 1252 of file fbcharacter.h.

FBPropertyBool InverseRightElbow

Read Write Property: Is right elbow inverted.

Definition at line 1253 of file fbcharacter.h.

FBPropertyCharacterRollSolver RollSolver

Read Write Property: Roll Solver selection.

Definition at line 1254 of file fbcharacter.h.

FBPropertyCharacterContactBehaviour ContactBehaviour

Read Write Property: Contact Behavior selection.

Definition at line 1255 of file fbcharacter.h.


Please send us your comments about this page.