Mirror Engine
V7
How To
Mirror Engine Logo

Mirror Engine API


Mirror Engine API / AnimComponent

Class: AnimComponent

The Anim Component allows an Entity to playback animations on models and entity properties.

Extends

  • Component

Properties

entity

entity: Entity

The Entity that this Component is attached to.

Inherited from

Component.entity

system

system: ComponentSystem

The ComponentSystem used to create this Component.

Inherited from

Component.system

activate

Get Signature

get activate(): boolean

Gets whether the first animation will begin playing when the scene is loaded.

Returns

boolean

Set Signature

set activate(value: boolean): void

Sets whether the first animation will begin playing when the scene is loaded.

Parameters
value

boolean

Returns

void


baseLayer

Get Signature

get baseLayer(): null | AnimComponentLayer

Returns the base layer of the state graph.

Returns

null | AnimComponentLayer


enabled

Get Signature

get enabled(): boolean

Gets the enabled state of the component.

Returns

boolean

Set Signature

set enabled(arg: boolean): void

Sets the enabled state of the component.

Parameters
arg

boolean

Returns

void

Inherited from

Component.enabled

layers

Get Signature

get layers(): AnimComponentLayer[]

Returns the animation layers available in this anim component.

Returns

AnimComponentLayer[]


normalizeWeights

Get Signature

get normalizeWeights(): boolean

Gets whether the animation component will normalize the weights of its layers by their sum total.

Returns

boolean

Set Signature

set normalizeWeights(value: boolean): void

Sets whether the animation component will normalize the weights of its layers by their sum total.

Parameters
value

boolean

Returns

void


playable

Get Signature

get playable(): boolean

Returns whether all component layers are currently playable.

Returns

boolean


playing

Get Signature

get playing(): boolean

Gets whether to play or pause all animations in the component.

Returns

boolean

Set Signature

set playing(value: boolean): void

Sets whether to play or pause all animations in the component.

Parameters
value

boolean

Returns

void


rootBone

Get Signature

get rootBone(): Entity

Gets the entity that this anim component should use as the root of the animation hierarchy.

Returns

Entity

Set Signature

set rootBone(value: Entity): void

Sets the entity that this anim component should use as the root of the animation hierarchy.

Parameters
value

Entity

Returns

void


speed

Get Signature

get speed(): number

Gets the speed multiplier for animation play back speed.

Returns

number

Set Signature

set speed(value: number): void

Sets the speed multiplier for animation play back speed. 1.0 is playback at normal speed, 0.0 pauses the animation.

Parameters
value

number

Returns

void

Methods

addLayer()

addLayer(
   name: string,
   weight?: number,
   mask?: any[],
   blendType?: string): AnimComponentLayer

Adds a new anim component layer to the anim component.

Parameters

name

string

The name of the layer to create.

weight?

number

The blending weight of the layer. Defaults to 1.

mask?

any[]

A list of paths to bones in the model which should be animated in this layer. If omitted the full model is used. Defaults to null.

blendType?

string

Defines how properties animated by this layer blend with animations of those properties in previous layers. Defaults to ANIM_LAYER_OVERWRITE.

Returns

AnimComponentLayer

The created anim component layer.


assignAnimation()

assignAnimation(
   nodePath: string,
   animTrack: AnimTrack,
   layerName?: string,
   speed?: number,
   loop?: boolean): void

Associates an animation with a state or blend tree node in the loaded state graph. If all states are linked and the AnimComponent#activate value was set to true then the component will begin playing. If no state graph is loaded, a default state graph will be created with a single state based on the provided nodePath parameter.

Parameters

nodePath

string

Either the state name or the path to a blend tree node that this animation should be associated with. Each section of a blend tree path is split using a period (.) therefore state names should not include this character (e.g "MyStateName" or "MyStateName.BlendTreeNode").

animTrack

AnimTrack

The animation track that will be assigned to this state and played whenever this state is active.

layerName?

string

The name of the anim component layer to update. If omitted the default layer is used. If no state graph has been previously loaded this parameter is ignored.

speed?

number = 1

Update the speed of the state you are assigning an animation to. Defaults to 1.

loop?

boolean = true

Update the loop property of the state you are assigning an animation to. Defaults to true.

Returns

void


findAnimationLayer()

findAnimationLayer(name: string): AnimComponentLayer

Finds a AnimComponentLayer in this component.

Parameters

name

string

The name of the anim component layer to find.

Returns

AnimComponentLayer

Layer.


fire()

fire(
   name: string,
   arg1?: any,
   arg2?: any,
   arg3?: any,
   arg4?: any,
   arg5?: any,
   arg6?: any,
   arg7?: any,
   arg8?: any): EventHandler

Fire an event, all additional arguments are passed on to the event listener.

Parameters

name

string

Name of event to fire.

arg1?

any

First argument that is passed to the event handler.

arg2?

any

Second argument that is passed to the event handler.

arg3?

any

Third argument that is passed to the event handler.

arg4?

any

Fourth argument that is passed to the event handler.

arg5?

any

Fifth argument that is passed to the event handler.

arg6?

any

Sixth argument that is passed to the event handler.

arg7?

any

Seventh argument that is passed to the event handler.

arg8?

any

Eighth argument that is passed to the event handler.

Returns

EventHandler

Self for chaining.

Example

obj.fire('test', 'This is the message')

Inherited from

Component.fire

getBoolean()

getBoolean(name: string): boolean

Returns a boolean parameter value by name.

Parameters

name

string

The name of the boolean to return the value of.

Returns

boolean

