SkinnedMesh class
A mesh that has a Skeleton with bones
that can then be
used to animate the vertices of the geometry.
final geometry = CylinderGeometry( 5, 5, 5, 5, 15, 5, 30 );
// create the skin indices and skin weights manually
// (typically a loader would read this data from a 3D model for you)
final position = geometry.attributes.position;
final vertex = Vector3();
final skinIndices = [];
final skinWeights = [];
for(int i = 0; i < position.count; i++){
vertex.fromBufferAttribute( position, i );
// compute skinIndex and skinWeight based on some configuration data
final y = ( vertex.y + sizing.halfHeight );
final skinIndex = Math.floor( y / sizing.segmentHeight );
final skinWeight = ( y % sizing.segmentHeight ) / sizing.segmentHeight;
skinIndices.push( skinIndex, skinIndex + 1, 0, 0 );
skinWeights.push( 1 - skinWeight, skinWeight, 0, 0 );
}
geometry.setAttribute(Attribute.skinIndex, Uint16BufferAttribute( skinIndices, 4));
geometry.setAttribute(Attribute.skinWeight, Float32BufferAttribute( skinWeights, 4));
// create skinned mesh and skeleton
final mesh = SkinnedMesh(geometry, material);
final skeleton = Skeleton(bones);
// see example from THREE.Skeleton
final rootBone = skeleton.bones[0];
mesh.add(rootBone);
// bind the skeleton to the mesh
mesh.bind(skeleton);
// move the bones and manipulate the model
skeleton.bones[0].rotation.x = -0.1;
skeleton.bones[1].rotation.x = 0.2;
Constructors
- SkinnedMesh(BufferGeometry? geometry, Material? material)
-
geometry
- an instance of BufferGeometry.
Properties
- autoUpdate ↔ bool
-
getter/setter pairinherited
- background ↔ dynamic
-
getter/setter pairinherited
- bindMatrix ↔ Matrix4?
-
getter/setter pairinherited
- bindMatrixInverse ↔ Matrix4
-
getter/setter pair
- bindMode ↔ String
-
getter/setter pair
- castShadow ↔ bool
-
getter/setter pairinherited
-
children
↔ List<
Object3D> -
getter/setter pairinherited
- count ↔ int?
-
getter/setter pairinherited
- customDepthMaterial ↔ Material?
-
- Custom depth material to be used when rendering to the depth map. Can only be used in context of meshes.
- When shadow-casting with a DirectionalLight or SpotLight, if you are (a) modifying vertex positions in
- the vertex shader, (b) using a displacement map, (c) using an alpha map with alphaTest, or (d) using a
- transparent texture with alphaTest, you must specify a customDepthMaterial for proper shadows.
getter/setter pairinherited - customDistanceMaterial ↔ Material?
-
getter/setter pairinherited
- disposed ↔ bool
-
getter/setter pairinherited
- environment ↔ Texture?
-
getter/setter pairinherited
-
extra
↔ Map<
String, dynamic> -
getter/setter pairinherited
- frustumCulled ↔ bool
-
getter/setter pairinherited
- geometry ↔ BufferGeometry?
-
getter/setter pairinherited
- hashCode → int
-
The hash code for this object.
no setterinherited
- id ↔ int
-
getter/setter pairinherited
-
instanceColor
↔ BufferAttribute<
NativeArray< ?num> > -
getter/setter pairinherited
- instanceMatrix ↔ InstancedBufferAttribute?
-
getter/setter pairinherited
- isImmediateRenderObject ↔ bool
-
getter/setter pairinherited
- layers ↔ Layers
-
getter/setter pairinherited
- material ↔ Material?
-
getter/setter pairinherited
- matrix ↔ Matrix4
-
getter/setter pairinherited
- matrixAutoUpdate ↔ bool
-
getter/setter pairinherited
- matrixWorld ↔ Matrix4
-
getter/setter pairinherited
- matrixWorldNeedsUpdate ↔ bool
-
getter/setter pairinherited
- modelViewMatrix ↔ Matrix4
-
getter/setter pairinherited
-
morphTargetDictionary
↔ Map<
String, dynamic> ? -
getter/setter pairinherited
-
morphTargetInfluences
↔ List<
double> -
getter/setter pairinherited
- name ↔ String
-
getter/setter pairinherited
- normalMatrix ↔ Matrix3
-
getter/setter pairinherited
- onAfterRender ↔ OnAfterRender?
-
An optional callback that is executed immediately after a 3D object is
rendered. This function is called with the following parameters: renderer,
scene, camera, geometry, material, group.
getter/setter pairinherited
- onBeforeRender ↔ OnBeforeRender?
-
getter/setter pairinherited
- overrideMaterial ↔ Material?
-
getter/setter pairinherited
- parent ↔ Object3D?
-
getter/setter pairinherited
- position ↔ Vector3
-
getter/setter pairinherited
- quaternion ↔ Quaternion
-
getter/setter pairinherited
- receiveShadow ↔ bool
-
getter/setter pairinherited
- renderOrder ↔ int
-
getter/setter pairinherited
- rotation ↔ Euler
-
getter/setter pairinherited
- runtimeType → Type
-
A representation of the runtime type of the object.
no setterinherited
- scale ↔ Vector3
-
getter/setter pairinherited
- skeleton ↔ Skeleton?
-
getter/setter pairinherited
- tag ↔ String?
-
getter/setter pairinherited
- type ↔ String
-
getter/setter pairinherited
- up ↔ Vector3
-
getter/setter pairinherited
-
userData
↔ Map<
String, dynamic> -
getter/setter pairinherited
- uuid ↔ String
-
getter/setter pairinherited
- visible ↔ bool
-
getter/setter pairinherited
Methods
-
add(
Object3D? object) → Object3D -
Adds
object
as child of this object. An arbitrary number of objects may be added. Any current parent on an object passed in here will be removed, since an object can have at most one parent.inherited -
addAll(
List< Object3D> objects) → Object3D -
Adds list
objects
as child of this object.inherited -
addEventListener(
String type, Function listener) → void -
type
- The type of event to listen to.inherited -
applyBoneTransform(
int index, Vector3 target) → Vector3 - Applies the bone transform associated with the given index to the given position vector. Returns the updated vector.
-
applyMatrix4(
Matrix4 matrix) → void -
Applies the matrix transform to the object and updates the object's
position, rotation and scale.
inherited
-
applyQuaternion(
Quaternion q) → Object3D -
Applies the rotation represented by the quaternion to the object.
inherited
-
attach(
Object3D object) → Object3D -
inherited
-
bind(
Skeleton skeleton, [Matrix4? bindMatrix]) → void -
skeleton
- Skeleton created from aBones
tree. -
clear(
) → Object3D -
Removes all child objects.
inherited
-
clearListeners(
) → void -
Remove all Listeners.
inherited
-
clone(
[bool? recursive]) → SkinnedMesh -
This method does currently not clone an instance of name correctly.
Please use
SkeletonUtils.clone
in the meanwhile.override -
copy(
Object3D source, [bool? recursive]) → SkinnedMesh -
recursive
-- If set totrue
, descendants of the object are copied next to the existing ones. If set tofalse
, descendants are left unchanged. Default istrue
.override -
dispatchEvent(
Event event) → void -
event
- The event that gets fired.inherited -
dispose(
) → void -
inherited
-
extractFromCache(
Map< String, dynamic> cache) → List<Map< String, dynamic> > -
inherited
-
getObjectById(
String id) → Object3D? -
id -- Unique number of the object instance
inherited
-
getObjectByName(
String name) → Object3D? -
name
-- String to match to the children's Object3D.name property.inherited -
getObjectByProperty(
String name, String value) → Object3D? -
name
-- the property name to search for.inherited -
getProperty(
String propertyName) → dynamic -
inherited
-
getValue(
String name) → Matrix4? -
override
-
getWorldDirection(
Vector3 target) → Vector3 -
target
— the result will be copied into this Vector3.inherited -
getWorldPosition(
Vector3? target) → Vector3 -
target
— the result will be copied into this Vector3.inherited -
getWorldQuaternion(
Quaternion target) → Quaternion -
target
— the result will be copied into this Quaternion.inherited -
getWorldScale(
Vector3 target) → Vector3 -
target
— the result will be copied into this Vector3.inherited -
hasEventListener(
String type, Function listener) → bool -
type
- The type of event to listen to.inherited -
init(
) → void -
inherited
-
localToWorld(
Vector3 vector) → Vector3 -
vector
- A vector representing a position in this object's local space.inherited -
lookAt(
Vector3 position) → void -
vector
- A vector representing a position in world space. Optionally, thex
,y
andz
components of the world space position.inherited -
normalizeSkinWeights(
) → void - Normalizes the skin weights.
-
noSuchMethod(
Invocation invocation) → dynamic -
Invoked when a nonexistent method or property is accessed.
inherited
-
onQuaternionChange(
) → void -
inherited
-
onRotationChange(
) → void -
inherited
-
pose(
) → void - This method sets the skinned mesh in the rest pose (resets the pose).
-
raycast(
Raycaster raycaster, List< Intersection> intersects) → void -
Get intersections between a casted ray and this mesh.
Raycaster.intersectObject will call this method, but the results
are not ordered.
inherited
-
remove(
Object3D object) → Object3D -
Removes
object
as child of this object. An arbitrary number of objects may be removed.inherited -
removeEventListener(
String type, Function listener) → void -
type - The type of the listener that gets removed.
inherited
-
removeFromParent(
) → Object3D -
Removes this object from its current parent.
inherited
-
removeList(
List< Object3D> objects) → Object3D -
Removes list of
objects
from this object.inherited -
rotateOnAxis(
Vector3 axis, double angle) → Object3D -
axis
-- A normalized vector in object space.inherited -
rotateOnWorldAxis(
Vector3 axis, double angle) → Object3D -
axis
-- A normalized vector in world space.inherited -
rotateX(
double angle) → Object3D -
angle
- the angle to rotate in radians.inherited -
rotateY(
double angle) → Object3D -
angle
- the angle to rotate in radians.inherited -
rotateZ(
double angle) → Object3D -
angle
- the angle to rotate in radians.inherited -
serialize(
Map< String, dynamic> library, dynamic element, Object3dMeta? meta) → String -
inherited
-
setProperty(
String propertyName, dynamic value) → Object3D -
inherited
-
setRotationFromAxisAngle(
Vector3 axis, double angle) → void -
axis
- A normalized vector in object space.inherited -
setRotationFromEuler(
Euler euler) → void -
euler -- Euler angle specifying rotation amount.
inherited
-
setRotationFromMatrix(
dynamic m) → void -
m
- rotate the quaternion by the rotation component of the matrix.inherited -
setRotationFromQuaternion(
Quaternion q) → void -
q
- normalized Quaternion.inherited -
toJson(
{Object3dMeta? meta}) → Map< String, dynamic> -
meta -- object containing metadata such as materials, textures or images
for the object.
inherited
-
toString(
) → String -
A string representation of this object.
inherited
-
translateOnAxis(
Vector3 axis, double distance) → Object3D -
axis
- A normalized vector in object space.inherited -
translateX(
double distance) → Object3D -
Translates object along x axis in object space by
distance
units.inherited -
translateY(
double distance) → Object3D -
Translates object along y axis in object space by
distance
units.inherited -
translateZ(
double distance) → Object3D -
Translates object along z axis in object space by
distance
units.inherited -
traverse(
dynamic callback(Object3D)) → void -
callback
- A function with as first argument an object3D object.inherited -
traverseAncestors(
dynamic callback(Object3D?)) → void -
callback
- A function with as first argument an object3D object.inherited -
traverseVisible(
dynamic callback(Object3D?)) → void -
callback
- A function with as first argument an object3D object.inherited -
updateMatrix(
) → void -
Updates the local transform.
inherited
-
updateMatrixWorld(
[bool force = false]) → void -
force
- A boolean that can be used to bypassmatrixWorldAutoUpdate
, to recalculate the world matrix of the object and descendants on the current frame. Useful if you cannot wait for the renderer to update it on the next frame (assumingmatrixWorldAutoUpdate
set totrue
).override -
updateMorphTargets(
) → void -
Updates the morphTargets to have no influence on the object. Resets the
morphTargetInfluences and
morphTargetDictionary properties.
inherited
-
updateWorldMatrix(
bool updateParents, bool updateChildren) → void -
updateParents
- recursively updates global transform of ancestors.inherited -
worldToLocal(
Vector3 vector) → Vector3 -
vector
- A vector representing a position in world space.inherited
Operators
-
operator ==(
Object other) → bool -
The equality operator.
inherited