Twisted motion capture

I’m new to motion capture in Blender and am experiencing the following issue.

I’m importing a .bvh motion capture file and applying the rotations to a rigged character exported from MakeHuman.

To this I’m applying bone constraints to the rigged character and copying location from the .bvh (also copying location for the hips)

The result is a well animated torso but from the hips down everything is twisted. I’ve experimented with local and world space on the bone constraints and ensured Auto IK is off, but whatever I do seems to end in a twisted character (images below) Any ideas welcome!

No blend file, so its difficult to know where the problem might lie, but one obvious place to look is your Copy Loc/Rot constraints are set to World Space - these might be better in Local Space, bearing in mind that the axes of a bone are ALWAYS; Y is along the bone, X and Z are normal to Y and normal to each other, obeying the Left Hand Rule (just internet search this). This may be the problem, hard to tell without seeing the file…

I am not a MOCAP expert, but this is where I would start looking, otherwise someone else has to help as I am now going on holiday for 3 weeks or so, well away from the 'net far out to sea… Might be a good idea to post the blend file for us to look at…

Cheers, Clock.

In the end it was exactly as you said, the twisting stopped as soon as I set the feet and legs to Local Space.

Thank you!

Clockmender: I had a similar problem a few months back. I just putzed around with the mappings in the bvh importer until I got something that looked halfway decent.

I have view all of Benjy Cooke’s video tutorials on Youtube Several times. They just made me have more questions. In particular his explanation on how to fix the twist on a bone just never seems to work the first time. It is really incomplete. Then he says he is going to explain what the ik checkboxes do in several of the videos but he never actually does. I left several messages on his Youtube channel and here at blenderartist with no answers yet.

I understand that blender is a free program and that the addon makers are programming things out of the goodness of thier heart and not getting paid for it. But in this case he was an awardee of the 2011 GSOC so he actually did get money for coming up with the importer. But getting it to work is frustrating.

In any case my point is that the blender community could really use a .bvh and Motion capture guru and I am unashamedly and blatantly asking you to do it. I ask another blender head that answered a question I had years ago and he had he had moved on to something else and did not have the time. Which I TOTALLY understand. I am just taking another shot at it.

@ SHABA1 - As regards IK settings, this may help you:

The IK properties are used to control bones in an IK chain - any other constraints are totally ignored by the IK Constraint.

Te Lock functions will stop a bone moving in any of the axes - this can apply to any bone in the chain, not just the one with the IK constraint.

You can also Limit the rotation by setting the Limit checkbox and entering max and min rotational values.

Stiffness will make the joint stiffer, up to 1 which is “it doesn’t move”. This is used to make bones in the chain move proportionately for example. So the fist bone can have high stiffness and it will move less than the second, which will have a lower stiffness.

Stretch enables a bone to be stretchable in the IK chain - I use this for hydraulic cylinders where you want one bone to stretch as the cylinder is operated - it’s a bit like a Stretch To constraint in the way it operates. You can have varying stretch amounts on bones in the chain and they will stretch accordingly. So first bone has stretch of 1, second has stretch of 0.5 - first bone will stretch twice as much as the second.

For an IK constraint you should set the Armature/Target object and bone if using an Armature.

Pole Target is another object that “pulls” the IK chain across - a little like a Track To constraint if you like.

Chain length is VITAL in the setup - a length of 0 goes all the way back to the root or major bone and is never really a good idea - all connected bones in the chain will be affected by the constraint and all of these should have their own IK properties set to make the chain behave as you would like. If you have more than one IK chain in a single armature, you must set the chain lengths for each so they don’t interact - share a common bone if you like, or the chains will not behave themselves.

This is an example of a hydraulic cylinder setup:

The two bones that are angled control the two halves of the cylinder and do not inherit scale from the horizontal “stroke” bone, which is allowed to stretch.

I hope this clears this up, feel free to ask any more questions you have.

On the matter of me taking on maintenance of the .bvh add-on - this would be difficult as I am not an expert in this field, in fact I have never used it at all, nor done any work with motion tracking, so may not be the best person to do this. Also, I am not an expert python programmer, I only started about 6 months ago building animation nodes and MIDI sync systems, where I do have considerable experience with MIDI. My previous programming experience was specifically with Geographic Information Systems and I used the native language for Arc/Info/ArcView from ESRI. So I am a programmer/ systems analyst, but in a specific language. My python is improving all the time, but I do not think it is advanced enough yet for this task, assuming the add-on is a python product. Having said all that I would be willing to explore this further to help out, as I am considered to be a bit of an expert in rigging on this forum (not blowing my own trumpet here, it’s just I have a lot of experience).

Cheers, Clock.

clockmender; Thank you for answering. But you got my message totally wrong.

First: I know what IK constrants do on and armature and how to turn them on and off. I was making a statement about the IK checkbox in the mapping area of the bvh importer panel.

Second: I was not implying that you should take over CODING the .bvh importer ( Why do blender users always think about writing or reading program code when you ask a question on an addon???) I was saying that users need someone to turn to when they run into questions USING the importer. To advise and answer questions on USAGE not the PROGRAMMING.

^^ Sorry Sir! My brain is not at full speed just now, I am full of bloody flu, coughing every two minutes!!

Never mind - senior moment I think. Maybe I can look at that later on this week.

Cheers, Clock.

Posted the wrong thread… :o