Skeleton transformation help.

Greetings folks,

I'm hoping someone here could possibly point me in the right direction.  I've been writing a custom exporter using the SDK, which is almost completed.  The only thing I'm stuck on is calculating the transforms for the G8 skeleton.

I've been trying to match the numbers that are generated by the default FBX exporter, however, my calculations are incorrect when the bone has a non-zero value for rotation.

For example, working with the Gens, for bone Gen1, by default the x-axis has a rotation of 37.00 degrees.  When exported with the default fbx exporter, the values for the rotation offset are as follows:

0, -15.870002746582, 8.31828022003174  while my calculations produce 0.000000000000,  6.467460632324, -54.826713562012.

If I change that 37.00 degrees to zero, I can produce matching numbers.

The way I've been calculating the transforms is by multiplying the inverse of the parent WS transform by the nodes WS transform "parentTransform.inverse() * node->getWSTransform()"

I've also found another fomula outlined within the documentation @ http://docs.daz3d.com/doku.php/public/dson_spec/object_definitions/node/start  however, I'm unsure if it applies here.

Any insight, examples or suggestions on this would be appreciated.

 

 

Sign In or Register to comment.