1 #ifndef __FBCHARACTER_H__
2 #define __FBCHARACTER_H__
51 #define FBSDK_DLL K_DLLIMPORT
58 #ifdef FBSDKUseNamespace
62 class FBCharacterSolver;
623 void SetReferenceModel(
FBModel* pReferenceModel );
643 bool SetMultipleMarkerModels( FBModelList* pModelList );
657 void SetMarkerName(
FBSkeletonNodeId pNodeId,
int pMarkerIndex,
const char* pMarkerName );
691 void SetMarkerOriented(
FBSkeletonNodeId pNodeId,
int pMarkerIndex,
bool pIsOriented );
705 void SetMarkerUsed(
FBSkeletonNodeId pNodeId,
int pMarkerIndex,
bool pUsed );
730 void SetMarkerSetVisibility(
bool pVisibility);
735 int GetMarkerSetVisibility();
740 bool GetLinkToModelOk();
745 void BeginTransaction( );
750 void EndTransaction( );
784 const char* GetReferenceName( );
790 int GetIKEffectorIndex(
FBModel* pModel);
800 int GetIKEffectorPivotCount(
FBEffectorId pEffectorIndex);
805 const char* GetIKEffectorName(
FBEffectorId pEffectorIndex);
813 int GetFKIndex(
FBModel* pModel);
818 FBModel* GetFKModel(
int pIndex);
823 const char* GetFKName(
int pIndex);
871 void GetReach(
FBEffectorId pEffectorId,
double &pReachT,
double &pReachR);
1003 virtual void FBDelete();
1120 void SetActorTranslation(
FBVector3d pTranslationVector );
1132 FBSkeletonState* GetCurrentSkeletonState (
bool pResetOrientation=
false);
1137 FBModel* GetLeftGloveReferenceModel( );
1142 void SetLeftGloveReferenceModel(
FBModel* pReferenceModel );
1147 FBModel* GetRightGloveReferenceModel( );
1152 void SetRightGloveReferenceModel(
FBModel* pReferenceModel );
1246 virtual void FBDelete();
1262 void CycleAnalysisCurrentCharacter();
1288 void GetSkinModelList( FBModelList& pSkinModelList );
1358 bool ReadyForRetarget();
1363 void Retarget(
bool pOnBaseLayer );
1367 void CopyAnimation();
1380 void SelectModels(
bool pSelect,
bool pApplyToCharacter,
bool pApplyToRig,
bool pApplyToExtensions );
1386 void GoToStancePose(
bool pPushUndo =
false,
bool pIncludeCharacterExtensions =
true );
1405 void SetupDeviceMocap(
FBDevice* pDevice,
int pSkeletonJointsCount,
FBBodyNodeId* pSkeletonJointsOrder );
1411 void SetSensorFloorOffset(
double pSensorFloorOffset);
1423 bool SetCharacterizeOn(
bool pSetAsBiped );
1428 const char * GetCharacterizeError();
1432 void SetCharacterizeOff();
1437 bool GetCharacterize();
1443 bool CreateControlRig(
bool pSetFKIK);
1450 void ConnectControlRig(
FBControlSet* pControlSet,
bool pUpdateLimit,
bool pResetHierarchy);
1454 void DisconnectControlRig();
1463 bool CreateAuxiliary(
FBEffectorId pEffectorId,
bool pPivot,
double pAuxReachT=100,
double pAuxReachR=100);
1469 FBControlSet * GetCurrentControlSet(
bool pForce =
false);
1475 bool CreateCharacterMarkerSet(
bool pSetActive);
1497 void SetExternalSolver(
int pIndex);
1507 void GetActiveBodyPart(
bool* pActivePart);
1523 bool IsCtrlSetReady();
1528 bool IsPlottingActorToCtrlRig();
1554 bool SetIKVisibility(
bool pState );
1565 bool SetFKVisibility(
bool pState );
1576 bool SetSkeletonVisibility(
bool pState );
1630 virtual int Duplicate(
int pIndex);
1684 FBActor* operator[](
int pIndex );
1689 virtual int Duplicate(
int pIndex );
1715 virtual int Duplicate(
int pIndex );
1776 #ifdef FBSDKUseNamespace
class FBArrayTemplate< FBModel * > FBModelList
typedef class FBSDK_DLL FBArrayTemplate FBModelList;
FBEffectorSetID
Effector ID identifier.
FBPropertyAnimatableDouble LeftHandMiddleIndex
Read Write Property: Used to set blending coefficients.
Any object requested is visible.
#define __FBClassDeclare(Name, Parent)
For internal use only.
FBCharacter * FBGetCharacterByAssociatedPart(FBComponent *pPart)
Get character by its associated IK/FK Marker or Bone.
FBPropertyAnimatableDouble LeftHandRingRing
Read Write Property: Used to set blending coefficients.
FBPropertyAnimatableDouble RightHandRingIndex
Read Write Property: Used to set blending coefficients.
FBVisibilityState
Visibility state.
#define FB_DEFINE_COMPONENT(DllTag, Type)
Define a component and give it the ability to be a property.
class FBPropertyBaseEnum< enum FBCharacterRollSolver > FBPropertyCharacterRollSolver
FBPropertyAnimatableDouble ScaleCompensation
FBTVector mSkeletonPosition
Position of the skeleton.
FBPropertyAnimatableDouble LeftHandIndexRing
Read Write Property: Used to set blending coefficients.
Base class for constraints.
FBPropertyVector3d LeftCollarPosition
Read Write Property: Body part pivot of the actor.
class FBPropertyBase< double, kFBPT_double > FBPropertyDouble
Property: double
FBPropertyBool LockX
Read Write Property: Lock character skeleton in place on X axis.
FBPropertyCharacterRollSolver RollSolver
Read Write Property: Roll Solver selection.
FBPropertyAnimatableDouble LeftHandRingMiddle
Read Write Property: Used to set blending coefficients.
FBPropertyVector3d HeadPosition
Read Write Property: Body part pivot of the actor.
FBPropertyAnimatableDouble LeftHandMiddlePinky
Read Write Property: Used to set blending coefficients.
class FBPropertyBaseAnimatable< double, kFBPT_double > FBPropertyAnimatableDouble
FBPropertyBaseAnimatableDouble type definition.
FBPropertyAnimatableDouble LeftHandIndexIndex
Read Write Property: Used to set blending coefficients.
FBPropertyVector3d RightCollarPosition
Read Write Property: Body part pivot of the actor.
FBPropertyVector3d RightFootPosition
Read Write Property: Body part pivot of the actor.
FBCharacterHipsTranslationMode
Character Hips Translation modes.
Four x Four (double) Matrix.
FBPropertyBool SkeletonVisibility
Read Write Property: Show or Hide the Skeleton.
FBPropertyColor PivotColor
Read Write Property: The color of the pivot points of the actor.
FBPropertyAnimatableDouble LeftHandMiddleMiddle
Read Write Property: Used to set blending coefficients.
class FBPropertyBaseComponent< FBMarkerSet * > FBPropertyMarkerSet
FBPropertyVector3d WaistPosition
Read Write Property: Body part pivot of the actor.
int mSkeletonJointsCount
Number of joints according to specific motion capture device.
FBPropertyVector3d RightWristPosition
Read Write Property: Body part pivot of the actor.
FBPropertyVector3d LeftWristPosition
Read Write Property: Body part pivot of the actor.
class FBPropertyBase< FBVector3d, kFBPT_Vector3D > FBPropertyVector3d
FBPropertyVector3d type definition.
AnimationNodeNotify evaluation information.
const char * FBCharacterEffectorNameFromId(FBEffectorId pEffectorId)
Get the UI name associated with an effector.
class FBPropertyBaseComponent< FBActor * > FBPropertyActor
FBModelTransformationType
Types of transformation vector/matrices possible.
#define IObject_Declare(IsPure)
FBPropertyVector3d RightHipPosition
Read Write Property: Body part pivot of the actor.
void FBSetCharacterFingerTipsVisibility(bool pShow)
Sets visibility of the finger-tips of the current character.
FBPropertyBool SyncMode
Read Write Property: is character in sync mode.
FBPropertyCharacter InputCharacter
Read Write Property: The index of the character used for the input.
Character marker set class.
FBPropertyAnimatableDouble FKFingerTipMultiplier
Read Write Property: Used to augment the amount of FK propagation for unmarkered finger tip phalanges...
#define FB_DEFINE_ENUM(DllTag, Type)
Define an enum and give it the ability to be a property.
FBPropertyAnimatableDouble LeftHandPinkyMiddle
Read Write Property: Used to set blending coefficients.
FBPropertyBool LockZ
Read Write Property: Lock character skeleton in place on Z axis.
MotionBuilder SDK base class.
FBEffectorId
All effector nodes.
FBFloorContactID
Floor contact for the given index.
FBPropertyCharacterHipsTranslationMode HipsTranslationMode
Read Write Property: Hips Translation Mode.
FBPropertyAnimatableDouble RightHandPinkyRing
Read Write Property: Used to set blending coefficients.
bool FBGetCharacterFloorContactsVisibility()
Queries visibility of the floor contacts of the current character.
FBPropertyAnimatableDouble LeftHandPinkyPinky
Read Write Property: Used to set blending coefficients.
PropertyList: CharacterMarkerSet.
FBCharacterKeyingMode
Character keying modes.
bool FBGetActorMarkerSetVisibility()
Queries visibility of the marker set of the current actor.
const char * FBCharacterBodyNodeNameFromId(FBBodyNodeId pBodyNodeId)
Get the UI name associated with a body node.
class FBPropertyBase< bool, kFBPT_bool > FBPropertyBool
Property: bool
FBPropertyAnimatableDouble RightHandRingRing
Read Write Property: Used to set blending coefficients.
Character extension interface for FBSDK.
FBPropertyVector3d RightShoulderPosition
Read Write Property: Body part pivot of the actor.
FBPropertyBool InverseLeftElbow
Read Write Property: Is left elbow inverted.
double mFloorClipPlaneW
Floor Clip Plane W value for camera reposition.
FBPropertyColor SkeletonColor
Read Write Property: The color of the skeleton of the actor.
FBPropertyBool UseAxis
Read Write Property: is using axis.
FBPropertyAnimatableDouble LeftHandRingIndex
Read Write Property: Used to set blending coefficients.
All objects requested are visible.
FBPropertyAnimatableDouble LeftHandPinkyRing
Read Write Property: Used to set blending coefficients.
FBPropertyCharacterContactBehaviour ContactBehaviour
Read Write Property: Contact Behavior selection.
FBPropertyAnimatableDouble LeftHandIndexMiddle
Read Write Property: Used to set blending coefficients.
FBSkeletonTrackingState
Device Mocap skeleton tracking state.
Three dimensional scaling vector.
class FBPropertyBaseAnimatable< bool, kFBPT_bool > FBPropertyAnimatableBool
FBPropertyAnimatableBool type definition.
Character extension property list.
const int kFBLastActorNodeId
Last Actor NodeId.
FBCharacterRollSolver
Character Roll Solver version.
FBBodyNodeId
All body nodes.
FBPropertyBool InverseLeftKnee
Read Write Property: Is left knee inverted.
FBPropertyBool LeftElbowKillPitch
Read Write Property: is Pitch used for Left elbow.
FBPropertyAnimatableDouble AnkleHeightCompensation
FBPropertyAnimatableDouble RightHandPinkyMiddle
Read Write Property: Used to set blending coefficients.
FBPropertyActor InputActor
Read Write Property: The index of the actor used for the input.
FBBodyPartId FBGetEffectorBodyPart(FBEffectorId pEffectorId)
return BodyPart ID from Effector.
Base Device class. Cannot be instantiated from Python.
FBPropertyAnimatableBool HumanFingerLimits
Read Write Property: Enables/Disables human finger limits during actor solve.
FBPropertyBool InverseRightKnee
Read Write Property: Is right knee inverted.
FBPropertyBool RightElbowKillPitch
Read Write Property: is Pitch used for Right elbow.
FBPropertyAnimatableDouble FKThumbTipMultiplier
Read Write Property: Used to augment the amount of FK propagation for unmarkered thumb tip phalanges...
FBCharacterResetProperties
Character Reset Properties Type.
Option parameters for plotting.
PropertyList: Concrete class for PropertyList of component
FBPropertyVector3d LeftShoulderPosition
Read Write Property: Body part pivot of the actor.
FBPropertyVector3d ChestPosition
Read Write Property: Body part pivot of the actor.
FBPropertyAnimatableDouble RightHandRingMiddle
Read Write Property: Used to set blending coefficients.
Invalid visibility request.
class FBPropertyBaseEnum< enum FBCharacterHipsTranslationMode > FBPropertyCharacterHipsTranslationMode
#define __FB_FORWARD(ClassName)
Forwarding of class and typedef declaration.
FBPropertyAnimatableDouble RightHandRingPinky
Read Write Property: Used to set blending coefficients.
Property: Base property class.
FBTVector * mSkeletonJointsPositions
Positions of each joint.
Template class to contain an array of items.
FBPropertyAnimatableDouble RightHandIndexMiddle
Read Write Property: Used to set blending coefficients.
FBPropertyAnimatableDouble LeftHandPinkyIndex
Read Write Property: Used to set blending coefficients.
FBBodyPartId
Body part for character.
FBString mCharacterizeError
Used to store SetCharacterizeOn errors and warnings.
class FBVector3< double > FBVector3d
3D vector.
FBPropertyAnimatableDouble LeftHandRingPinky
Read Write Property: Used to set blending coefficients.
class FBPropertyBaseEnum< enum FBCharacterInputType > FBPropertyCharacterInputType
class FBPropertyBaseEnum< enum FBCharacterKeyingMode > FBPropertyCharacterKeyingMode
FBPropertyDouble PivotSize
Read Write Property: The size of the pivot points of the actor.
FBCharacterContactBehaviour
Character Contact Behaviour.
Some objects (at least one, but not all) requested are visible.
A character is the link between a motion source and a character model.
#define FBSDKNamespace
FBSDKNamespace define.
FBPropertyListCharacterExtension CharacterExtensions
List: Character Extensions in the character.
FBPropertyAnimatableDouble RightHandMiddlePinky
Read Write Property: Used to set blending coefficients.
FBCharacterInputType
Character Input/Output types.
FBPropertyDouble FKOpacity
Read Write Property: Opacity value used on FK (between 0 and 100).
FBCharacterKeyingMode FBGetCharactersKeyingMode()
return Character Manipulation/Keying Mode
FBPropertyColor BodyColor
Read Write Property: The color of the body of the actor.
FBPropertyAnimatableDouble RightHandPinkyIndex
Read Write Property: Used to set blending coefficients.
FBPropertyAnimatableDouble RightHandIndexRing
Read Write Property: Used to set blending coefficients.
FBPropertyBool InverseRightElbow
Read Write Property: Is right elbow inverted.
FBPropertyAnimatableDouble RightHandIndexIndex
Read Write Property: Used to set blending coefficients.
FBActor is used to link motion data to a character.
FBPropertyAnimatableDouble RightHandMiddleMiddle
Read Write Property: Used to set blending coefficients.
FBPropertyVector3d LeftElbowPosition
Read Write Property: Body part pivot of the actor.
FBPropertyAnimatableDouble FKFingerMultiplier
Read Write Property: Used to augment the amount of FK propagation for unmarkered intermediate finger ...
FBPropertyBool LeftKneeKillPitch
Read Write Property: is Pitch used for Left knee.
FBPropertyBool ActiveInput
Read Write Property: Is the character input active?
FBSkeletonTrackingState mSkeletonTrackingState
State of the skeleton tracking.
FBPropertyVector3d HipsPosition
Read Write Property: Body part pivot of the actor.
FBPropertyVector3d LeftAnklePosition
Read Write Property: Body part pivot of the actor.
#define FB_FORWARD(ClassName)
Forwarding of class and typedef declaration.
FBControlSetType
Character ControlSet type.
Recalculate MarkerSet offset for TR.
Recalculate MarkerSet offset for R Only.
FBPropertyBool WriteReference
Read Write Property: are we writing back on reference.
FBPropertyBool RightKneeKillPitch
Read Write Property: is Pitch used for Right knee.
FBPropertyAnimatableDouble HipsHeightCompensation
class FBPropertyBaseEnum< enum FBControlSetType > FBPropertyControlSetType
FBSkeletonJointTrackingState * mSkeletonJointTrackingState
State of the skeleton joint tracking.
FBPropertyControlSetType ControlSetType
Read Property: the control Set Type (FKIK or IK).
FBPropertyVector3d RightElbowPosition
Read Write Property: Body part pivot of the actor.
FBPropertyBool PivotPointsVisibility
Read Write Property: Show or Hide the Pivot Points.
FBMatrix * mSkeletonJointsGlobalOrientations
Global orientations of each bone.
FBPropertyVector3d RightKneePosition
Read Write Property: Body part pivot of the actor.
bool FBGetCharacterFingerTipsVisibility()
Queries visibility of the finger-tips of the current character.
FBPropertyVector3d RightAnklePosition
Read Write Property: Body part pivot of the actor.
FBPropertyAnimatableDouble LeftHandMiddleRing
Read Write Property: Used to set blending coefficients.
FBPropertyBool Visibility
Read Write Property: Show or Hide the Actor Body.
FBRecalcMarkerSetOffset
Recalculate MarkerSet offset for?
class FBPropertyBaseComponent< FBCharacter * > FBPropertyCharacter
FBPropertyBool IKManip
Read Write Property: Access to the IK Manip mode.
void FBSetCharacterFloorContactsVisibility(bool pShow)
Sets visibility of the floor contacts of the current character.
FBPropertyCharacterInputType InputType
Read Write Property: The input type for the character (ex: Actor).
FBPropertyAnimatableDouble RightHandMiddleIndex
Read Write Property: Used to set blending coefficients.
FBPropertyMarkerSet OutputMarkerSet
Read Write Property: Associated output marker set.
class FBPropertyBaseEnum< enum FBCharacterContactBehaviour > FBPropertyCharacterContactBehaviour
FBPropertyAnimatableDouble RightHandPinkyPinky
Read Write Property: Used to set blending coefficients.
class FBPropertyBase< FBColor, kFBPT_ColorRGB > FBPropertyColor
FBPropertyColor type definition.
FBPropertyVector3d NeckPosition
Read Write Property: Body part pivot of the actor.
FBPropertyAnimatableDouble ShoulderCorrection
Read Write Property: shoulder correction values.
FBPropertyBool MirrorMode
Read Write Property: is in mirror mode.
#define FBSDK_DLL
Be sure that FBSDK_DLL is defined only once...
FBCalibrationState
Device Mocap character calibration state.
FBPropertyDouble MarkerSetSize
Read Write Property: The size of the markers of the actor.
FBPropertyVector3d LeftHipPosition
Read Write Property: Body part pivot of the actor.
FBPropertyCharacterKeyingMode KeyingMode
Read Write Property: The current keying mode.
FBPropertyVector3d LeftFootPosition
Read Write Property: Body part pivot of the actor.
FBSkeletonJointTrackingState
Device Mocap skeleton joint tracking state.
FBBodyPartId FBGetBodyNodeBodyPart(FBBodyNodeId pBodyNodeId)
return BodyPart ID from Bones.
FBCharacterPlotWhere
Where to plot a character.
FBPropertyAnimatableDouble AnkleProximityCompensation
FBPropertyMarkerSet MarkerSet
Read Write Property: Associated marker set.
FBPropertyAnimatableDouble RightHandIndexPinky
Read Write Property: Used to set blending coefficients.
FBPropertyVector3d LeftKneePosition
Read Write Property: Body part pivot of the actor.
FBPropertyAnimatableDouble RightHandMiddleRing
Read Write Property: Used to set blending coefficients.
FBSkeletonNodeId
All Skeleton nodes.
FBPropertyBool LockY
Read Write Property: Lock character skeleton in place on Y axis.
FBPropertyAnimatableDouble LeftHandIndexPinky
Read Write Property: Used to set blending coefficients.
bool FBSetActorMarkerSetVisibility(bool pShow)
Sets visibility of the marker set of the current actor.