r3aik
real/objects/r3aik.h
r3obj
Ik animation objects. Applies inverse kinematics to sibling objects.
r3Level
R3CLID_LEVEL
r3Ainversekinematics
R3CLID_AINVERSEKINEMATICS - 110
UPDATETARGETS, EVALIKTARGET, ADDTARGETS, RECONNECT, DETACH, REMOVEMULTIPLEREFEREN,
int R3RegisterAInverseKinematicsClass(R3APP *app);
R3AIKM_UPDATETARGETS
UPDATETARGETS
R3AIKM_UPDATETARGETS
obj.UPDATETARGETS();
I.K or time changed, update targets to match the i.k path
R3AIKM_EVALIKTARGET
EVALIKTARGET
R3AIKM_EVALIKTARGET
R3INT, index
R3VECTOR, param
R3VECTOR, result;
obj.EVALIKTARGET(p1, p2, p3);
Evaluate i.k target point in object space.
R3AIKM_ADDTARGETS
ADDTARGETS
R3AIKM_ADDTARGETS
R3TAG*, R3AIKA_IkPoints, R3AIKA_IkPointCount
obj.ADDTARGETS(p3);
add new targets to the i.k object
R3AIKM_RECONNECT
RECONNECT
R3AIKM_RECONNECT
obj.RECONNECT();
Reconnect points to give new ik path.
R3AIKM_DETACH
DETACH
R3AIKM_DETACH
R3OBJ*, skeleton to be detached
obj.DETACH(p3);
Detach (unmap) skeletons from foot steps
R3AIKM_REMOVEMULTIPLEREFEREN
REMOVEMULTIPLEREFEREN
R3AIKM_REMOVEMULTIPLEREFEREN
obj.REMOVEMULTIPLEREFEREN();
Inverse kinematics object can apply inverse kinematics to a joint any number of times. This method removes multiple references so that I.K is applied to each joint only once.
IkPointCount
IkPointCount
R3AIKA_IkPointCount
Integer
R3INT
number of ik points
jsobj.SetIkPointCount(value);
R3INT value = ...;
R3SetAttrs(r3obj, R3AIKA_IkPointCount, value, R3TAG_END);
Displacement
Displacement
R3AIKA_Displacement
indexed attr, displacement from ideal path
jsobj.SetDisplacement(index, value);
value = jsobj.GetDisplacement(index);
R3VECTOR value = ...;
R3SetAttrs(r3obj, R3AIKA_Displacement, value, R3TAG_END);
R3VECTOR value;
R3GetAttrs(r3obj, R3AIKA_Displacement, &value, R3TAG_END);
EnableDisplacement
EnableDisplacement
R3AIKA_EnableDisplacement
Boolean
R3BOOL
enable displacement recording
jsobj.SetEnableDisplacement(value);
value = jsobj.GetEnableDisplacement();
R3BOOL value = ...;
R3SetAttrs(r3obj, R3AIKA_EnableDisplacement, value, R3TAG_END);
R3BOOL value;
R3GetAttrs(r3obj, R3AIKA_EnableDisplacement, &value, R3TAG_END);
index of the point to be controlled
target object
displacement from path
for future expand
initialize to zero
initialize to zero
target object, valid only in R3IKM_EVALTARGET method
r3appobj *
r3fprint
plugins/objects/fprint/r3fprint.h
r3fprint
Foot print inverse kinematics
r3Ainversekinematics
R3CLID_AINVERSEKINEMATICS
r3Footprint
R3CLID_FOOTPRINT - 1490
int R3RegisterFootPrintClass(R3APP *app);
we define handiness using r3foot object
R3FPRINTM_EVALSTEPHEIGHT
EVALSTEPHEIGHT
R3FPRINTM_EVALSTEPHEIGHT
R3INT, handness
R3FLOAT, height
obj.EVALSTEPHEIGHT(0, p2, p3);
Evaluate step height in give parameter value
R3FPRINTM_DOUPDATE
DOUPDATE
R3FPRINTM_DOUPDATE
obj.DOUPDATE();
Don't call directly.
StepHeight
StepHeight
R3FPRINTA_StepHeight
Number
R3FLOAT
jsobj.SetStepHeight(value);
value = jsobj.GetStepHeight();
R3FLOAT value = ...;
R3SetAttrs(r3obj, R3FPRINTA_StepHeight, value, R3TAG_END);
R3FLOAT value;
R3GetAttrs(r3obj, R3FPRINTA_StepHeight, &value, R3TAG_END);
TouchTime
TouchTime
R3FPRINTA_TouchTime
Number
R3FLOAT
time
jsobj.SetTouchTime(value);
value = jsobj.GetTouchTime();
R3FLOAT value = ...;
R3SetAttrs(r3obj, R3FPRINTA_TouchTime, value, R3TAG_END);
R3FLOAT value;
R3GetAttrs(r3obj, R3FPRINTA_TouchTime, &value, R3TAG_END);
Phase
Phase
R3FPRINTA_Phase
Number
R3FLOAT
phase for the joint I.K path evaluation
jsobj.SetPhase(value);
value = jsobj.GetPhase();
R3FLOAT value = ...;
R3SetAttrs(r3obj, R3FPRINTA_Phase, value, R3TAG_END);
R3FLOAT value;
R3GetAttrs(r3obj, R3FPRINTA_Phase, &value, R3TAG_END);
Touch
Touch
R3FPRINTA_Touch
Number
R3FLOAT
time the joint resides on the foot step before taking off towards the next foot step
jsobj.SetTouch(value);
value = jsobj.GetTouch();
R3FLOAT value = ...;
R3SetAttrs(r3obj, R3FPRINTA_Touch, value, R3TAG_END);
R3FLOAT value;
R3GetAttrs(r3obj, R3FPRINTA_Touch, &value, R3TAG_END);
Handness
Handness
R3FPRINTA_Handness
Integer
R3INT
left/right handed skeletons are supported, see r3foot.h
jsobj.SetHandness(value);
value = jsobj.GetHandness();
R3INT value = ...;
R3SetAttrs(r3obj, R3FPRINTA_Handness, value, R3TAG_END);
R3INT value;
R3GetAttrs(r3obj, R3FPRINTA_Handness, &value, R3TAG_END);
JointType
JointType
R3FPRINTA_JointType
Integer
R3INT
see joint types below
jsobj.SetJointType(value);
value = jsobj.GetJointType();
R3INT value = ...;
R3SetAttrs(r3obj, R3FPRINTA_JointType, value, R3TAG_END);
R3INT value;
R3GetAttrs(r3obj, R3FPRINTA_JointType, &value, R3TAG_END);
Dynamic tags we manage in skeletons
for binding skeletons to foot prints
Indexed dynamic tags (joint specific)
Default values for dynamic tags in case they are not defined
Values for JointType tag