AnimationModule
The
AnimationModule
class implements object animation.//==============================================================================
// 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();
Property | Description |
samplers | (get) samplers: SamplerFactory (set) (Not Available) Specifies an instance of a SamplerFactory object. |
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. |
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 modified 3yr ago