Blender Export File Converter

This application is the main utility of the Blender export project. It reads the individual export text files created by the export file splitter, along with a manually created file containing texture information that Python cannot currently extract from Blender, and creates a Jet Indexed Mesh file that defines all the 3D object information created in Blender for the Jet game engine.

Last updated: 01/13/2002


Status

08/30/01: This application appears to handle simple static meshes, materials, and projected textures correctly. Many values are currently hard coded, and many features I would like to have running have not been addressed yet. This is the most complex piece of this project, and is the most likely to contain undiscovered bugs

09/09/01: The project has been significantly restructured to remove the Blender-specific code from the Jet file formatting classes, to remove all known memory leaks, to improve the usefulness of several of the classes, and to better enable people to write exporters for other 3D modeling programs using other export procedures (e.g. using plug-ins instead of export file generators). See the notes.txt file for more specifics on these changes. Note: thanks to Andrew Hoadley for pointing out the need for many of these changes.

09/23/01: Expanded to properly handle UV-Mapping information from the Blender export files, and to ignore the lamp and camera objects the Blender exporter can now export.

10/18/01: Expanded again to include bones, bone influence chunks, influence vertex objects, and attachments. There are now sufficient classes to create a complete Jet Indexed Mesh resource file. Other improvements include:

10/20/01: Fixed a bug in the file name padding that could cause problems loading the mesh into Jet.

11/25/01: Expanded to support tiled textures and to allow the creation of bones, bone influences, and bone influence vertex lists. Improvements include:

12/01/01: Officially separated the resource file formatting framework classes from the original Blender project so we can easily support multiple 3D editors with the same framework.

01/13/02: Added the base routines to create Jet Animation (*.kin) files, and added a checkbox on the application interface to indicate the creation of an animation file. At this point, the Jet file creation classes are sufficiently complete to create an animation file, but the Blender project only provides example code of how to create the required classes. The blender project does not yet have any way of exporting animation information from the Blender file, or of reading such informaion to create the Jet animation file. Stay tuned, however, as that will be coming next. At the moment, these additions only serve to test the initial file creating classes.

Also, I have successfully exported bumpmaps from Blender to Jet, but the process is still clumsy, quite manual, and seems to contain some remaining bugs with only moderately useful workarounds, so it's not ready to publish yet (but it can be made to work!).


Known Problems/Gotchas:


Files

I have not yet succeeded in setting up a full SourceForge project, but I do have a zip file containing the files for this portion of the project. You can download the FileConverter.zip files here. Note: this is a WinZip file, not a UNIX zip format. It contains pretty much the whole development project, which will be most useful to other developers. See the Example Project for information on how this program fits in with the other parts of the project.


Usage

This program reads through the output of the Blender Export script, or an output file created by the file splitter utility, and through the manually created BlenderExportTexures.txt file converting the Blender 3D object information to a Jet Indexed Mesh resource file. To use this utility:

You can replace the CBlenderDataSource class with similar classes to export data from other 3D modeling software.

Please let me know when you find bugs. This is the most complex utility of this project so far, and is therefore the most likely to contain errors.