A boolean.


getFloat()

getFloat(name: string): number

Returns a float parameter value by name.

Parameters

name

string

The name of the float to return the value of.

Returns

number

A float.


getInteger()

getInteger(name: string): number

Returns an integer parameter value by name.

Parameters

name

string

The name of the integer to return the value of.

Returns

number

An integer.


getTrigger()

getTrigger(name: string): boolean

Returns a trigger parameter value by name.

Parameters

name

string

The name of the trigger to return the value of.

Returns

boolean

A boolean.


hasEvent()

hasEvent(name: string): boolean

Test if there are any handlers bound to an event name.

Parameters

name

string

The name of the event to test.

Returns

boolean

True if the object has handlers bound to the specified event name.

Example

obj.on('test', () => {}) // bind an event to 'test'
obj.hasEvent('test') // returns true
obj.hasEvent('hello') // returns false

Inherited from

Component.hasEvent

loadStateGraph()

loadStateGraph(stateGraph: any): void

Initializes component animation controllers using the provided state graph.

Parameters

stateGraph

any

The state graph asset to load into the component. Contains the states, transitions and parameters used to define a complete animation controller.

Returns

void

Example

entity.anim.loadStateGraph({
  layers: [
    {
      name: layerName,
      states: [
        {
          name: 'START',
          speed: 1
        },
        {
          name: 'Initial State',
          speed: speed,
          loop: loop,
          defaultState: true
        }
      ],
      transitions: [
        {
          from: 'START',
          to: 'Initial State'
        }
      ]
    }
  ],
  parameters: {}
})

off()

off(
   name?: string,
   callback?: HandleEventCallback,
   scope?: any): EventHandler

Detach an event handler from an event. If callback is not provided then all callbacks are unbound from the event, if scope is not provided then all events with the callback will be unbound.

Parameters

name?

string

Name of the event to unbind.

callback?

HandleEventCallback

Function to be unbound.

scope?

any

Scope that was used as the this when the event is fired.

Returns

EventHandler

Self for chaining.

Example

const handler = () => {}
obj.on('test', handler)

obj.off() // Removes all events
obj.off('test') // Removes all events called 'test'
obj.off('test', handler) // Removes all handler functions, called 'test'
obj.off('test', handler, this) // Removes all handler functions, called 'test' with scope this

Inherited from

Component.off

on()

on(
   name: string,
   callback: HandleEventCallback,
   scope?: any): EventHandle

Attach an event handler to an event.

Parameters

name

string

Name of the event to bind the callback to.

callback

HandleEventCallback

Function that is called when event is fired. Note the callback is limited to 8 arguments.

scope?

any = ...

Object to use as 'this' when the event is fired, defaults to current this.

Returns

EventHandle

Can be used for removing event in the future.

Examples

obj.on('test', (a, b) => {
  console.log(a + b)
})
obj.fire('test', 1, 2) // prints 3 to the console
const evt = obj.on('test', (a, b) => {
  console.log(a + b)
})
// some time later
evt.off()

Inherited from

Component.on

once()

once(
   name: string,
   callback: HandleEventCallback,
   scope?: any): EventHandle

Attach an event handler to an event. This handler will be removed after being fired once.

Parameters

name

string

Name of the event to bind the callback to.

callback

HandleEventCallback

Function that is called when event is fired. Note the callback is limited to 8 arguments.

scope?

any = ...

Object to use as 'this' when the event is fired, defaults to current this.

Returns

EventHandle

  • can be used for removing event in the future.

Example

obj.once('test', (a, b) => {
  console.log(a + b)
})
obj.fire('test', 1, 2) // prints 3 to the console
obj.fire('test', 1, 2) // not going to get handled

Inherited from

Component.once

rebind()

rebind(): void

Rebind all of the components layers.

Returns

void


removeNodeAnimations()

removeNodeAnimations(nodeName: string, layerName?: string): void

Removes animations from a node in the loaded state graph.

Parameters

nodeName

string

The name of the node that should have its animation tracks removed.

layerName?

string

The name of the anim component layer to update. If omitted the default layer is used.

Returns

void


removeStateGraph()

removeStateGraph(): void

Removes all layers from the anim component.

Returns

void


reset()

reset(): void

Reset all of the components layers and parameters to their initial states. If a layer was playing before it will continue playing.

Returns

void


resetTrigger()

resetTrigger(name: string): void

Resets the value of a trigger parameter that was defined in the animation components state graph to false.

Parameters

name

string

The name of the parameter to set.

Returns

void


setBoolean()

setBoolean(name: string, value: boolean): void

Sets the value of a boolean parameter that was defined in the animation components state graph.

Parameters

name

string

The name of the parameter to set.

value

boolean

The new boolean value to set this parameter to.

Returns

void


setFloat()

setFloat(name: string, value: number): void

Sets the value of a float parameter that was defined in the animation components state graph.

Parameters

name

string

The name of the parameter to set.

value

number

The new float value to set this parameter to.

Returns

void


setInteger()

setInteger(name: string, value: number): void

Sets the value of an integer parameter that was defined in the animation components state graph.

Parameters

name

string

The name of the parameter to set.

value

number

The new integer value to set this parameter to.

Returns

void


setTrigger()

setTrigger(name: string, singleFrame?: boolean): void

Sets the value of a trigger parameter that was defined in the animation components state graph to true.

Parameters

name

string

The name of the parameter to set.

singleFrame?

boolean = false

If true, this trigger will be set back to false at the end of the animation update. Defaults to false.

Returns

void

Mirror Engine Logo