Help in BVH

Hi, ive been looking for some tutorials on how to use a premade mocaps in my own model, ive seen some but its not definitely working for me, can someone please tell me how to do it? i really need it, thanks. all i wanted is to put the premade animation of the bvh files into my own rig and model.

BVH is pretty much a pipe dream unless you want to do a lot of work.

My advice is that if you are commited to doing a lot of work, you might as well devote that time to animating your own character by hand.

If you must proceed on with BHV, here is how you might want to proceed.

Choose your BVH file and import it into Blender.
Model your character.
Align the rest pose from the BHV animation to your character mesh.
Weight paint your character so the mesh does not break when the bones move.
Ok, you are done. You have a single BVH animation driving your mesh.

So now you look around the internet and find another BVH file and WTF it has a different bone setup. So now you have to do the whole process again. re-align and re-paint. Now you have two animations running the same mesh, but you can’t mix between them because they have different bone structures.

Riggers, feel free to jump in here and correct my flawed assumptions.

IMHO, BVH ,as a solution, is great if you control the suit. But most of us, myself included, don’t have acccess to that technology. So we are limited to what we can find or buy on the internet. Even BVH files from reputable vendors have different bone structures. Even sets from the same vendor, but in different collections can have different bone strucutres.

I have mentioned the need for more BVH tools, but as developers seem to only alter Blender, as opposed to actually using Blender, there is a disconnect from what is really needed compared to what is cool or trendy.

ok, so now i know how, but, someone told me that you can also import th bvh files as empties and you just constraint it in your armature, the only problem is, whenever i import it as empties, the empties has no specific names, empties.001, empties.002 so on so forth.

Yeah, and they are also rotated the wrong way. Just visually align your rig to the imported empties. You can ignore parts you don’t need. This is probably the best way to go to avoid re-rigging.

There is a video tutorial on it somewhere. Do a little searching and you’ll find it.

The YouTube video that shows this is:

There seems to be two ways people do this. The first way, and the most simple, is to import the BVH file as an armature, and put that armature in the mesh, apply bone heat and tweak, then let the default armature move your mesh.

The other way is to import as empties and then add a constraint to your bones matching them to the empties. The advantage of the second method is that you still have your armature, which is probably a lot more sophisticated than the simple one that is created by a BVH file.

The problem is that you will have to SCALE your armature and your Mesh to match the BVH empties. This is a problem if your mesh is a cartoon character whose proportions are different.

I think there is a better way, but I am still learning Blender and don’t know enough to figure it out… yet. This seems like such a natural thing for Blender to do, I am surprised there isn’t a better option available…

wew, you’re right, its very difficult if youre character is a cartoon like, mine is a book, pencil and an eraser and the armatures are different, well not exactly different, they have all the bones for the empties, the only thing that is not a like is their positions. well, i tried putting constraint in the bones by importing the bvh as empties, i successfully constraint the hand and feet but, whenever i constraint the other bones, especially the ones with the ik solver constraint, it doesnt work.


you might as well devote that time to animating your own character by hand.

One way to avoid the scaling difference of the BVH armature and your setup is to use the copy rotation constraint per bone on a driver armature that matches (in number) the BVH armature bones and copies the rotation of the BVH data … The BVH data is just a set of linked bones with rotation IPOs . This means that in most cases the scale of the motion capture can be adjusted to most humanoid characters without directly using the imported BVH armature .

It is better to just use the BVH armature rather then the empties because the vector off sets (the distance from one empty to another or the bone length in an armature) in them will loose something in the tracking constraint used (IK/track to) .

You don’t NEED to constrain all of the bones. For example, if you just constrain the hip bone, you will get the basic motion. (In other words, if your book has no legs, there is really no need to constrain anything to the leg’s position.)

The other thing you can do is create bones and parent them to the movement bones of your BVH armature, while keeping offset. In other words, they are parented to the movement bones, but they are not connected. This allows you to move them into position. then constrain your mesh’s armature to THESE bones.

You still get the movement, but you can maintain your scale.

@Atom: I don’t know. Work is work, no matter how you spend it. To me, BVH is different. It looks and feels different. Sometimes you want that (ie games where you want to have things seem lifelike) and sometimes you don’t (ie cartoon characters with squish and stretch) But BVH is a tool, and should be in the toolbox, IMHO.

Just to let you know I have been interested in using bvh for a while. And Atom makes some good points about the difficulty in using them. But things are getting allot easier in 2.5. I just ran some tests.
Here is what I found.
ITASC is in trunk now. Ben2610 made a new ik constraint system that has allot more control and the ability to have more than one target
Aligoriths work on the new animation system is huge and makes it easier to edit work and blend in the nla
I hope that theeth’s work will make it in soon (grease pencil/skeletor/retargeting).

To me the most need feature is to create a automatic retarget. Maybe using some sort of harmonic(or nearest object{empty})

So you would have your nicely rigged character that would be driven by multiple rigs. I think that there is a way to use bvhacker to create a new rest pose. This with retargeting are my biggest problems