# How to change armature animation so it depends on rotation not translation

I have a .bvh file of an armature with some bones; it has an animation but it's based on the translation of these bones not rotation. Is there a way I can make the same animation with rotations instead? As this armature is parented and weighted to a mesh.

The bvh data is of a facial animation. The final animation needs to be exported to an application that doesn't support bone translations.

• There is a motion capture tools addon - does it help at all? There is a Carnegie Melon Univ mocap library addon, it imports the marker cloud as a set of empties and imports motion data and links it to an armature, not sure if that is pre-calculated rotations or not. – sambler Oct 22 '14 at 7:26
• @sambler, thanks for your comment. The bvh I have is not a human skeleton one, its another armature, but its animation is made from the bones translation, but I want to have the same animation but with bones rotation not translation, any advice? :) – Tak Oct 22 '14 at 7:35
• I was thinking the cmu scripts may show how they link an armature to the point cloud data. – sambler Oct 22 '14 at 7:46
• @sambler what do you mean? sorry – Tak Oct 22 '14 at 7:47
• The marker cloud data is imported as empties moving around that match the spots on the actor, this must be linked to the armature to get it to follow the points. The cmu importer is an addon written in python, it's scripts may show how they link the point cloud to an armature. Unless it is pre computed data and imported separately. – sambler Oct 22 '14 at 7:55

You can create new bones within the head, add a stretch to constraint and then bake the animation to get bones that rotate and scale and not translate.

1. Select a bone on the face (forehead1 in this example)
2. Snap cursor to bone ShiftS Cursor to Selected
3. Select tip of the base bone (that is parent of all others)
4. Extrude a new bone E
5. Snap the tip of the new bone to the target bone ShiftS Selected to cursor
6. Name the new bone to forehead1.new (see later)
7. Add a stretch to constraint and set the target to Armature then bone to forehead1

Repeat these steps for each bone

Bake the animation (Pose->Animation->Bake action, enable visual keying and clear constraints), this will turn the movement created by the constraints into rotations and scales for the bone so that the constraint can be removed. This allows the final animation data to be exported as constraints are blender specific.

1. select forehead1 and delete the bone
I have made an addon called Rotation Armature to perform this task. Save the script from the link, then install and enable it you will then find a button in the tools tab called Create rotational bones which will perform the steps listed above. This is currently rather specific to the test armature you used, I may update it later to be more versatile.