提交 0d890a97 编写于 作者: J Jost Schmithals

correct code style in animation docs

上级 86b07877
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<base href="../../" />
<script src="list.js"></script>
<script src="page.js"></script>
<link type="text/css" rel="stylesheet" href="page.css" />
</head>
<body>
<h1>[name]</h1>
<div class="desc">
An AnimationClip is a reusable set of keyframe tracks which represent an animation.<br /><br />
For an overview of the different elements of the three.js animation system see the
"Animation System" article in the "Next Steps" section of the manual.
</div>
<h2>Constructor</h2>
<h3>[name]( [page:String name], [page:Number duration], [page:Array tracks] )</h3>
<div>
[page:String name] - a name for this clip.<br />
[page:Number duration] - the duration of this clip (in seconds). If a negative value is passed,
the duration will be calculated from the passed *tracks* array.<br />
[page:Array tracks] - an array of [page:KeyframeTrack KeyframeTracks].<br /><br />
Note: Instead of instantiating an AnimationClip directly with the constructor, you can use one
of its static methods to create AnimationClips: from JSON ([page:.parse parse]), from morph
target sequences ([page:.CreateFromMorphTargetSequence CreateFromMorphTargetSequence],
[page:.CreateClipsFromMorphTargetSequences CreateClipsFromMorphTargetSequences]) or from
animation hierarchies ([page:.parseAnimation parseAnimation]) - if your model doesn't already
hold AnimationClips in its geometry's animations array.
</div>
<h2>Properties</h2>
<h3>[property:Number duration]</h3>
<div>
The duration of this clip (in seconds). This can be calculated from the [page:.tracks tracks]
array via [page:.resetDuration resetDuration].
</div>
<h3>[property:String name]</h3>
<div>
A name for this clip. A certain clip can be searched via [page:.findByName findByName].
</div>
<h3>[property:Array tracks]</h3>
<div>
An array containing a [page:KeyframeTrack] for each property that are animated by this clip.
</div>
<h3>[property:String uuid]</h3>
<div>
The [link:http://en.wikipedia.org/wiki/Universally_unique_identifier UUID] of this clip instance.
It gets automatically assigned and shouldn't be edited.
</div>
<h2>Methods</h2>
<h3>[method:AnimationClip optimize]()</h3>
<div>
Optimizes each track by removing equivalent sequential keys (which are common in morph target
sequences).
</div>
<h3>[method:null resetDuration]()</h3>
<div>
Sets the [page:.duration duration] of the clip to the duration of its longest
[page:KeyframeTrack].
</div>
<h3>[method:AnimationClip trim]()</h3>
<div>
Trims all tracks to the clip's duration.
</div>
<h2>Static Methods</h2>
<h3>[method:Array CreateClipsFromMorphTargetSequences]( [page:String name], [page:Array morphTargetSequence], [page:Number fps], [page:Boolean noLoop] )</h3>
<div>
Returns an array of new AnimationClips created from the [page:Geometry.morphTargets morph
target sequences] of a geometry, trying to sort morph target names into animation-group-based
patterns like "Walk_001, Walk_002, Run_001, Run_002 ..."<br /><br />
This method is called by the [page:JSONLoader] internally, and it uses
[page:.CreateFromMorphTargetSequence CreateFromMorphTargetSequence].
</div>
<h3>[method:AnimationClip CreateFromMorphTargetSequence]( [page:String name], [page:Array morphTargetSequence], [page:Number fps], [page:Boolean noLoop] )</h3>
<div>
Returns a new AnimationClip from the passed [page:Geometry.morphTargets morph targets array]
of a geometry, taking a name and the number of frames per second.<br /><br />
Note: The fps parameter is required, but the animation speed can be overridden in an
*AnimationAction* via [page:AnimationAction.setDuration animationAction.setDuration].
</div>
<h3>[method:AnimationClip findByName]( [page:Object objectOrClipArray], [page:String name] )</h3>
<div>
Searches for an AnimationClip by name, taking as its first parameter either an array of
AnimationClips, or a mesh or geometry that contains an array named "animations".
</div>
<h3>[method:AnimationClip parse]( [page:Object json] )</h3>
<div>
Parses a JSON representation of a clip and returns an AnimationClip.
</div>
<h3>[method:AnimationClip parseAnimation]( [page:Object animation], [page:Array bones] )</h3>
<div>
Parses the animation.hierarchy format and returns an AnimationClip.
</div>
<h3>[method:Object toJSON]( [page:AnimationClip clip] )</h3>
<div>
Takes an AnimationClip and returns a JSON object.
</div>
<h2>Source</h2>
[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
</body>
<head>
<meta charset="utf-8" />
<base href="../../" />
<script src="list.js"></script>
<script src="page.js"></script>
<link type="text/css" rel="stylesheet" href="page.css" />
</head>
<body>
<h1>[name]</h1>
<div class="desc">
An AnimationClip is a reusable set of keyframe tracks which represent an animation.<br /><br />
For an overview of the different elements of the three.js animation system see the
"Animation System" article in the "Next Steps" section of the manual.
</div>
<h2>Constructor</h2>
<h3>[name]( [page:String name], [page:Number duration], [page:Array tracks] )</h3>
<div>
[page:String name] - a name for this clip.<br />
[page:Number duration] - the duration of this clip (in seconds). If a negative value is passed,
the duration will be calculated from the passed *tracks* array.<br />
[page:Array tracks] - an array of [page:KeyframeTrack KeyframeTracks].<br /><br />
Note: Instead of instantiating an AnimationClip directly with the constructor, you can use one
of its static methods to create AnimationClips: from JSON ([page:.parse parse]), from morph
target sequences ([page:.CreateFromMorphTargetSequence CreateFromMorphTargetSequence],
[page:.CreateClipsFromMorphTargetSequences CreateClipsFromMorphTargetSequences]) or from
animation hierarchies ([page:.parseAnimation parseAnimation]) - if your model doesn't already
hold AnimationClips in its geometry's animations array.
</div>
<h2>Properties</h2>
<h3>[property:Number duration]</h3>
<div>
The duration of this clip (in seconds). This can be calculated from the [page:.tracks tracks]
array via [page:.resetDuration resetDuration].
</div>
<h3>[property:String name]</h3>
<div>
A name for this clip. A certain clip can be searched via [page:.findByName findByName].
</div>
<h3>[property:Array tracks]</h3>
<div>
An array containing a [page:KeyframeTrack] for each property that are animated by this clip.
</div>
<h3>[property:String uuid]</h3>
<div>
The [link:http://en.wikipedia.org/wiki/Universally_unique_identifier UUID] of this clip instance.
It gets automatically assigned and shouldn't be edited.
</div>
<h2>Methods</h2>
<h3>[method:AnimationClip optimize]()</h3>
<div>
Optimizes each track by removing equivalent sequential keys (which are common in morph target
sequences).
</div>
<h3>[method:null resetDuration]()</h3>
<div>
Sets the [page:.duration duration] of the clip to the duration of its longest
[page:KeyframeTrack].
</div>
<h3>[method:AnimationClip trim]()</h3>
<div>
Trims all tracks to the clip's duration.
</div>
<h2>Static Methods</h2>
<h3>[method:Array CreateClipsFromMorphTargetSequences]( [page:String name], [page:Array morphTargetSequence], [page:Number fps], [page:Boolean noLoop] )</h3>
<div>
Returns an array of new AnimationClips created from the [page:Geometry.morphTargets morph
target sequences] of a geometry, trying to sort morph target names into animation-group-based
patterns like "Walk_001, Walk_002, Run_001, Run_002 ..."<br /><br />
This method is called by the [page:JSONLoader] internally, and it uses
[page:.CreateFromMorphTargetSequence CreateFromMorphTargetSequence].
</div>
<h3>[method:AnimationClip CreateFromMorphTargetSequence]( [page:String name], [page:Array morphTargetSequence], [page:Number fps], [page:Boolean noLoop] )</h3>
<div>
Returns a new AnimationClip from the passed [page:Geometry.morphTargets morph targets array]
of a geometry, taking a name and the number of frames per second.<br /><br />
Note: The fps parameter is required, but the animation speed can be overridden in an
*AnimationAction* via [page:AnimationAction.setDuration animationAction.setDuration].
</div>
<h3>[method:AnimationClip findByName]( [page:Object objectOrClipArray], [page:String name] )</h3>
<div>
Searches for an AnimationClip by name, taking as its first parameter either an array of
AnimationClips, or a mesh or geometry that contains an array named "animations".
</div>
<h3>[method:AnimationClip parse]( [page:Object json] )</h3>
<div>
Parses a JSON representation of a clip and returns an AnimationClip.
</div>
<h3>[method:AnimationClip parseAnimation]( [page:Object animation], [page:Array bones] )</h3>
<div>
Parses the animation.hierarchy format and returns an AnimationClip.
</div>
<h3>[method:Object toJSON]( [page:AnimationClip clip] )</h3>
<div>
Takes an AnimationClip and returns a JSON object.
</div>
<h2>Source</h2>
[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
</body>
</html>
......@@ -10,102 +10,102 @@
<body>
<h1>[name]</h1>
<div class="desc">
The AnimationMixer is a player for animations on a particular object in the scene. When
multiple objects in the scene are animated independently, one AnimationMixer may be used for
each object.<br /><br />
For an overview of the different elements of the three.js animation system see the
"Animation System" article in the "Next Steps" section of the manual.
</div>
<h2>Constructor</h2>
<h3>[name]( [page:Object3D rootObject] )</h3>
<div>
[page:Object3D rootObject] - the object whose animations shall be played by this mixer.<br />
</div>
<h2>Properties</h2>
<h3>[property:Number time]</h3>
<div>
The global mixer time (in seconds; starting with 0 on the mixer's creation).
</div>
<h3>[property:Number timeScale]</h3>
<div>
A scaling factor for the global [page:.time mixer time].<br /><br />
Note: Setting the mixer's timeScale to 0 and later back to 1 is a possibility to pause/unpause
all actions that are controlled by this mixer.
</div>
<h2>Methods</h2>
<h3>[method:AnimationAction clipAction]([page:AnimationClip clip], [page:Object3D optionalRoot])</h3>
<div>
Returns an [page:AnimationAction] for the passed clip, optionally using a root object different
from the mixer's default root. The first parameter can be either an [page:AnimationClip] object
or the name of an AnimationClip.<br /><br />
If an action fitting these parameters doesn't yet exist, it will be created by this method.<br /><br />
Note: Calling this method several times with the same parameters returns always the same clip
instance.
</div>
<h3>[method:AnimationAction existingAction]([page:AnimationClip clip], [page:Object3D optionalRoot])</h3>
<div>
Returns an existing [page:AnimationAction] for the passed clip, optionally using a root object
different from the mixer's default root.<br /><br />
The first parameter can be either an [page:AnimationClip] object or the name of an AnimationClip.
</div>
<h3>[method:AnimationMixer stopAllAction]()</h3>
<div>
Deactivates all previously scheduled actions on this mixer.
</div>
<h3>[method:AnimationMixer update]([page:Number deltaTimeInSeconds]) </h3>
<div>
Advances the global mixer time and updates the animation.<br /><br />
This is usually done in the render loop, passing [page:Clock.getDelta clock.getDelta] scaled by the mixer's [page:.timeScale timeScale]).
</div>
<h3>[method:Object3D getRoot]()</h3>
<div>
Returns this mixer's root object.
</div>
<h3>[method:null uncacheClip]([page:AnimationClip clip])</h3>
<div>
Deallocates all memory resources for a clip.
</div>
<h3>[method:null uncacheRoot]([page:Object3D root]) </h3>
<div>
Deallocates all memory resources for a root object.
</div>
<h3>[method:null uncacheAction]([page:AnimationClip clip], [page:Object3D optionalRoot])</h3>
<div>
Deallocates all memory resources for an action.
</div>
<h2>Source</h2>
[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
<div class="desc">
The AnimationMixer is a player for animations on a particular object in the scene. When
multiple objects in the scene are animated independently, one AnimationMixer may be used for
each object.<br /><br />
For an overview of the different elements of the three.js animation system see the
"Animation System" article in the "Next Steps" section of the manual.
</div>
<h2>Constructor</h2>
<h3>[name]( [page:Object3D rootObject] )</h3>
<div>
[page:Object3D rootObject] - the object whose animations shall be played by this mixer.<br />
</div>
<h2>Properties</h2>
<h3>[property:Number time]</h3>
<div>
The global mixer time (in seconds; starting with 0 on the mixer's creation).
</div>
<h3>[property:Number timeScale]</h3>
<div>
A scaling factor for the global [page:.time mixer time].<br /><br />
Note: Setting the mixer's timeScale to 0 and later back to 1 is a possibility to pause/unpause
all actions that are controlled by this mixer.
</div>
<h2>Methods</h2>
<h3>[method:AnimationAction clipAction]([page:AnimationClip clip], [page:Object3D optionalRoot])</h3>
<div>
Returns an [page:AnimationAction] for the passed clip, optionally using a root object different
from the mixer's default root. The first parameter can be either an [page:AnimationClip] object
or the name of an AnimationClip.<br /><br />
If an action fitting these parameters doesn't yet exist, it will be created by this method.<br /><br />
Note: Calling this method several times with the same parameters returns always the same clip
instance.
</div>
<h3>[method:AnimationAction existingAction]([page:AnimationClip clip], [page:Object3D optionalRoot])</h3>
<div>
Returns an existing [page:AnimationAction] for the passed clip, optionally using a root object
different from the mixer's default root.<br /><br />
The first parameter can be either an [page:AnimationClip] object or the name of an AnimationClip.
</div>
<h3>[method:AnimationMixer stopAllAction]()</h3>
<div>
Deactivates all previously scheduled actions on this mixer.
</div>
<h3>[method:AnimationMixer update]([page:Number deltaTimeInSeconds]) </h3>
<div>
Advances the global mixer time and updates the animation.<br /><br />
This is usually done in the render loop, passing [page:Clock.getDelta clock.getDelta] scaled by the mixer's [page:.timeScale timeScale]).
</div>
<h3>[method:Object3D getRoot]()</h3>
<div>
Returns this mixer's root object.
</div>
<h3>[method:null uncacheClip]([page:AnimationClip clip])</h3>
<div>
Deallocates all memory resources for a clip.
</div>
<h3>[method:null uncacheRoot]([page:Object3D root]) </h3>
<div>
Deallocates all memory resources for a root object.
</div>
<h3>[method:null uncacheAction]([page:AnimationClip clip], [page:Object3D optionalRoot])</h3>
<div>
Deallocates all memory resources for an action.
</div>
<h2>Source</h2>
[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
</body>
</html>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<base href="../../" />
<script src="list.js"></script>
<script src="page.js"></script>
<link type="text/css" rel="stylesheet" href="page.css" />
</head>
<body>
<h1>[name]</h1>
<head>
<meta charset="utf-8" />
<base href="../../" />
<script src="list.js"></script>
<script src="page.js"></script>
<link type="text/css" rel="stylesheet" href="page.css" />
</head>
<body>
<h1>[name]</h1>
<div class="desc">A group of objects that receives a shared animation state.<br /><br />
For an overview of the different elements of the three.js animation system see the
"Animation System" article in the "Next Steps" section of the manual.
</div>
<div class="desc">A group of objects that receives a shared animation state.<br /><br />
<h2>Usage:</h2>
For an overview of the different elements of the three.js animation system see the
"Animation System" article in the "Next Steps" section of the manual.
</div>
<div class="desc">
Add objects you would otherwise pass as 'root' to the constructor or the [page:AnimationMixer.clipAction clipAction]
method of [page:AnimationMixer AnimationMixer] and instead pass this object as 'root'.<br /><br />
<h2>Usage:</h2>
Note that objects of this class appear as one object to the mixer,
so cache control of the individual objects must be done on the group.
</div>
<div class="desc">
Add objects you would otherwise pass as 'root' to the constructor or the [page:AnimationMixer.clipAction clipAction]
method of [page:AnimationMixer AnimationMixer] and instead pass this object as 'root'.<br /><br />
Note that objects of this class appear as one object to the mixer,
so cache control of the individual objects must be done on the group.
</div>
<h2>Limitations</h2>
<div class="desc">
The animated properties must be compatible among all objects in the group.<br /><br />
A single property can either be controlled through a target group or directly, but not both.
</div>
<h2>Limitations</h2>
<div class="desc">
The animated properties must be compatible among all objects in the group.<br /><br />
A single property can either be controlled through a target group or directly, but not both.
</div>
<h2>Constructor</h2>
<h2>Constructor</h2>
<h3>[name]( [page:object obj1], [page:object obj2], [page:object obj3], ... )</h3>
[page:object obj] - an abitrary number of meshes that share the same animation state.<br />
<h2>Properties</h2>
<h3>[name]( [page:object obj1], [page:object obj2], [page:object obj3], ... )</h3>
[page:object obj] - an abitrary number of meshes that share the same animation state.<br />
<h3>[property:object stats]</h3>
<div>
An object that contains some informations of this *AnimationObjectGroup* (total number, number
in use, number of bindings per object)
</div>
<h3>[property:String uuid]</h3>
<div>
The [link:http://en.wikipedia.org/wiki/Universally_unique_identifier UUID] of this
*AnimationObjectGroup*. It gets automatically assigned and shouldn't be edited.
</div>
<h2>Properties</h2>
<h2>Methods</h2>
<h3>[property:object stats]</h3>
<div>
An object that contains some informations of this *AnimationObjectGroup* (total number, number
in use, number of bindings per object)
</div>
<h3>[method:null add]( [page:object obj1], [page:object obj2], [page:object obj3], ... )</h3>
<div>
Adds an arbitrary number of objects to this *AnimationObjectGroup*.
</div>
<h3>[property:String uuid]</h3>
<div>
The [link:http://en.wikipedia.org/wiki/Universally_unique_identifier UUID] of this
*AnimationObjectGroup*. It gets automatically assigned and shouldn't be edited.
</div>
<h3>[method:null remove]( [page:object obj1], [page:object obj2], [page:object obj3], ... )</h3>
<div>
Removes an arbitrary number of objects from this *AnimationObjectGroup*.
</div>
<h3>[method:null uncache]( [page:object obj1], [page:object obj2], [page:object obj3], ... )</h3>
<div>
Deallocates all memory resources for the passed objects of this *AnimationObjectGroup*.
</div>
<h2>Methods</h2>
<h2>Source</h2>
<h3>[method:null add]( [page:object obj1], [page:object obj2], [page:object obj3], ... )</h3>
<div>
Adds an arbitrary number of objects to this *AnimationObjectGroup*.
</div>
<h3>[method:null remove]( [page:object obj1], [page:object obj2], [page:object obj3], ... )</h3>
<div>
Removes an arbitrary number of objects from this *AnimationObjectGroup*.
</div>
[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
</body>
<h3>[method:null uncache]( [page:object obj1], [page:object obj2], [page:object obj3], ... )</h3>
<div>
Deallocates all memory resources for the passed objects of this *AnimationObjectGroup*.
</div>
<h2>Source</h2>
[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
</body>
</html>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<base href="../../" />
<script src="list.js"></script>
<script src="page.js"></script>
<link type="text/css" rel="stylesheet" href="page.css" />
</head>
<body>
<h1>[name]</h1>
<div class="desc">
An object with various functions to assist with animations, used internally.
</div>
<h2>Methods</h2>
<h3>[method:Array arraySlice]( array, from, to )</h3>
<div>
This is the same as Array.prototype.slice, but also works on typed arrays.
</div>
<h3>[method:Array convertArray]( array, type, forceClone )</h3>
<div>
Converts an array to a specific type.
</div>
<h3>[method:Array flattenJSON]( jsonKeys, times, values, valuePropertyName )</h3>
<div>
Used for parsing AOS keyframe formats.
</div>
<h3>[method:Array getKeyframeOrder]( times )</h3>
<div>
Returns an array by which times and values can be sorted.
</div>
<h3>[method:Boolean isTypedArray]( object )</h3>
<div>
Returns *true* if the object is a typed array.
</div>
<h3>[method:Array sortedArray]( values, stride, order )</h3>
<div>
Sorts the array previously returned by [page:AnimationUtils.getKeyframeOrder getKeyframeOrder].
</div>
<h2>Source</h2>
[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
</body>
<head>
<meta charset="utf-8" />
<base href="../../" />
<script src="list.js"></script>
<script src="page.js"></script>
<link type="text/css" rel="stylesheet" href="page.css" />
</head>
<body>
<h1>[name]</h1>
<div class="desc">
An object with various functions to assist with animations, used internally.
</div>
<h2>Methods</h2>
<h3>[method:Array arraySlice]( array, from, to )</h3>
<div>
This is the same as Array.prototype.slice, but also works on typed arrays.
</div>
<h3>[method:Array convertArray]( array, type, forceClone )</h3>
<div>
Converts an array to a specific type.
</div>
<h3>[method:Array flattenJSON]( jsonKeys, times, values, valuePropertyName )</h3>
<div>
Used for parsing AOS keyframe formats.
</div>
<h3>[method:Array getKeyframeOrder]( times )</h3>
<div>
Returns an array by which times and values can be sorted.
</div>
<h3>[method:Boolean isTypedArray]( object )</h3>
<div>
Returns *true* if the object is a typed array.
</div>
<h3>[method:Array sortedArray]( values, stride, order )</h3>
<div>
Sorts the array previously returned by [page:AnimationUtils.getKeyframeOrder getKeyframeOrder].
</div>
<h2>Source</h2>
[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
</body>
</html>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<base href="../../" />
<script src="list.js"></script>
<script src="page.js"></script>
<link type="text/css" rel="stylesheet" href="page.css" />
</head>
<body>
<h1>[name]</h1>
<head>
<meta charset="utf-8" />
<base href="../../" />
<script src="list.js"></script>
<script src="page.js"></script>
<link type="text/css" rel="stylesheet" href="page.css" />
</head>
<body>
<h1>[name]</h1>
<div class="desc">
This holds a reference to a real property in the scene graph; used internally.
</div>
<div class="desc">
This holds a reference to a real property in the scene graph; used internally.
</div>
<h2>Constructor</h2>
<h2>Constructor</h2>
<h3>[name]( [page:Object3D rootNode], path, parsedPath )</h3>
<div>
-- [page:Object3D rootNode]:
-- path
-- parsedPath (optional)
<h3>[name]( [page:Object3D rootNode], path, parsedPath )</h3>
<div>
-- [page:Object3D rootNode]:
-- path
-- parsedPath (optional)
</div>
</div>
<h2>Properties</h2>
<h2>Properties</h2>
<h3>[property:Number path]</h3>
<div>
<h3>[property:Number path]</h3>
<div>
</div>
</div>
<h3>[property:Number parsedPath]</h3>
<div>
<h3>[property:Number parsedPath]</h3>
<div>
</div>
</div>
<h3>[property:Number node]</h3>
<div>
<h3>[property:Number node]</h3>
<div>
</div>
</div>
<h3>[property:Number rootNode]</h3>
<div>
<h3>[property:Number rootNode]</h3>
<div>
</div>
</div>
<h3>[property:Object BindingType]</h3>
<div>
<h3>[property:Object BindingType]</h3>
<div>
</div>
</div>
<h3>[property:Object Versioning]</h3>
<div>
<h3>[property:Object Versioning]</h3>
<div>
</div>
</div>
<h3>[property:Array GetterByBindingType]</h3>
<div>
<h3>[property:Array GetterByBindingType]</h3>
<div>
</div>
</div>
<h3>[property:Array SetterByBindingTypeAndVersioning]</h3>
<div>
<h3>[property:Array SetterByBindingTypeAndVersioning]</h3>
<div>
</div>
</div>
<h2>Methods</h2>
<h2>Methods</h2>
<h3>[method:null getValue]( [page:Array targetArray], [page:Number offset] )</h3>
<div>
</div>
<h3>[method:null getValue]( [page:Array targetArray], [page:Number offset] )</h3>
<div>
</div>
<h3>[method:null setValue]( [page:Array sourceArray], [page:Number offset] )</h3>
<div>
</div>
<h3>[method:null setValue]( [page:Array sourceArray], [page:Number offset] )</h3>
<div>
</div>
<h3>[method:null bind]( )</h3>
<div>
Create getter / setter pair for a property in the scene graph. Used internally by
[page:PropertyBinding.getValue getValue] and [page:PropertyBinding.setValue setValue].
</div>
<h3>[method:null bind]( )</h3>
<div>
Create getter / setter pair for a property in the scene graph. Used internally by
[page:PropertyBinding.getValue getValue] and [page:PropertyBinding.setValue setValue].
</div>
<h3>[method:null unbind]( )</h3>
<div>
Unbind getter / setter pair for a property in the scene graph.
</div>
<h3>[method:null unbind]( )</h3>
<div>
Unbind getter / setter pair for a property in the scene graph.
</div>
<h3>[method:Constructor Composite]( targetGroup, path, optionalParsedPath )</h3>
<div>
Create a new Composite PropertyBinding.
</div>
<h3>[method:Constructor Composite]( targetGroup, path, optionalParsedPath )</h3>
<div>
Create a new Composite PropertyBinding.
</div>
<h3>[method:Constructor create]( root, path, parsedPath )</h3>
<div>
Create a new Composite PropertyBinding (if root is an [page:AnimationObjectGroup]) or PropertyBinding.
</div>
<h3>[method:Constructor create]( root, path, parsedPath )</h3>
<div>
Create a new Composite PropertyBinding (if root is an [page:AnimationObjectGroup]) or PropertyBinding.
</div>
<h3>[method:Constructor parseTrackName]( trackName )</h3>
<div>
Matches strings in the following forms:<br />
-- nodeName.property<br />
-- nodeName.property[accessor]<br />
-- nodeName.material.property[accessor]<br />
-- uuid.property[accessor]<br />
-- uuid.objectName[objectIndex].propertyName[propertyIndex]<br />
-- parentName/nodeName.property<br />
-- parentName/parentName/nodeName.property[index]<br />
-- .bone[Armature.DEF_cog].position<br />
-- scene:helium_balloon_model:helium_balloon_model.position
</div>
<h3>[method:Constructor parseTrackName]( trackName )</h3>
<div>
Matches strings in the following forms:<br />
-- nodeName.property<br />
-- nodeName.property[accessor]<br />
-- nodeName.material.property[accessor]<br />
-- uuid.property[accessor]<br />
-- uuid.objectName[objectIndex].propertyName[propertyIndex]<br />
-- parentName/nodeName.property<br />
-- parentName/parentName/nodeName.property[index]<br />
-- .bone[Armature.DEF_cog].position<br />
-- scene:helium_balloon_model:helium_balloon_model.position
</div>
<h3>[method:Constructor findNode]( root, nodeName )</h3>
<div>
Find a node in a node tree or [page:Skeleton Skeleton].
</div>
<h3>[method:Constructor findNode]( root, nodeName )</h3>
<div>
Find a node in a node tree or [page:Skeleton Skeleton].
</div>
<h2>Source</h2>
<h2>Source</h2>
[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
</body>
[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
</body>
</html>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<base href="../../" />
<script src="list.js"></script>
<script src="page.js"></script>
<link type="text/css" rel="stylesheet" href="page.css" />
</head>
<body>
<h1>[name]</h1>
<head>
<meta charset="utf-8" />
<base href="../../" />
<script src="list.js"></script>
<script src="page.js"></script>
<link type="text/css" rel="stylesheet" href="page.css" />
</head>
<body>
<h1>[name]</h1>
<div class="desc">
Buffered scene graph property that allows weighted accumulation; used internally.
</div>
<div class="desc">
Buffered scene graph property that allows weighted accumulation; used internally.
</div>
<h2>Constructor</h2>
<h2>Constructor</h2>
<h3>[name]( binding, typeName, valueSize )</h3>
<div>
-- binding <br />
-- typeName <br />
-- valueSize <br />
</div>
<h3>[name]( binding, typeName, valueSize )</h3>
<div>
-- binding <br />
-- typeName <br />
-- valueSize <br />
</div>
<h2>Properties</h2>
<h2>Properties</h2>
<h3>[property:Number binding]</h3>
<div>
<h3>[property:Number binding]</h3>
<div>
</div>
</div>
<h3>[property:Number buffer]</h3>
<div>
Buffer with size [page:PropertyMixer valueSize] * 4. <br /><br />
This has the layout: [ incoming | accu0 | accu1 | orig ]<br /><br />
Interpolators can use .buffer as their .result and the data then goes to 'incoming'.<br />
'accu0' and 'accu1' are used frame-interleaved for the cumulative result and
are compared to detect changes.<br />
'orig' stores the original state of the property.<br />
</div>
<h3>[property:Number buffer]</h3>
<div>
Buffer with size [page:PropertyMixer valueSize] * 4. <br /><br />
This has the layout: [ incoming | accu0 | accu1 | orig ]<br /><br />
Interpolators can use .buffer as their .result and the data then goes to 'incoming'.<br />
'accu0' and 'accu1' are used frame-interleaved for the cumulative result and
are compared to detect changes.<br />
'orig' stores the original state of the property.<br />
</div>
<h3>[property:Number cumulativeWeight]</h3>
<div>
Default is *0*.
</div>
<h3>[property:Number cumulativeWeight]</h3>
<div>
Default is *0*.
</div>
<h3>[property:Number valueSize]</h3>
<div>
<h3>[property:Number valueSize]</h3>
<div>
</div>
</div>
<h3>[property:Number referenceCount]</h3>
<div>
Default is *0*.
</div>
<h3>[property:Number referenceCount]</h3>
<div>
Default is *0*.
</div>
<h3>[property:Number useCount]</h3>
<div>
Default is *0*.
</div>
<h3>[property:Number useCount]</h3>
<div>
Default is *0*.
</div>
<h2>Methods</h2>
<h2>Methods</h2>
<h3>[method:null accumulate]( accuIndex, weight )</h3>
<div>
Accumulate data in [page:PropertyMixer.buffer buffer][accuIndex] 'incoming' region into 'accu[i]'.<br />
<h3>[method:null accumulate]( accuIndex, weight )</h3>
<div>
Accumulate data in [page:PropertyMixer.buffer buffer][accuIndex] 'incoming' region into 'accu[i]'.<br />
If weight is *0* this does nothing.
</div>
If weight is *0* this does nothing.
</div>
<h3>[method:null apply]( accuIndex )</h3>
<div>
Apply the state of [page:PropertyMixer.buffer buffer] 'accu[i]' to the binding when accus differ.
</div>
<h3>[method:null apply]( accuIndex )</h3>
<div>
Apply the state of [page:PropertyMixer.buffer buffer] 'accu[i]' to the binding when accus differ.
</div>
<h3>[method:null saveOriginalState]( )</h3>
<div>
Remember the state of the bound property and copy it to both accus.
</div>
<h3>[method:null saveOriginalState]( )</h3>
<div>
Remember the state of the bound property and copy it to both accus.
</div>
<h3>[method:null restoreOriginalState]( )</h3>
<div>
Apply the state previously taken via 'saveOriginalState' to the binding.
</div>
<h3>[method:null restoreOriginalState]( )</h3>
<div>
Apply the state previously taken via 'saveOriginalState' to the binding.
</div>
<h2>Source</h2>
<h2>Source</h2>
[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
</body>
[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
</body>
</html>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<base href="../../../" />
<script src="list.js"></script>
<script src="page.js"></script>
<link type="text/css" rel="stylesheet" href="page.css" />
</head>
<body>
[page:KeyframeTrack] &rarr;
<h1>[name]</h1>
<div class="desc">
A Track of boolean keyframe values.
</div>
<h2>Constructor</h2>
<h3>[name]( [page:String name], [page:Array times], [page:Array values] )</h3>
<div>
[page:String name] - (required) identifier for the KeyframeTrack.<br />
[page:Array times] - (required) array of keyframe times.<br />
[page:Array values] - values for the keyframes at the times specified.<br />
</div>
<h2>Properties</h2>
<div class="desc">
See [page:KeyframeTrack] for inherited properties.
</div>
<h3>[property:Constant DefaultInterpolation]</h3>
<div>
The default interpolation type to use, [page:Animation InterpolateDiscrete].
</div>
<h3>[property:Array ValueBufferType]</h3>
<div>
A normal Array (no Float32Array in this case, unlike *ValueBufferType* of [page:KeyframeTrack]).
</div>
<h3>[property:String ValueTypeName]</h3>
<div>
String 'bool'.
</div>
<h2>Methods</h2>
<div class="desc">
See [page:KeyframeTrack] for inherited methods.
</div>
<h3>[method:null InterpolantFactoryMethodLinear ]()</h3>
<div>
The value of this method here is 'undefined', as it does not make sense for discrete properties.
</div>
<h3>[method:null InterpolantFactoryMethodSmooth ]()</h3>
<div>
The value of this method here is 'undefined', as it does not make sense for discrete properties.
</div>
<h2>Source</h2>
[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
</body>
<head>
<meta charset="utf-8" />
<base href="../../../" />
<script src="list.js"></script>
<script src="page.js"></script>
<link type="text/css" rel="stylesheet" href="page.css" />
</head>
<body>
[page:KeyframeTrack] &rarr;
<h1>[name]</h1>
<div class="desc">
A Track of boolean keyframe values.
</div>
<h2>Constructor</h2>
<h3>[name]( [page:String name], [page:Array times], [page:Array values] )</h3>
<div>
[page:String name] - (required) identifier for the KeyframeTrack.<br />
[page:Array times] - (required) array of keyframe times.<br />
[page:Array values] - values for the keyframes at the times specified.<br />
</div>
<h2>Properties</h2>
<div class="desc">
See [page:KeyframeTrack] for inherited properties.
</div>
<h3>[property:Constant DefaultInterpolation]</h3>
<div>
The default interpolation type to use, [page:Animation InterpolateDiscrete].
</div>
<h3>[property:Array ValueBufferType]</h3>
<div>
A normal Array (no Float32Array in this case, unlike *ValueBufferType* of [page:KeyframeTrack]).
</div>
<h3>[property:String ValueTypeName]</h3>
<div>
String 'bool'.
</div>
<h2>Methods</h2>
<div class="desc">
See [page:KeyframeTrack] for inherited methods.
</div>
<h3>[method:null InterpolantFactoryMethodLinear ]()</h3>
<div>
The value of this method here is 'undefined', as it does not make sense for discrete properties.
</div>
<h3>[method:null InterpolantFactoryMethodSmooth ]()</h3>
<div>
The value of this method here is 'undefined', as it does not make sense for discrete properties.
</div>
<h2>Source</h2>
[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
</body>
</html>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<base href="../../../" />
<script src="list.js"></script>
<script src="page.js"></script>
<link type="text/css" rel="stylesheet" href="page.css" />
</head>
<body>
[page:KeyframeTrack] &rarr;
<h1>[name]</h1>
<div class="desc">
A Track of keyframe values that represent color changes.<br /><br />
The very basic implementation of this subclass has nothing special yet. However, this is the place
for color space parameterization.
</div>
<h2>Constructor</h2>
<h3>[name]( [page:String name], [page:Array times], [page:Array values] )</h3>
<div>
[page:String name] - (required) identifier for the KeyframeTrack.<br />
[page:Array times] - (required) array of keyframe times.<br />
[page:Array values] - values for the keyframes at the times specified.<br />
[page:Constant interpolation] - the type of interpolation to use. See
[page:Animation Animation Constants] for possible values. Default is
[page:Animation InterpolateLinear].
</div>
<h2>Properties</h2>
<div class="desc">
See [page:KeyframeTrack] for inherited properties.
</div>
<h3>[property:String ValueTypeName]</h3>
<div>
String 'color'.
</div>
<h2>Methods</h2>
<div class="desc">
See [page:KeyframeTrack] for inherited methods.
</div>
<h2>Source</h2>
[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
</body>
<head>
<meta charset="utf-8" />
<base href="../../../" />
<script src="list.js"></script>
<script src="page.js"></script>
<link type="text/css" rel="stylesheet" href="page.css" />
</head>
<body>
[page:KeyframeTrack] &rarr;
<h1>[name]</h1>
<div class="desc">
A Track of keyframe values that represent color changes.<br /><br />
The very basic implementation of this subclass has nothing special yet. However, this is the place
for color space parameterization.
</div>
<h2>Constructor</h2>
<h3>[name]( [page:String name], [page:Array times], [page:Array values] )</h3>
<div>
[page:String name] - (required) identifier for the KeyframeTrack.<br />
[page:Array times] - (required) array of keyframe times.<br />
[page:Array values] - values for the keyframes at the times specified.<br />
[page:Constant interpolation] - the type of interpolation to use. See
[page:Animation Animation Constants] for possible values. Default is
[page:Animation InterpolateLinear].
</div>
<h2>Properties</h2>
<div class="desc">
See [page:KeyframeTrack] for inherited properties.
</div>
<h3>[property:String ValueTypeName]</h3>
<div>
String 'color'.
</div>
<h2>Methods</h2>
<div class="desc">
See [page:KeyframeTrack] for inherited methods.
</div>
<h2>Source</h2>
[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
</body>
</html>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<base href="../../../" />
<script src="list.js"></script>
<script src="page.js"></script>
<link type="text/css" rel="stylesheet" href="page.css" />
</head>
<body>
[page:KeyframeTrack] &rarr;
<h1>[name]</h1>
<div class="desc">
A Track of numeric keyframe values.
</div>
<h2>Constructor</h2>
<h3>[name]( [page:String name], [page:Array times], [page:Array values] )</h3>
<div>
[page:String name] - (required) identifier for the KeyframeTrack.<br />
[page:Array times] - (required) array of keyframe times.<br />
[page:Array values] - values for the keyframes at the times specified.<br />
[page:Constant interpolation] - the type of interpolation to use. See
[page:Animation Animation Constants] for possible values. Default is
[page:Animation InterpolateLinear].
</div>
<h2>Properties</h2>
<div class="desc">
See [page:KeyframeTrack] for inherited properties.
</div>
<h3>[property:String ValueTypeName]</h3>
<div>
String 'number'.
</div>
<h2>Methods</h2>
<div class="desc">
See [page:KeyframeTrack] for inherited methods.
</div>
<h2>Source</h2>
[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
</body>
<head>
<meta charset="utf-8" />
<base href="../../../" />
<script src="list.js"></script>
<script src="page.js"></script>
<link type="text/css" rel="stylesheet" href="page.css" />
</head>
<body>
[page:KeyframeTrack] &rarr;
<h1>[name]</h1>
<div class="desc">
A Track of numeric keyframe values.
</div>
<h2>Constructor</h2>
<h3>[name]( [page:String name], [page:Array times], [page:Array values] )</h3>
<div>
[page:String name] - (required) identifier for the KeyframeTrack.<br />
[page:Array times] - (required) array of keyframe times.<br />
[page:Array values] - values for the keyframes at the times specified.<br />
[page:Constant interpolation] - the type of interpolation to use. See
[page:Animation Animation Constants] for possible values. Default is
[page:Animation InterpolateLinear].
</div>
<h2>Properties</h2>
<div class="desc">
See [page:KeyframeTrack] for inherited properties.
</div>
<h3>[property:String ValueTypeName]</h3>
<div>
String 'number'.
</div>
<h2>Methods</h2>
<div class="desc">
See [page:KeyframeTrack] for inherited methods.
</div>
<h2>Source</h2>
[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
</body>
</html>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<base href="../../../" />
<script src="list.js"></script>
<script src="page.js"></script>
<link type="text/css" rel="stylesheet" href="page.css" />
</head>
<body>
<head>
<meta charset="utf-8" />
<base href="../../../" />
<script src="list.js"></script>
<script src="page.js"></script>
<link type="text/css" rel="stylesheet" href="page.css" />
</head>
<body>
[page:KeyframeTrack] &rarr;
[page:KeyframeTrack] &rarr;
<h1>[name]</h1>
<h1>[name]</h1>
<div class="desc">
A Track of quaternion keyframe values.
</div>
<div class="desc">
A Track of quaternion keyframe values.
</div>
<h2>Constructor</h2>
<h2>Constructor</h2>
<h3>[name]( [page:String name], [page:Array times], [page:Array values] )</h3>
<div>
[page:String name] (required) identifier for the KeyframeTrack.<br />
[page:Array times] (required) array of keyframe times.<br />
[page:Array values] values for the keyframes at the times specified.<br />
[page:Constant interpolation] the type of interpolation to use. See
[page:Animation Animation Constants] for possible values. Default is
[page:Animation InterpolateLinear].
</div>
<h3>[name]( [page:String name], [page:Array times], [page:Array values] )</h3>
<div>
[page:String name] (required) identifier for the KeyframeTrack.<br />
[page:Array times] (required) array of keyframe times.<br />
[page:Array values] values for the keyframes at the times specified.<br />
[page:Constant interpolation] the type of interpolation to use. See
[page:Animation Animation Constants] for possible values. Default is
[page:Animation InterpolateLinear].
</div>
<h2>Properties</h2>
<div class="desc">
See [page:KeyframeTrack] for inherited properties.
</div>
<h2>Properties</h2>
<h3>[property:Constant DefaultInterpolation]</h3>
<div>
The default interpolation type to use, [page:Animation InterpolateLinear].
</div>
<h3>[property:String ValueTypeName]</h3>
<div>
String 'quaternion'.
</div>
<div class="desc">
See [page:KeyframeTrack] for inherited properties.
</div>
<h3>[property:Constant DefaultInterpolation]</h3>
<div>
The default interpolation type to use, [page:Animation InterpolateLinear].
</div>
<h2>Methods</h2>
<div class="desc">
See [page:KeyframeTrack] for inherited methods.
</div>
<h3>[property:String ValueTypeName]</h3>
<div>
String 'quaternion'.
</div>
<h3>[method:null InterpolantFactoryMethodLinear]()</h3>
<div>
Returns a new [page:QuaternionLinearInterpolant QuaternionLinearInterpolant] based on the
[page:KeyframeTrack.values values], [page:KeyframeTrack.times times] and
[page:KeyframeTrack.valueSize valueSize] of the keyframes.
</div>
<h2>Methods</h2>
<h2>Source</h2>
[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
</body>
<div class="desc">
See [page:KeyframeTrack] for inherited methods.
</div>
<h3>[method:null InterpolantFactoryMethodLinear]()</h3>
<div>
Returns a new [page:QuaternionLinearInterpolant QuaternionLinearInterpolant] based on the
[page:KeyframeTrack.values values], [page:KeyframeTrack.times times] and
[page:KeyframeTrack.valueSize valueSize] of the keyframes.
</div>
<h2>Source</h2>
[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
</body>
</html>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<base href="../../../" />
<script src="list.js"></script>
<script src="page.js"></script>
<link type="text/css" rel="stylesheet" href="page.css" />
</head>
<body>
<head>
<meta charset="utf-8" />
<base href="../../../" />
<script src="list.js"></script>
<script src="page.js"></script>
<link type="text/css" rel="stylesheet" href="page.css" />
</head>
<body>
[page:KeyframeTrack] &rarr;
[page:KeyframeTrack] &rarr;
<h1>[name]</h1>
<h1>[name]</h1>
<div class="desc">
A Track of string keyframe values.
</div>
<div class="desc">
A Track of string keyframe values.
</div>
<h2>Constructor</h2>
<h2>Constructor</h2>
<h3>[name]( [page:String name], [page:Array times], [page:Array values] )</h3>
<div>
[page:String name] - (required) identifier for the KeyframeTrack.<br />
[page:Array times] - (required) array of keyframe times.<br />
[page:Array values] - values for the keyframes at the times specified.<br />
[page:Constant interpolation] - the type of interpolation to use. See
[page:Animation Animation Constants] for possible values. Default is
[page:Animation InterpolateDiscrete].
</div>
<h3>[name]( [page:String name], [page:Array times], [page:Array values] )</h3>
<div>
[page:String name] - (required) identifier for the KeyframeTrack.<br />
[page:Array times] - (required) array of keyframe times.<br />
[page:Array values] - values for the keyframes at the times specified.<br />
[page:Constant interpolation] - the type of interpolation to use. See
[page:Animation Animation Constants] for possible values. Default is
[page:Animation InterpolateDiscrete].
</div>
<h2>Properties</h2>
<div class="desc">
See [page:KeyframeTrack] for inherited properties.
</div>
<h2>Properties</h2>
<h3>[property:Constant DefaultInterpolation]</h3>
<div>
The default interpolation type to use, [page:Animation InterpolateDiscrete].
</div>
<h3>[property:Array ValueBufferType]</h3>
<div>
A normal Array (no Float32Array in this case, unlike *ValueBufferType* of [page:KeyframeTrack]).
</div>
<div class="desc">
See [page:KeyframeTrack] for inherited properties.
</div>
<h3>[property:String ValueTypeName]</h3>
<div>
String 'string'.
</div>
<h3>[property:Constant DefaultInterpolation]</h3>
<div>
The default interpolation type to use, [page:Animation InterpolateDiscrete].
</div>
<h3>[property:Array ValueBufferType]</h3>
<div>
A normal Array (no Float32Array in this case, unlike *ValueBufferType* of [page:KeyframeTrack]).
</div>
<h2>Methods</h2>
<h3>[property:String ValueTypeName]</h3>
<div>
String 'string'.
</div>
<div class="desc">
See [page:KeyframeTrack] for inherited methods.
</div>
<h3>[method:null InterpolantFactoryMethodLinear]()</h3>
<div>
The value of this method here is 'undefined', as it does not make sense for discrete properties.
</div>
<h2>Methods</h2>
<h3>[method:null InterpolantFactoryMethodSmooth]()</h3>
<div>
The value of this method here is 'undefined', as it does not make sense for discrete properties.
</div>
<h2>Source</h2>
<div class="desc">
See [page:KeyframeTrack] for inherited methods.
</div>
<h3>[method:null InterpolantFactoryMethodLinear]()</h3>
<div>
The value of this method here is 'undefined', as it does not make sense for discrete properties.
</div>
[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
</body>
<h3>[method:null InterpolantFactoryMethodSmooth]()</h3>
<div>
The value of this method here is 'undefined', as it does not make sense for discrete properties.
</div>
<h2>Source</h2>
[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
</body>
</html>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<base href="../../../" />
<script src="list.js"></script>
<script src="page.js"></script>
<link type="text/css" rel="stylesheet" href="page.css" />
</head>
<body>
<head>
<meta charset="utf-8" />
<base href="../../../" />
<script src="list.js"></script>
<script src="page.js"></script>
<link type="text/css" rel="stylesheet" href="page.css" />
</head>
<body>
[page:KeyframeTrack] &rarr;
[page:KeyframeTrack] &rarr;
<h1>[name]</h1>
<h1>[name]</h1>
<div class="desc">
A Track of vector keyframe values.
</div>
<div class="desc">
A Track of vector keyframe values.
</div>
<h2>Constructor</h2>
<h2>Constructor</h2>
<h3>[name]( [page:String name], [page:Array times], [page:Array values] )</h3>
<div>
[page:String name] - (required) identifier for the KeyframeTrack.<br />
[page:Array times] - (required) array of keyframe times.<br />
[page:Array values] - values for the keyframes at the times specified.<br />
[page:Constant interpolation] - the type of interpolation to use. See
[page:Animation Animation Constants] for possible values. Default is
[page:Animation InterpolateLinear].
</div>
<h3>[name]( [page:String name], [page:Array times], [page:Array values] )</h3>
<div>
[page:String name] - (required) identifier for the KeyframeTrack.<br />
[page:Array times] - (required) array of keyframe times.<br />
[page:Array values] - values for the keyframes at the times specified.<br />
[page:Constant interpolation] - the type of interpolation to use. See
[page:Animation Animation Constants] for possible values. Default is
[page:Animation InterpolateLinear].
</div>
<h2>Properties</h2>
<div class="desc">
See [page:KeyframeTrack] for inherited properties.
</div>
<h2>Properties</h2>
<h3>[property:String ValueTypeName]</h3>
<div>
String 'vector'.
</div>
<h2>Methods</h2>
<div class="desc">
See [page:KeyframeTrack] for inherited methods.
</div>
<div class="desc">
See [page:KeyframeTrack] for inherited properties.
</div>
<h2>Source</h2>
<h3>[property:String ValueTypeName]</h3>
<div>
String 'vector'.
</div>
[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
</body>
<h2>Methods</h2>
<div class="desc">
See [page:KeyframeTrack] for inherited methods.
</div>
<h2>Source</h2>
[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
</body>
</html>
......@@ -8,123 +8,123 @@
<link type="text/css" rel="stylesheet" href="page.css" />
</head>
<body>
<h1>[name]</h1>
<h2>Overview</h2>
<div class="desc">
Within the three.js animation system you can animate various properties of your models:
the bones of a [page:SkinnedMesh skinned and rigged model],
[page:Geometry.morphTargets morph targets], different material properties (colors,
opacity, booleans), visibility and transforms. The animated properties can be faded in,
faded out, crossfaded and warped. The weight and time scales of different simultaneous
animations on the same object as well as on different objects can be changed
independently. Various animations on the same and on different objects can be
synchronized.<br /><br />
To achieve all this in one homogeneous system, the three.js animation system
[link:https://github.com/mrdoob/three.js/issues/6881 has completely changed in 2015]
(be aware of outdated information!), and it has now an architecture similar to
Unity/Unreal Engine 4. This page gives a short overview of the main components of the
system and how they work together.
</div>
<h3>Animation Clips</h3>
<div class="desc">
If you have successfully imported an animated 3D object (it doesn't matter if it has
bones or morph targets or both) - for example exporting it from Blender with the
[link:https://github.com/mrdoob/three.js/tree/master/utils/exporters/blender/addons/io_three Blender exporter] and
loading it into a three.js scene using [page:JSONLoader] -, one of the geometry's
properties of the loaded mesh should be an array named "animations", containing the
[page:AnimationClip AnimationClips] for this model (see a list of possible loaders below).<br /><br />
Each *AnimationClip* usually holds the data for a certain activity of the object. If the
mesh is a character, for example, there may be one AnimationClip for a walkcycle, a second
for a jump, a third for sidestepping and so on.
</div>
<h3>Keyframe Tracks</h3>
<div class="desc">
Inside of such an *AnimationClip* the data for each animated property are stored in a
separate [page:KeyframeTrack]. Assumed a character object has a [page:Skeleton skeleton],
one keyframe track could store the data for the position changes of the lower arm bone
over time, a different track the data for the rotation changes of the same bone, a third
the track position, rotation or scaling of another bone, and so on. It should be clear,
that an AnimationClip can be composed of lots of such tracks.<br /><br />
Assumed the model has [page:Geometry.morphTargets morph targets] (for example one morph
target showing a friendly face and another showing an angry face), each track holds the
information as to how the [page:Mesh.morphTargetInfluences influence] of a certain morph
target changes during the performance of the clip.
</div>
<h3>Animation Mixer</h3>
<div class="desc">
The stored data form only the basis for the animations - actual playback is controlled by
the [page:AnimationMixer]. You can imagine this not only as a player for animations, but
as a simulation of a hardware like a real mixer console, which can control several animations
simultaneously, blending and merging them.
</div>
<h3>Animation Actions</h3>
<div class="desc">
The *AnimationMixer* itself has only very few (general) properties and methods, because it
can be controlled by the [page:AnimationAction AnimationActions]. By configuring an
*AnimationAction* you can determine when a certain *AnimationClip* shall be played, paused
or stopped on one of the mixers, if and how often the clip has to be repeated, whether it
shall be performed with a fade or a time scaling, and some additional things, such crossfading
or synchronizing.
</div>
<h3>Animation Object Groups</h3>
<div class="desc">
If you want a group of objects to receive a shared animation state, you can use an
[page:AnimationObjectGroup].
</div>
<h3>Supported Formats and Loaders</h3>
<div class="desc">
Note that not all model formats include animation (OBJ notably does not), and that only some
three.js loaders support [page:AnimationClip AnimationClip] sequences. Several that <i>do</i>
support this animation type:
</div>
<ul>
<li>[page:JSONLoader THREE.JSONLoader]</li>
<li>[page:ObjectLoader THREE.ObjectLoader]</li>
<li>THREE.BVHLoader</li>
<li>THREE.FBXLoader</li>
<li>THREE.FBXLoader2</li>
<li>[page:GLTFLoader THREE.GLTFLoader]</li>
<li>THREE.MMDLoader</li>
<li>THREE.SEA3DLoader</li>
</ul>
<div class="desc">
Note that 3ds max and Maya currently can't export multiple animations (meaning animations which are not
on the same timeline) directly to a single file.
</div>
<h2>Example</h2>
<code>
<h1>[name]</h1>
<h2>Overview</h2>
<div class="desc">
Within the three.js animation system you can animate various properties of your models:
the bones of a [page:SkinnedMesh skinned and rigged model],
[page:Geometry.morphTargets morph targets], different material properties (colors,
opacity, booleans), visibility and transforms. The animated properties can be faded in,
faded out, crossfaded and warped. The weight and time scales of different simultaneous
animations on the same object as well as on different objects can be changed
independently. Various animations on the same and on different objects can be
synchronized.<br /><br />
To achieve all this in one homogeneous system, the three.js animation system
[link:https://github.com/mrdoob/three.js/issues/6881 has completely changed in 2015]
(be aware of outdated information!), and it has now an architecture similar to
Unity/Unreal Engine 4. This page gives a short overview of the main components of the
system and how they work together.
</div>
<h3>Animation Clips</h3>
<div class="desc">
If you have successfully imported an animated 3D object (it doesn't matter if it has
bones or morph targets or both) - for example exporting it from Blender with the
[link:https://github.com/mrdoob/three.js/tree/master/utils/exporters/blender/addons/io_three Blender exporter] and
loading it into a three.js scene using [page:JSONLoader] -, one of the geometry's
properties of the loaded mesh should be an array named "animations", containing the
[page:AnimationClip AnimationClips] for this model (see a list of possible loaders below).<br /><br />
Each *AnimationClip* usually holds the data for a certain activity of the object. If the
mesh is a character, for example, there may be one AnimationClip for a walkcycle, a second
for a jump, a third for sidestepping and so on.
</div>
<h3>Keyframe Tracks</h3>
<div class="desc">
Inside of such an *AnimationClip* the data for each animated property are stored in a
separate [page:KeyframeTrack]. Assumed a character object has a [page:Skeleton skeleton],
one keyframe track could store the data for the position changes of the lower arm bone
over time, a different track the data for the rotation changes of the same bone, a third
the track position, rotation or scaling of another bone, and so on. It should be clear,
that an AnimationClip can be composed of lots of such tracks.<br /><br />
Assumed the model has [page:Geometry.morphTargets morph targets] (for example one morph
target showing a friendly face and another showing an angry face), each track holds the
information as to how the [page:Mesh.morphTargetInfluences influence] of a certain morph
target changes during the performance of the clip.
</div>
<h3>Animation Mixer</h3>
<div class="desc">
The stored data form only the basis for the animations - actual playback is controlled by
the [page:AnimationMixer]. You can imagine this not only as a player for animations, but
as a simulation of a hardware like a real mixer console, which can control several animations
simultaneously, blending and merging them.
</div>
<h3>Animation Actions</h3>
<div class="desc">
The *AnimationMixer* itself has only very few (general) properties and methods, because it
can be controlled by the [page:AnimationAction AnimationActions]. By configuring an
*AnimationAction* you can determine when a certain *AnimationClip* shall be played, paused
or stopped on one of the mixers, if and how often the clip has to be repeated, whether it
shall be performed with a fade or a time scaling, and some additional things, such crossfading
or synchronizing.
</div>
<h3>Animation Object Groups</h3>
<div class="desc">
If you want a group of objects to receive a shared animation state, you can use an
[page:AnimationObjectGroup].
</div>
<h3>Supported Formats and Loaders</h3>
<div class="desc">
Note that not all model formats include animation (OBJ notably does not), and that only some
three.js loaders support [page:AnimationClip AnimationClip] sequences. Several that <i>do</i>
support this animation type:
</div>
<ul>
<li>[page:JSONLoader THREE.JSONLoader]</li>
<li>[page:ObjectLoader THREE.ObjectLoader]</li>
<li>THREE.BVHLoader</li>
<li>THREE.FBXLoader</li>
<li>THREE.FBXLoader2</li>
<li>[page:GLTFLoader THREE.GLTFLoader]</li>
<li>THREE.MMDLoader</li>
<li>THREE.SEA3DLoader</li>
</ul>
<div class="desc">
Note that 3ds max and Maya currently can't export multiple animations (meaning animations which are not
on the same timeline) directly to a single file.
</div>
<h2>Example</h2>
<code>
var mesh;
// Create an AnimationMixer, and get the list of AnimationClip instances
......@@ -145,7 +145,7 @@
clips.forEach( function ( clip ) {
mixer.clipAction( clip ).play();
} );
</code>
</code>
</body>
</body>
</html>
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册