Skip to main content

The default Voxelize character. This can be used in Peers.createPeer to apply characters onto multiplayer peers. This can also be attached to a RigidControls instance to have a character follow the controls.

When character.set is called, the character's head will be lerp to the new rotation first, then the body will be lerp to the new rotation. This is to create a more natural looking of character rotation.

Example

const character = new VOXELIZE.Character();

// Set the nametag content.
character.username = "<placeholder>";

// Load a texture to paint on the face.
world.loader.addTexture(FunnyImageSrc, (texture) => {
character.head.paint("front", texture);
})

// Attach the character to a rigid controls.
controls.attachCharacter(character);

Character

Hierarchy

  • Group

    Character

Constructors

constructor

new Character(options?): Character

Create a new Voxelize character.

Parameters

NameTypeDescription
optionsPartial<CharacterOptions>Parameters to create a Voxelize character.

Returns

Character

Overrides

Group.constructor

Properties

body

body: CanvasBox

The actual body mesh as a paint-able CanvasBox.


bodyGroup

bodyGroup: Group<Object3DEventMap>

The sub-mesh holding the character's body.


extraData

extraData: any = null

Somewhere to store whatever you want.


head: CanvasBox

The actual head mesh as a paint-able CanvasBox.


headGroup

headGroup: Group<Object3DEventMap>

The sub-mesh holding the character's head.


leftArm

leftArm: CanvasBox

The actual left arm mesh as a paint-able CanvasBox.


leftArmGroup

leftArmGroup: Group<Object3DEventMap>

The sub-mesh holding the character's left arm.


leftLeg

leftLeg: CanvasBox

The actual left leg mesh as a paint-able CanvasBox.


leftLegGroup

leftLegGroup: Group<Object3DEventMap>

The sub-mesh holding the character's left leg.


nametag

nametag: NameTag

The nametag of the character that floats right above the head.


newBodyDirection

newBodyDirection: Quaternion

The new body direction of the character. This is used to lerp the character's body rotation.


newDirection

newDirection: Quaternion

The new head direction of the character. This is used to lerp the character's head rotation.


newPosition

newPosition: Vector3

The new position of the character. This is used to lerp the character's position


onIdle

onIdle: () => void

Type declaration

▸ (): void

A listener called when a character stops moving.

Returns

void


onMove

onMove: () => void

Type declaration

▸ (): void

A listener called when a character starts moving.

Returns

void


options

options: CharacterOptions

Parameters to create a Voxelize character.


rightArm

rightArm: CanvasBox

The actual right arm mesh as a paint-able CanvasBox.


rightArmGroup

rightArmGroup: Group<Object3DEventMap>

The sub-mesh holding the character's right arm.


rightLeg

rightLeg: CanvasBox

The actual right leg mesh as a paint-able CanvasBox.


rightLegGroup

rightLegGroup: Group<Object3DEventMap>

The sub-mesh holding the character's right leg.


speed

speed: number = 0

The speed where the character has detected movements at. When speed is 0, the arms swing slowly in idle mode, and when speed is greater than 0, the arms swing faster depending on the passed-in options.

Accessors

armColor

get armColor(): string | Color

Returns

string | Color

set armColor(color): void

Parameters

NameType
colorstring | Color

Returns

void


bodyColor

get bodyColor(): string | Color

Returns

string | Color

set bodyColor(color): void

Parameters

NameType
colorstring | Color

Returns

void


eyeHeight

get eyeHeight(): number

Get the height at which the eye of the character is situated at.

Returns

number


faceColor

get faceColor(): string | Color

Returns

string | Color

set faceColor(color): void

Parameters

NameType
colorstring | Color

Returns

void


headColor

get headColor(): string | Color

Returns

string | Color

set headColor(color): void

Parameters

NameType
colorstring | Color

Returns

void


legColor

get legColor(): string | Color

Returns

string | Color

set legColor(color): void

Parameters

NameType
colorstring | Color

Returns

void


totalHeight

get totalHeight(): number

Get the total height of the character, in other words, the sum of the heights of the head, body, and legs.

Returns

number


username

get username(): string

Get the content of the nametag of the character.

Returns

string

set username(username): void

Change the content of the user's nametag. If the nametag is empty, nothing will be rendered.

Parameters

NameType
usernamestring

Returns

void

Methods

playArmSwingAnimation

playArmSwingAnimation(): void

Play the "swing" animation.

Returns

void


set

set(position, direction): void

Set the character's position and direction that its body is situated at and the head is looking at. This uses MathUtils.directionToQuaternion to slerp the head's rotation to the new direction.

The update needs to be called to actually lerp to the new position and rotation.

Parameters

NameTypeDescription
positionnumber[]The new position of the character.
directionnumber[]The new direction of the character.

Returns

void


setArmHoldingObject

setArmHoldingObject(object, side?): void

Set the character's arm holding object.

Parameters

NameTypeDefault valueDescription
objectObject3D<Object3DEventMap>undefinedThe object to set as the arm holding object.
side"left" | "right""right"-

Returns

void


update

update(): void

Update the character's animation and rotation. After set is called, update must be called to actually lerp to the new position and rotation. Note that when a character is attached to a control, update is called automatically within the control's update loop.

Returns

void