骨骼动画
骨骼是什么?骨骼就是一个可以控制其它形状的对象。在threejs中,骨骼(Bone)就是一个空的Object3D对象,当然,也可以是任何Object3D对象的子类。
创建骨架
创建骨架总体来说就四步:
- 创建形状
- 创建骨架
- 为形状的每一个点指定其控制的骨骼
- 将形状和骨架中的骨骼绑定起来
往往第三步是最复杂的,因为要考虑形状的每一个点。下面是一个完整的例子,在这个例子中,是使用点的y值来划分哪个点属于哪根骨骼管的:
function createBones(){
//计算参数,这些参数在多处用到
var segmentHeight = 8;
var segmentCount = 4;
var height = segmentHeight * segmentCount;
var halfHeight = height * 0.5;
var sizing = {
segmentHeight : segmentHeight,
segmentCount : segmentCount,
height : height,
halfHeight : halfHeight
};
//创建骨架
bones = [];
var prevBone = new THREE.Bone();
bones.push( prevBone );
prevBone.posit