I'm in the process of improving my Collada Parser to deal with Skinning and Animation. I have some high level questions about Away3D 4.0's api's. And yes, I've looked at the examples - it's not clear what exactly I need to do from where I am now.
I currently am combining several clothing pieces (separate collada files) to make up my character mesh. Those are all being properly brought in to individual SkinnedSubGeometry pieces, with Mesh transforms for each. (They are all currently attached to one root node). There is a separate skeleton node hierarchy that I'm also reading in, and the named joints are the ones that need to be associated with the skin weighting. Some class needs to connect these things together - something, for each SkinnedSubGeometry, needs to say that joint "foo" is joint index "n" for this SkinnedSubGeometry.... etc. Does such a class exist yet? I have set up the jointIndexData and jointWeightsData from the information in collada in each SkinnedSubGeometry piece. Questions: a) I am unsure of exactly where to put DaeSkin.bind_shape_matrix and DaeSkin.inv_bind_matrix[]. I think the next place I need to look is somewhere in src/away3d/animators/skeleton/... What classes must I put together to do skeletal animation? Has this code changed little enough that I could look at Away3D 3.6 docs (which seem to be more complete) and gleam how to put all this together? b) The example code (NSSSkinMesh.as for instance) seems to indicate that I must pre-transform the vertex x,y,z by the bindPose. But I cannot tell if that assumes there is no Mesh transform also applied, or if both need to be done. The data passed into NSSSkinMesh is all "pre set" and very hard to understand. c) Is there a better example to refer to? d) The NSSSkinMesh.as example code has the comment "indices need to be multiplied by 3 (amount of matrix registers)". Is that a global thing (molehill const, I assume)? Or is the number of matrix registers set someplace else in the code, and this value is just matching that? Thanks for any help you can provide. -Dave