参考サイトを見るとわかりやすいですが、面白い計算方法ですね。実装も簡単そうですし。// 注目ジョイント、エフェクタのジョイント番号、目標座標、繰り返し回数、残り繰り返しボーン数、最大ボーン数 void CFigure::ccdIKSolver(CJoint *joint, int effector, btVector3 &targetPos, int numIteration, int numBones, int numMaxBones) { // エフェクタのワールド座標 btVector3 effectorPos = m_vecJoints[effector]->m_vWorldPosition; // 注目ジョイントのワールド座標 btVector3 jointPos = joint->getParent()->m_vWorldPosition; // 注目ジョイントからの座標系に変
![CCD-IKについて](https://cdn-ak-scissors.b.st-hatena.com/image/square/126e9c63960837b5815901e11e1f6c1303c17f2b/height=288;version=1;width=512/https%3A%2F%2Fblog.seesaa.jp%2Fimg%2Fogp_logo.png)