Skeleton

Class for representing the armatures in three.js. The skeleton is defined by a hierarchy of bones.

Code Example

const bones = [];
const shoulder = new THREE.Bone();
const elbow = new THREE.Bone();
const hand = new THREE.Bone();
shoulder.add( elbow );
elbow.add( hand );
bones.push( shoulder , elbow, hand);
shoulder.position.y = -5;
elbow.position.y = 0;
hand.position.y = 5;
const armSkeleton = new THREE.Skeleton( bones );

Constructor

new Skeleton( bones : Array.<Bone>, boneInverses : Array.<Matrix4> )

Constructs a new skeleton.

bones

An array of bones.

boneInverses

An array of bone inverse matrices. If not provided, these matrices will be computed automatically via Skeleton#calculateInverses.

Properties

.boneInverses : Array.<Matrix4>

An array of bone inverse matrices.

.boneMatrices : Float32Array

An array buffer holding the bone data. Input data for Skeleton#boneTexture.

Default is null.

.boneTexture : DataTexture

A texture holding the bone data for use in the vertex shader.

Default is null.

.bones : Array.<Bone>

An array of bones defining the skeleton.

.previousBoneMatrices : Float32Array

An array buffer holding the bone data of the previous frame. Required for computing velocity. Maintained in SkinningNode.

Default is null.

Methods

.calculateInverses()

Computes the bone inverse matrices. This method resets Skeleton#boneInverses and fills it with new matrices.

.clone() : Skeleton

Returns a new skeleton with copied values from this instance.

Returns: A clone of this instance.

.computeBoneTexture() : Skeleton

Computes a data texture for passing bone data to the vertex shader.

Returns: A reference of this instance.

.dispose()

Frees the GPU-related resources allocated by this instance. Call this method whenever this instance is no longer used in your app.

.fromJSON( json : Object, bones : Object.<string, Bone> ) : Skeleton

Setups the skeleton by the given JSON and bones.

json

The skeleton as serialized JSON.

bones

An array of bones.

Returns: A reference of this instance.

.getBoneByName( name : string ) : Bone | undefined

Searches through the skeleton's bone array and returns the first with a matching name.

name

The name of the bone.

Returns: The found bone. undefined if no bone has been found.

.init()

Initializes the skeleton. This method gets automatically called by the constructor but depending on how the skeleton is created it might be necessary to call this method manually.

.pose()

Resets the skeleton to the base pose.

.toJSON() : Object

Serializes the skeleton into JSON.

See:
Returns: A JSON object representing the serialized skeleton.

.update()

Resets the skeleton to the base pose.

Source

src/objects/Skeleton.js