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
Just found this at Autodesk, which looks a bit different
Seems the attributes are completely different. Just wonder what you at Daz had in mind, when exporting these values...
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
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.
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.
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 .
Sorry for my late reply. I'll make some tests tomorrow. I'm interested how this works.