Genesis 3 limb rotation

In order to get Genesis 3 into other applications, I really try to understand how the joint rotation works and what the values in the FBX export means. I solved almost everything and Genesis 3 is by far the best Daz figure for using it in other applications, but I'm stuck on a certain point. Maybe someone can help.

When I export Genesis 3 default in FBX Ascii mode, I find the following lines for the limb 'lThighBend'.

    Model: 1389591312, "Model::lThighBend", "LimbNode" {
        Version: 232
        Properties70:  {
            P: "RotationOffset", "Vector3D", "Vector", "",7.90920782089233,-10.6266784667969,-1.48210310935974
            P: "RotationOrder", "enum", "", "",2
            P: "PreRotation", "Vector3D", "Vector", "",0.648822724819183,4.95046615600586,1.92385697364807
            P: "PostRotation", "Vector3D", "Vector", "",0.648822724819183,4.95046615600586,1.92385697364807

            P: "RotationActive", "bool", "", "",1
            P: "InheritType", "enum", "", "",2
            P: "ScalingMax", "Vector3D", "Vector", "",0,0,0
            P: "DefaultAttributeIndex", "int", "Integer", "",0

The PreRotation/PostRotation seems to be the initial direction/vector for this joint. I assumed that 0.648822724819183,4.95046615600586,1.92385697364807 are the values for XYZ.
Just don't know what the empty field " " between "Vector" and the numbers are for.

The enum value for the RotationOrder defines the rotation order. 2 equals YZX.

But what does RotationOffset mean?

Any hints? Is there somewhere a specification for that?

Thanks in advance, Walter
 

Comments

  • Singular3DSingular3D Posts: 529
    edited December 2016

    Just found this at Autodesk, which looks a bit different

        Model: 21883936, "Model::Humanoid:Hips", "LimbNode" {
            Version: 232
            Properties70:  {
                P: "ScalingMin", "Vector3D", "Vector", "",1,1,1
                P: "NegativePercentShapeSupport", "bool", "", "",0
                P: "DefaultAttributeIndex", "int", "Integer", "",0
                P: "Lcl Translation", "Lcl Translation", "", "A+",-271.281097412109,-762.185852050781,528.336242675781
                P: "Lcl Rotation", "Lcl Rotation", "", "A+",-1.35128843784332,2.6148145198822,0.42334708571434
                P: "Lcl Scaling", "Lcl Scaling", "", "A+",1,0.99999988079071,1
    

     

    Seems the attributes are completely different. Just wonder what you at Daz had in mind, when exporting these values...

    Post edited by Singular3D on
  • kitakoredazkitakoredaz Posts: 3,526
    edited December 2016

    I really feel interesting,, though nowdays I almost stop to play genesis figures with FBX,  but hoped to know clear those things.

    I think,, the first "" section of for vector 4 (quartanion) things,,, but just use "" about  vecotr 3 to simplify,,,(though I do not know detail)

    it should be empty value.

    then When you compare those value (exported FBX) with each node values (translation, orientation) in Joint editor,,  would not it tell some more insight? 

    though I think you have already checked these documents,,  I find some link .

    http://docs.autodesk.com/FBX/2014/ENU/FBX-SDK-Documentation/

    ======

    then Now I compare the Lthigh node of FBX with joint editor value,, it seems actually pre-orientation of the nodes.(YZX)  of default rig.

    then the rotation off set should be difference from  parent node (hip)  position. I believe.

    Eg  Hip  "Plevis" center  point =0, 107.04, 1.87,  then the 'lThighBend' start point = 7.91,  96.42,  0.39

    the difference is almost same of your discribed values. maybe cheeky

    Post edited by kitakoredaz on
  • Thanks for your reply. I just found out that this seems to be Maya style. There seem to be different ways to define the joints even at Autodesk (Maya/Max).

    The SDK documentation is just a link to the SDK, but does not explain the file format. I was a bit more lucky at the Blender community.

    Quaternion should have values below 1. So I don't think that these are quaternion values.

  • kitakoredazkitakoredaz Posts: 3,526

    Ah,, sorry I do not mean,, it is quartanion value.. but FBX can manage vector 4. , but DAZ export FBX as vector 3. (No quartanion, though I do not know,

    if DS can manage it or not, as hidden properties),  then I think the first value set as  empty (not use quartanion in exported file,

    then FBX use "vector 3", and  set it as empty, I think.

  • kitakoredazkitakoredaz Posts: 3,526
    edited December 2016

    Hi,, after all I could not find the  meaning of  "Vector3D", "Vector", "",a,b,c" ,, why there needs "" .   As you said, actually I can not find real FBX document,

    which guide each properties,, but SDK only.   but I test with more simple rigs, then now I think I can confirm about the rotation off set .

    it actually show the vector ,  from direct parent node center point to child node center point.   It not matter how I set each end point of nodes. and orientation.

    eg rig 1 (parent node) center point = (-30, 0 ,0) , then child node rig2 center point = (75.06, 70.00, 0.00) in daz studio. then export as FBX.

    n open it and check rig2 rotation off set, it indecate as

    P: "RotationOffset", "Vector3D", "Vector", "",105.058822631836, 70, 0   =  (75.06- (-30)), (70-0), (0-0).

    about Hip( the first child of root)

    the root node seems auto set as 0, 0, 0, if I export FBX,,, then  even though I tweak Root node , center point,,

    rotation off set of Hip node,,  show Hip node center point positon value. 

    =======================

    and one more,, all LCL Rotation,  LCLTranslation, LCLscaling are  actuall posing values (node rotation, translation scale,

    from default zero pose rig.   (we see in ds parameter tab, as each translation, rotation), maybe if you pose figure, then export it as FBX, those value are shown . 

     

    Post edited by kitakoredaz on
  • Sorry for my late reply. I'll make some tests tomorrow. I'm interested how this works.

Sign In or Register to comment.