An entity will only be animatable after an animation component is attached.
Any calls to playAnimation/setBoneAnimation/setMorphAnimation will have no visual effect until addAnimationComponent has been called on the instance.
Enqueues and plays the animation for the specified bone(s).
By default, frame data is interpreted as being in parent bone space;
a 45 degree around Y means the bone will rotate 45 degrees around the
Y axis of the parent bone in its current orientation.
(i.e NOT the parent bone's rest position!).
Currently, only Space.ParentBone and Space.Model are supported; if you want
to transform to another space, you will need to do so manually.
The dimensions of the bounding box for this asset.
This is independent of the boundingBoxAsset (which is used to visualize
the bounding box in the scene); you do not need to call
createBoundingBoxAsset before this method.
Gets the inverse bind (pose) matrix for the bone.
Note that parent must be the ThermionEntity returned by loadGlb/loadGltf, not any other method (getChildEntity etc).
This is because all joint information is internally stored with the parent entity.
Construct animation(s) for every entity under asset. If targetMeshNames is provided, only entities with matching names will be animated.
MorphTargetAnimation for an explanation as to how to construct the animation frame data.
This method will check the morph target names specified in animation against the morph target names that actually exist exist under meshName in entity,
throwing an exception if any cannot be found.
It is permissible for animation to omit any targets that do exist under meshName; these simply won't be animated.
Set the weights for all morph targets in entity to weights.
Note that weights must contain values for ALL morph targets, but no exception will be thrown if you don't do so (you'll just get incorrect results).
If you only want to set one value, set all others to zero (check getMorphTargetNames if you need the get a list of all morph targets).
IMPORTANT - this accepts the actual ThermionEntity with the relevant morph targets (unlike getMorphTargetNames, which uses the parent entity and the child mesh name).
Use getChildEntityByName if you are setting the weights for a child mesh.
Updates the bone matrices for entity (which must be the ThermionEntity
returned by loadGlb/loadGltf).
Under the hood, this just calls updateBoneMatrices on the Animator
instance of the relevant FilamentInstance (which uses the local
bone transform and the inverse bind matrix to set the bone matrix).