Distorted Body with Genesis 9 when Importing BVH

Hello,

I’ve encountered a problem when working with Genesis 9. When I create an animation or even just a pose and export it as BVH, the file does not import correctly back into Daz Studio. The character comes in with distorted body parts.

To clarify: I’m not making any edits to the exported file. I simply export the BVH from Daz Studio and immediately import it back into Daz Studio  and it already shows the distortion.

This issue does not happen with Genesis 8, BVH files export and import perfectly fine with no problems.

So my question is: Does Genesis 9 support BVH import, or is this a known limitation/bug?

Thank you in advance for your clarification.

 
 

 

 

Genesis 9 Apose.jpg
1920 x 1080 - 124K
Genesis 9 Animation.jpg
1920 x 1080 - 125K

Comments

  • Looks like the rotation order is wrong. Have you tried tweaking the CHANNELS line for, say, the lCollar and rCollar JOINTs?

  • javadstjavadst Posts: 11

    TheMysteryIsThePoint said:

    Looks like the rotation order is wrong. Have you tried tweaking the CHANNELS line for, say, the lCollar and rCollar JOINTs?

    Thanks for the suggestion! No, I haven’t tried that yet. Could you tell me where exactly I should do this in Daz? Do you know of any tutorial I could watch to understand it better? 

  • It's just a guess from the way the rotations look switched, and one looks to be the reverse of the other. But it's in the BVH file itself, which you have already shown to be . It may be quite large, but it's just an ASCII file that you can open and read.

    But look for a BVH tool like BVH View or BVH Visualizer and see if the exported file looks good.

    You'll be looking for JOINT directives that define the bones. Find the ones that correspond to the collar bones. I think it's lCollar and rCollar in G9s, still.

    Once you find then, you'll see that it has a CHANNEL directive. The order of the Xrotation YRotation and Zrotation directives determine the rotation order. My guess is that the order in the BVH file doesn't match the order of the G9s joints in question, and either the BVH exporter doesn't write them out correctly, or the importer doesn't set them correctly.

    Unfortunately, DAZ Studio is not Open Source, so there's really no way to know what is happening. Unfortunately, DAZ Studio is not Open Source, so there's really nothing you can do about it even if you do figure out what is happening.

     

  • javadstjavadst Posts: 11

    TheMysteryIsThePoint said:

    It's just a guess from the way the rotations look switched, and one looks to be the reverse of the other. But it's in the BVH file itself, which you have already shown to be . It may be quite large, but it's just an ASCII file that you can open and read.

    But look for a BVH tool like BVH View or BVH Visualizer and see if the exported file looks good.

    You'll be looking for JOINT directives that define the bones. Find the ones that correspond to the collar bones. I think it's lCollar and rCollar in G9s, still.

    Once you find then, you'll see that it has a CHANNEL directive. The order of the Xrotation YRotation and Zrotation directives determine the rotation order. My guess is that the order in the BVH file doesn't match the order of the G9s joints in question, and either the BVH exporter doesn't write them out correctly, or the importer doesn't set them correctly.

    Unfortunately, DAZ Studio is not Open Source, so there's really no way to know what is happening. Unfortunately, DAZ Studio is not Open Source, so there's really nothing you can do about it even if you do figure out what is happening.

     

    Thank you very much for your detailed explanation and help!
    I tested it, and the BVH exports look correct for both Genesis 8 and Genesis 9. However, when importing with Genesis 9, the body becomes distorted. It’s quite strange that Daz cannot properly re-import even its own exported BVH file. (You can see my results in the attachment.)

    Would it be possible for you to run a quick test for me?
    For example, exporting a simple animation with Genesis 9 (or even just a single-frame pose) as BVH, and then importing it back into Daz to see if the issue occurs on your side as well. That would help me confirm whether the problem is only on my end.

    Your help with this would mean a lot to me!
     

     

    Genesis 8 - 9.jpg
    1327 x 1622 - 249K
  • Sure, I'll do whatever I can to try to help, but I'm 99.9% sure the results will be the same. But I noticed something else in your image: the importer is applying rotations other than twist to the twist bones. That's why, for example, the left arm appears to be broken right in the middle of the upper arm. I think DAZ Studio gets around this by locking the other two angles to 0. Why on earth it would export with non-zero values or import non-zero values on angles that it knows that, by design, should always be zero, is beyond me.

    Trust me, I feel your pain on this. The problem is that there's a considerable amount of specific technology that goes into making Genesis characters deform so beautifully, things that general exchange formats like BVH don't support. Not anyone's fault, it's just that BVH is ancient and there probably was no Genesis when it was conceived. I don't think this will ever work without an application specific exchange format that knows about both ends of the pipe. Alembic, for example, punts the issue by skipping all of it and deals with baked geometry, something much easier for different 3D applications to agree upon. USD makes the attempt, with a much more modern approach, but it is already suffering from the same problem; it doesn't have a universal definition for what a UV is or even what a bone is, believe it or not.

    My attempt to solve this problem is called Hitchens, I had a 90% solution a while ago, and I'm getting close to finishing it. Hitchens basically understands the Genesis architecture, how Blender handles armatures and skinning etc, and acts as a go-between. You might be interested in it when it's finished: Hitchens in action.

  • javadstjavadst Posts: 11

    TheMysteryIsThePoint said:

    Sure, I'll do whatever I can to try to help, but I'm 99.9% sure the results will be the same. But I noticed something else in your image: the importer is applying rotations other than twist to the twist bones. That's why, for example, the left arm appears to be broken right in the middle of the upper arm. I think DAZ Studio gets around this by locking the other two angles to 0. Why on earth it would export with non-zero values or import non-zero values on angles that it knows that, by design, should always be zero, is beyond me.

    Trust me, I feel your pain on this. The problem is that there's a considerable amount of specific technology that goes into making Genesis characters deform so beautifully, things that general exchange formats like BVH don't support. Not anyone's fault, it's just that BVH is ancient and there probably was no Genesis when it was conceived. I don't think this will ever work without an application specific exchange format that knows about both ends of the pipe. Alembic, for example, punts the issue by skipping all of it and deals with baked geometry, something much easier for different 3D applications to agree upon. USD makes the attempt, with a much more modern approach, but it is already suffering from the same problem; it doesn't have a universal definition for what a UV is or even what a bone is, believe it or not.

    My attempt to solve this problem is called Hitchens, I had a 90% solution a while ago, and I'm getting close to finishing it. Hitchens basically understands the Genesis architecture, how Blender handles armatures and skinning etc, and acts as a go-between. You might be interested in it when it's finished: Hitchens in action.

     

    Thank you very much for your detailed explanation and for sharing your insights about the limitations of BVH and the way DAZ handles rotations. It really helps me better understand the root of the issue.

    I also saw your note about Hitchens, that sounds like a very promising solution. Do you have any idea when it might be released, or whether there’s a chance to try out an early/test version?

    And if you’ve had a chance to run the quick BVH export/import test with Genesis 9, I’d be very interested to know your results. It would help me confirm whether the distortion problem only happens on my side.

    Thanks again for your time and support!

  • javadst said:

    TheMysteryIsThePoint said:

    Sure, I'll do whatever I can to try to help, but I'm 99.9% sure the results will be the same. But I noticed something else in your image: the importer is applying rotations other than twist to the twist bones. That's why, for example, the left arm appears to be broken right in the middle of the upper arm. I think DAZ Studio gets around this by locking the other two angles to 0. Why on earth it would export with non-zero values or import non-zero values on angles that it knows that, by design, should always be zero, is beyond me.

    Trust me, I feel your pain on this. The problem is that there's a considerable amount of specific technology that goes into making Genesis characters deform so beautifully, things that general exchange formats like BVH don't support. Not anyone's fault, it's just that BVH is ancient and there probably was no Genesis when it was conceived. I don't think this will ever work without an application specific exchange format that knows about both ends of the pipe. Alembic, for example, punts the issue by skipping all of it and deals with baked geometry, something much easier for different 3D applications to agree upon. USD makes the attempt, with a much more modern approach, but it is already suffering from the same problem; it doesn't have a universal definition for what a UV is or even what a bone is, believe it or not.

    My attempt to solve this problem is called Hitchens, I had a 90% solution a while ago, and I'm getting close to finishing it. Hitchens basically understands the Genesis architecture, how Blender handles armatures and skinning etc, and acts as a go-between. You might be interested in it when it's finished: Hitchens in action.

     

    Thank you very much for your detailed explanation and for sharing your insights about the limitations of BVH and the way DAZ handles rotations. It really helps me better understand the root of the issue.

    I also saw your note about Hitchens, that sounds like a very promising solution. Do you have any idea when it might be released, or whether there’s a chance to try out an early/test version?

    And if you’ve had a chance to run the quick BVH export/import test with Genesis 9, I’d be very interested to know your results. It would help me confirm whether the distortion problem only happens on my side.

    Thanks again for your time and support!

    Hi!

    Yes, of course, send me the BVH that I can apply to a vasic G9 and I'll see what happens.

    As for hitchens, I am almost back to where I was about two years ago, but now it is integrated with Sagan (because after importing an animation back from Blender, I mostly want to export it back to Blender with the JCMs, etc. applied) and it uses a LiveLink, so no insufficient file formats involved. There are just a few bugs left having to do with geografts and armatures. But the monster is alive and breathing. The problem is that I have very limited time to work on this. People are beginning to doubt me, but I swear, I'm on it :) When I have a minimum viable product, I'll of course release a beta version right away.

     

     

     

  • javadstjavadst Posts: 11

    TheMysteryIsThePoint said:

    javadst said:

    TheMysteryIsThePoint said:

    Sure, I'll do whatever I can to try to help, but I'm 99.9% sure the results will be the same. But I noticed something else in your image: the importer is applying rotations other than twist to the twist bones. That's why, for example, the left arm appears to be broken right in the middle of the upper arm. I think DAZ Studio gets around this by locking the other two angles to 0. Why on earth it would export with non-zero values or import non-zero values on angles that it knows that, by design, should always be zero, is beyond me.

    Trust me, I feel your pain on this. The problem is that there's a considerable amount of specific technology that goes into making Genesis characters deform so beautifully, things that general exchange formats like BVH don't support. Not anyone's fault, it's just that BVH is ancient and there probably was no Genesis when it was conceived. I don't think this will ever work without an application specific exchange format that knows about both ends of the pipe. Alembic, for example, punts the issue by skipping all of it and deals with baked geometry, something much easier for different 3D applications to agree upon. USD makes the attempt, with a much more modern approach, but it is already suffering from the same problem; it doesn't have a universal definition for what a UV is or even what a bone is, believe it or not.

    My attempt to solve this problem is called Hitchens, I had a 90% solution a while ago, and I'm getting close to finishing it. Hitchens basically understands the Genesis architecture, how Blender handles armatures and skinning etc, and acts as a go-between. You might be interested in it when it's finished: Hitchens in action.

     

    Thank you very much for your detailed explanation and for sharing your insights about the limitations of BVH and the way DAZ handles rotations. It really helps me better understand the root of the issue.

    I also saw your note about Hitchens, that sounds like a very promising solution. Do you have any idea when it might be released, or whether there’s a chance to try out an early/test version?

    And if you’ve had a chance to run the quick BVH export/import test with Genesis 9, I’d be very interested to know your results. It would help me confirm whether the distortion problem only happens on my side.

    Thanks again for your time and support!

    Hi!

    Yes, of course, send me the BVH that I can apply to a vasic G9 and I'll see what happens.

    As for hitchens, I am almost back to where I was about two years ago, but now it is integrated with Sagan (because after importing an animation back from Blender, I mostly want to export it back to Blender with the JCMs, etc. applied) and it uses a LiveLink, so no insufficient file formats involved. There are just a few bugs left having to do with geografts and armatures. But the monster is alive and breathing. The problem is that I have very limited time to work on this. People are beginning to doubt me, but I swear, I'm on it :) When I have a minimum viable product, I'll of course release a beta version right away.

     

     

     

    Thank you!
    There’s actually no need for a full animation. Just load a Genesis 9 and export the default A-pose as BVH. You’ll see that even this static pose becomes distorted on re-import the arms and upper body twist and break. 

  • Note, I am not sure that the devs would agree with everything said in this thread.

  • Richard Haseltine said:

    Note, I am not sure that the devs would agree with everything said in this thread.

    Slightly less than relevant because we will never actually know, will we?

Sign In or Register to comment.