AnimationModule
The AnimationModule
class implements object animation.
Example
//==============================================================================
// The following example demonstrates how to animate the properties of an object
// using drivers and samplers.
//
// Project setup:
// - Insert a plane
//==============================================================================
// Load in the required modules
const Animation = require('Animation');
const FaceTracking = require('FaceTracking');
const Scene = require('Scene');
// Locate the plane in the Scene
const plane = Scene.root.find('plane0');
//==============================================================================
// Animate the plane's vertical scale according to mouth openness
//==============================================================================
// Store a reference to the mouth openness signal of a detected face
const mouthOpenness = FaceTracking.face(0).mouth.openness;
// Create a value driver using the mouth openness with the output normalized and
// clamped between 0.1 and 0.6
const mouthOpennessDriver = Animation.valueDriver(mouthOpenness, 0.1, 0.6);
// Create a sampler with a linear change from 1 to 2
const linearSampler = Animation.samplers.linear(1, 2);
// Create an animation combining the driver and sampler
const scaleAnimation = Animation.animate(mouthOpennessDriver, linearSampler);
// Bind the scale animation signal to the y-axis scale signal of the plane
plane.transform.scaleY = scaleAnimation;
//==============================================================================
// Animate the plane's horizontal position continuously
//==============================================================================
// Create a set of time driver parameters
const timeDriverParameters = {
// The duration of the driver
durationMilliseconds: 1500,
// The number of iterations before the driver stops
loopCount: Infinity,
// Should the driver 'yoyo' back and forth
mirror: true
};
// Create a time driver using the parameters
const timeDriver = Animation.timeDriver(timeDriverParameters);
// Create a sampler with a quadratic change in and out from -5 to 5
const quadraticSampler = Animation.samplers.easeInOutQuad(-5, 5);
// Create an animation combining the driver and sampler
const translationAnimation = Animation.animate(timeDriver, quadraticSampler);
// Bind the translation animation signal to the x-axis position signal of the plane
plane.transform.x = translationAnimation;
// Start the time driver (unlike value drivers this needs to be done explicitly)
timeDriver.start();
Properties
Property
Description
samplers
(get) samplers: SamplerFactory (set) (Not Available)
Specifies an instance of a SamplerFactory
object.
Methods
Method
Description
animate
animate(driver: Driver, sampler: ScalarSampler): ScalarSignal animate(driver: Driver, sampler: ArrayOfScalarSamplers): ArrayOfScalarSignals animate(driver: Driver, sampler: RotationSampler): RotationSignal animate(driver: Driver, sampler: ColorSampler): RgbaSignal
Combines the driver and the sampler to create a signal that can be used to animate arbitrary properties of arbitrary objects.
For TimeDriver
-based animations the animation will start only when TimeDriver.start
is invoked.
timeDriver
timeDriver(timeDriverParams: {durationMilliseconds: number, loopCount: ?number, mirror: ?boolean}): TimeDriver
Returns a TimeDriver
object that drives an animation for the specified parameters. loopCount
defines the number of iterations before the time driver stops; this can be infinity. When mirror
is TRUE
, the time driver follows a yoyo effect with every odd iteration going forwards and every even iteration going backwards.
valueDriver
valueDriver(value: ScalarSignal, min: number, max: number): ValueDriver
Returns a ValueDriver
object that drives an animation based on values emitted from a ScalarValue
. The signal values are normalized and clamped to maximum and minimum values.
Classes
Class
Description
The ArrayOfScalarSamplers
class describes an array of scalar samplers.
The ArrayOfScalarSignals
class describes an array of scalar signals.
The ColorSampler
class encapsulates a color sampler.
The Driver
class encapsulates an animation driver.
The RotationSampler
class is an animation sampler for object rotation.
The SamplerFactory
class creates different types of animation samplers.
The ScalarSampler
class encapsulates a scalar value sampler.
The SignalRecord
class encapsulates recording data for a value signal
The SignalRecorder
class enables recording and playback of signal values
The TimeDriver
class controls an animation.
The ValueDriver
class controls an animation value.
Last updated
Was this helpful?