Using Blender to Create Jet 3D Resources
This project contains a number of utilities and scripts to export Blender 3D
objects using the Blender Python API, and to format the exported data into Jet
Indexed Mesh (*.IM) resource files.
Last Updated: 12/01/2001
Introduction
Auran's standard exporter works only with 3DS Max and Maya, which are fairly
expensive tools, especially for hobbyists and niche game developers. Blender
is a somewhat quirky but most interesting product which creates excellent models
and, at the time of this writing, is free as a download.
Note: most of these utilities are written in Microsoft Visual C++ V6.0, and
run only in the Windows environment. The Blender export script is written in
Python, and should run on any version of Blender.
Current problems revolve around the facts that:
- Blender is a rapidly developing application which, at the time of this writing,
has not provided access to all its internal data through its built-in Python
interface. Therefore writing a true exporter is difficult.
- The Blender export script problem is complicated by the fact that the Python
interface has been changing recently, and it's a bit difficult to predict
the best way to get at the data that is available.
- Blender does not provide any Level of Detail (LOD) features that would be
appropriate for a *.PM Progressive Mesh file. There may be generic algorithms
we can use to work around this, but I do not know of any yet.
- This project cannot yet export Blender animation as I haven't gotten around
to working with Jet's *.KIN animation files yet (someday, after textures,
articulated meshes, and *.PM files, perhaps...).
- I'm only doing this as a hobby, so there are limited hours to spend on all
this. That was one of the primary reasons to move development to SourceForge.net--to
let others help in making all this work.
Note that the point of this project so far has been to experiment with these
files to see what we can do. Therefore, these utilities are definitely not
in a final polished form yet, and they often sacrifice elegance for expediency.
We can fix them up where appropriate, of course, after they become useful.
Components
Initially, this project works with the following components:
- Blender Python export script.
This script allows you to export the contents of your Blender files through
the built-in Blender Python scripting facilities to a generic readable text
file which we can manipulate as we see fit.
- Blender export file splitter application
This utility splits the contents of the Blender export script into a series
of individual export files representing individual 3D objects in your Jet
environment. This allow you to use the same Blender components in multiple
Jet objects with having to duplicate the components in Blender, and removes
the requirement that you select just the objects you want to export for any
given object.
- Blender file conversion application
This utility reads a single export file created by the splitter and any workaround
files needed to get the Blender data out of the Blender environment, and creates
a properly formatted *.IM Indexed Mesh file to import the appropriate 3D object
into the Jet environment. Note, if you can work with Visual C++ projects,
you can modify this application to gather 3D modeling data from other sources
than Blender, and adapt this project to other environments.
- The Example Project
This page describes the example project used to develop the above utilities.
Note: I have not yet gotten the CVS system set up on SourceForge, but the source
for all these components is available through downloadable zipped source files
on this site's pages.