Run-time marker solving

For solving from marker data in real-time, the following is needed:

  • setup your character to IKinema (Import Bones)
  • set the initial pose of the character to match the pose in the marker data
  • associate markers with bones (see attached photo) by adding position tasks
FIK::IKPositionTask *pTask = m_pIKinemaSolver->addPositionTask(CBone::IDtoName(pBone->m_iID));
  • Specify the offset between each marker and the bone associated with this marker using
 pTask->setTipOffset(vMarker.x, vMarker.y, vMarker.z);
  • Animate the markers by streaming or reading from a buffer, and apply to the solver using
pTask->setTarget(vTarg.x, vTarg.y, vTarg.z);
  • Reduce/tune Pull gain to 0.2-0.5 using:
void setP(Real value);
  • Execute Solve

This procedure can be combined with any other IKinema functionality, including: position or orientation constraints, joint stiffness, stretch, limits, etc.