Btw, "rival firm" is already have good transformations, skeleton and weights done:
One model does not cover it.
Show me a fully loaded ship with all children and grand children and with all the correct transforms and I'll agree with the "done" part of that statement
But seriously, who ever wrote that does understand the weights and I will contact them.
EDIT:
Im not wasting my time trying to contact this person. I thought this was wrote by some one other than the author of UUW3d.
This is trial/buy software.. there is NO way he will share anything about any part of that App.
I found some old code kicking around the net.. It's in C but sort of shows how the Index and weights work (IIIWW)
Its looking like the part of the matrix stack is being used but how Im not sure yet.
from AGM019_8in55_CA68_dead.visual :
Code: Select all
<node> Roll_Back1_BlendBone </node>
<node> Roll_Back2_BlendBone </node>
<node> Roll_Back3_BlendBone </node>
<node> Rotate_X_BlendBone </node>
<node> Rotate_Y_BlendBone </node>
Also it looks like the index values point at which 3 of these are used.
They are dividing these index numbers by 3 before using them to index the matrix stack. This is probably because of the way the stack is stored??
I don't care about deforming the guns.. its the least of my problems right now and I dont want to pre multiply every vertex to get to the end transform. What I do want is to create a final matrix that can be used at render time and export to position the objects at the correct locations, rotations and scale. I am already grabbing the entire matrix stack so its a matter of figuring out which of these matrices are used.
I think I can take a identity matrix and multiply it by the stack and get the final transform. I'm not good at matrix math so I could be wrong about this.
Any one that knows matrix math is welcome to join this conversation.
The weights are mostly values of 255. so it should be pretty easy to create a weight map for export.
Also..
they are creating a 3rd value from the 2 weights. This is probably the actual value but I need to dig in the code more.
W3 = 1.0 - (w1/255) - (w2/255)
Also.. They look for "skinned" in the material. I would assume this is how they decide what kind of vertex this model uses but Im not 100% on that.
The vertex header has the name in plain text of what type vertex.
I'd love to change the world but I can't get my hands on the code.