I propose that the
THREE.Skeleton be enhanced to act like an
armature in Blender or a
skeleton in 3DS Max/Maya. This would mean that the
Skeleton holds bones and animation data like
THREE.SkinnedMesh but without any geometry. Implementing this would allow other
THREE.SkinnedMeshes to constrain their bones’ transformations to the
Skeleton's bones (of the same bone name) and use the
Skeleton's animations. This is useful for when you have a model of a character and other models that attach to him (his
Skeleton) like armor and weapons (which may only have a subset of the bones of the entire
Currently, I have to store the animation in every
THREE.SkinnedMesh. Ideally, the animation would be stored into only the
THREE.Skeleton object and the other meshes can just attach to it and share its animations. Not only would this greatly reduce file sizes (which helps a lot on super bandwidth heavy model viewer websites like mine), but it also opens the door up for things like ajaxing a new animation directly into the
Skeleton at runtime.
I also want to eventually attach particle emitters to bones, but the only reliable way to know that a bone will exist is if it is apart of the
Skeleton and not rely on the same bone always being there in meshes that get swapped out a lot.
This new functionality should not change the way that
THREE.SkinnedMeshes currently work.
SkinnedMeshes should still be able to have optional animations attached to them and don’t have to rely on a
This was mentioned as the last bullet point of #3510.
I originally posted this on Stackoverflow http://stackoverflow.com/questions/25073534/three-js-use-skeleton-like-an-armature-in-blender a couple of weeks ago, but didn’t get any replies so I’m going to assume it’s not implemented/possible yet, meaning it is ripe for a feature request.