Now I just need to get the axis snaps working right.
I've also been messing around with quaternions for a while too. I've got a bunch of different ways to convert Euler to Quat and then back to Euler, so I should be able to get them working soon. Using quaternions is better than Euler because:
- The axes are world relative, not local, so the axes will always face x y and z in world coords not relative to the parent bone.
- There's no gimbal lock when you rotate. (Gimbal lock is when the rotation goes nuts randomly because the axes cross)
- They're better for interpolation, which I want to use for custom IK animating & the Kinect tracking thing.
Moveset rebuilder is meh (it's just progressing really slowly atm) and I'm editing the primitive manager again to handle tristrips and trifans instead of convert them all into triangles.
Has anyone written down the basic steps to adding a new data format? I think it would be nice to have support for the MiscData[7] files for All-Star mode.
What you need to do is create a node is add the TryParse function to it to check the hex tag, override the OnInitialize function and the OnPopulate function if it has children, create a struct for the header, and then use a property to convert WorkingUncompressed.Address to your structure so you can easily retrieve values you want.
Just look at code for any existing node. It's pretty repetitive stuff.