I’ve started work on making a free, pure Python model and animation converter that will take a FBX file as input and produce a egg model. The main goal is to get rigged and animated characters.
The code will be hosted here:
github.com/wezu/fbx2egg
Planed features:
-convert vertices (done)
-convert polygons (done)
-convert normals (done)
-convert binormals and tangent vectors (done)
-convert UVs (done)
-convert vertex colors (done)
-apply textures to right polygons (groups)(done)
-convert joints (done)
-convert (baked) animations WIP - works for one bone
-GUI (tkinter)
Features that may be added, but only if it is easy :
-multiple uv sets
-morphs
-nested model hierarchy
-materials
Features that where not planed but where added anyway:
-support for both triangulated meshes and meshes with higher order polygons (quads) (done)
Planed features for the GUI:
-changing/adding/removing textures
-setting texture options (envtype, wrapping, filters, format, stage-name, compression, anisotropic-degree, alpha )
-selecting groups that the textures will be applied to
-adding collision tags
-adding tags
-tagging groups so they don’t get flattened when they are part of an Actor (like with egg-optchar)
-adding tags like visibility, draw-order, depth-offset
-renaming groups and joints
-saving the animation data as a separate egg
Features that are not planed:
-support for binary FBX format
-nurbs, splines, empties/dummies, lights, cameras and any other non-geometry, non-bones objects
-keyframe interpolation (fbx can have say 4 keyframes for a 10 second animation and a ‘curve’ that defines transformations for the rest, egg wants a keyframe for every frame of the animation).
-generating tangent and binormals if they are not present in the fbx.
That’s the plan. I’ll be asking for help when I bump into something I can’t do myself, and later for help testing the script. Wish me luck