Trying to Understand BVH Files in Daz

I'm hoping someone here can help. I'm writing a bunch of utilities for manipulating BVH files that I hope will be useful for the Daz community. Automatic re-targeting is at the top of my list, but I'm held up by a few things where I don't understand how Daz requires things:

1. G3s and 8s have those extra twist bones. I understand that in Daz Studio's UI, say, lShoulderBend's twist drives lShoulderTwist's twist. But what should an imported BVH look like? Should it even have an lShoulderTwist node at all? Maybe it has one, but it only has one channel for the twist? And what about the seeming conflict between the rotations from lShoulderBend and lShoulderTwist? Wouldn't one "overwrite" the other, so one should be set to zero, or something? How is this handled?

2. So, assume I am trying to map a simpler skeleton to a G8. What do I do when I get to, in the simpler format, something like LeftShoulder, which would have a child of LeftForeArm, but no twist bone inbetween them? When writing out a BVH file to be read in and applied to a G8, is it OK to "skip" bones in the hierarchy that were not present in the original BVH file? Or must all bones be present, and just zeroed?

3. Does the channel order in the BVH file implicitly set the rotation order for the joints of the skeleton to which the BVH is being applied?

Thanks to anyone; the more I experiment, the more confused I get...

 

Donald

Sign In or Register to comment.