用 CCD算法求解IK.
[name] 用CCD算法求解逆运动学问题.
[name] 设计用于 用 [page:MMDLoader]加载的 [page:SkinnedMesh]但也可用于普通 [page:SkinnedMesh].
var ikSolver;
// Load MMD resources and instantiate CCDIKSolver
new THREE.MMDLoader().load(
'models/mmd/miku.pmd',
function ( mesh ) {
ikSolver = new CCDIKSolver( mesh, mesh.geometry.iks );
scene.add( mesh );
}
);
function render() {
animate(); // update bones
if ( ikSolver !== undefined ) ikSolver.update();
renderer.render( scene, camera );
}
[example:webgl_loader_mmd]
[page:SkinnedMesh mesh] — [page:SkinnedMesh] , [name] 解决了 IK 问题.
[page:Array iks] — 指定了 IK 参数的[page:Object]数组. target, effector, 和 link-index 是 .skeleton.bones中的索引整数.
骨骼关系应该是 "links[ n ], links[ n - 1 ], ..., links[ 0 ], effector" 以从父到子的顺序.
创建一个新 [name].
传递给构造函数的IK参数数组.
[page:SkinnedMesh] 传递给构造函数.
返回 [page:CCDIKHelper]. 可以通过向场景添加帮助程序来可视化IK骨骼。
通过求解CCD算法更新骨骼四元数。