Summary
My current project requires the digital archival of vertex animation. I have exported the vertex animation frames in the Collada DAE format as shape keys, and imported that model into Blender.
For compatibility with other software, these shape keys must now be converted into armature poses, and afterwards exported from Blender in keyframed actions.
Goal
A pose library containing vertex animation frames stored in a “pseudo-armature” consisting of a bone for each vertex.
Theorised Work-flow
- If no object is selected, select the first object with shape keys
- For the selected object:
- In the Shape Keys properties, disable “Relative” and “Always show the current Shape for this Object”, and enable “Apply shape keys in edit mode”.
- Create a vertex group for each vertex.
- In Edit mode, assign each vertex to its related vertex group.
- Create an empty for each vertex, with the following properties:
- Location, Scale: 0/0/0
- Parent: Mesh (Vertex)
- Size: 0
- Create a bone for each vertex, with the following properties:
- Head, Location, Scale: 0/0/0
- Tail: 0/0/0.00001
- Display: Hide
- In the armature properties, set bone display mode to “Stick”.
- In pose mode, apply a “Copy Location” constraint to each bone, targeting its related empty.
- Parent mesh to armature deformation with empty groups.
- For each shape key:
- Enter Edit Mode.
- Select the shape key twice to move mesh and armature location.
- In Pose mode:
- Select the armature’s bones.
- Add a new armature pose.
- Disable each bone constraint.
- In the Shape Keys properties, disable “Apply shape keys in edit mode”.
Naming Conventions
-
Vertex Groups, Empties, Bones, Constraints
“v” + padding (only if vertex number total is greater than 9, by character length of vertex number total) + vertex number -
Armature
object name + “_v” -
Pose
Selected shape key name
Conclusion
Does a script or add-on like this exist? And if not, I hope to find assistance in creating one.
Thanks for reading.