Do I really have to create a bone for every single vertex?
What ? No.
I need a modeling program that can let me assign an
Well, blender for example supports shape keys
, which are the same model (tris + vertices), but each shape key have an other position of the vertices. You don't need unique IDs, the tool just needs to ensure, that the exported vertices are in the same order.
In this case you would morph between two meshes like this:
vertexSource : attribute
vertexTarget : attribute
alpha : uniform
positionSource = applySkeletalAnimation(vertexSource.position);
positionTarget = applySkeletalAnimation(vertexTarget.position);
positionFinal = mix(positionSource,positionTarget,alpha);
Basically the source and target vertex are two different streams of two meshes
, representing the same topology. In fact there're only two position/normal streams, you can share other data like uv coords or color. When exporting your meshes from a modelling tool just ensure, that
1. same number and order of vertices
2. bound to the same skeleton
3. same tris
Shape keys should do exactly this, other modelling tools should have similar features.