Using BVH animations

Hi, all
During the development of the last flash game (
p=34), I used animated models for my characters. I want to share the solution to the problem of how to use the imported BVH data to the existing project.

Blender has the perfect script, which allows to import data from BVH files as an animated armature. *Also there are many free libraries with BVH data, and in your project, you may want to use these animations for the movement of your characters. You find the suitable file, import it and oops!

It would seem - you just need to copy the pose of the imported skeleton, but there is a problem - the initial state of skeletons varies and simply copying leads to different results.

When I encountered this problem, my model was already an armature(containing the*artificial bones for use in the code), I spent a lot of time on setting vertex groups for this armature, and I had no desire to repeat it all again. In addition, the animation, which I planned to use contained in the files from different sources and these skeletons were different initial postures.

This decision *I used in my case.

  1. I imported a short BVH file from the found collection in the blend. file with my model. For convenience, I placed the imported armature in a separate layer.

2.For each bone, the movement which I planned to use, I created an empty and named it the same way as bone. All empties I also put in a separate layer.

  1. For each created empty I make parent - the corresponding bone in imported skeleton.

  1. For each of the bones of my model in the* «Pose mode» I applied constaint «track to», pointing out as a target corresponding* empty. Enable the «align» in constaint, I got more control over the correctness of «track to» constaint.

After that I could use the imported animations to animate a skeleton of my character.

My version of Blender - 2.48a, version of BVH import script - 1.90 06/08/01

… makes me think of how bones from a bvh file are assigned to model bones in MotionBuilder:

I guess that the bvh importer scipt could be extended to be able to assign the movements of imported bones the bones of the model? And maybe work from naming templates too.