With this beta release, 0.3a, The Blender => jME Exporter is rebranded to HottBJ Exporter: Handy Object Transfer Tool, Blender to jME.
UPDATE: Version 0.3b just adds documentation fixes, and support for Blender layers.
Blender layers make it easy to model your character with weapons, but export with just the Mountpoints and no weapons.
http://pub.admc.com/misc/jme/hottbj-0.3a.zip
http://pub.admc.com/misc/jme/hottbj-0.3b.zip
UPDATE: I should have mentioned that users upgrading from blenderjme need to manually remove blenderjme* from their Blender scripts directory. I just don’t have time to write an upgrade script.
Much work has gone into this release. Here are bullets for what I think are the most significant changes.
- Object orientations accurately reproduce the coordinate systems used in Blender, with or without automatic axis-flip to +Z-forward. This facilitates intuitive coding of manual transformations and use of controllers on the jME side.
- Allow usage of a Blender game property to cause the exporter to write any Blender Object so that it will be reconstituted on the jME side as the specified, custom Node subclass. (Just create a Blender String game property named jme.implClass).
- All Blender Game properties get saved as typed UserData. This feature requires jME-side presence of the provided Savable maps. This dependency will go away when and if these Savable Map classes get migrated to the jME trunk. The distro contains a sample file, AppAttrNode.java, that shows how to access the data from jME.
- Finally, as a consequence of faithful transfer of all sorts of object nesting, we've created the concept of Mountpoints. This allows you to jME-runtime-swap non-deforming objects on skin&bone animated models, as exhibited below, and in Ashton's forthcoming video.
The hat here is puposefully offset and at an angle, to test proper transferral and behavior with complex transforms. The hat is mounted directly to the head bone to prevent unnecessary skinning and to easily remove and don it. (If you planned on swapping to other hats, you should use mount points as done here for the weapon). The eyes are also mounted directly to a bone (could be used to aim the eyes). The MountLHand node selected in the Tree is a mount point, which is just an Empty created in Blender in the exact position in which the left hand should hold a weapon. The mount point position was set in Blender by parenting a weapon to it, but that weapon was not exported with the model, to allow for runtime control of weapon mounting. (The Plane in the background is just because I used this same export to test other objects in the scene).
Here I am using the right-click menu of Modeler to attach another model, spear-jme.xml, to the mount point, while an animation (with both rotational and translational motion) is loaded.
The spear is loaded. Note that the Tree shows it as a child of the mount point. The protuberance on the spear is to show proper orientation.
Finally, I used DEL key to delete the spear, then mounted an axe in its place, in the same way that I mounted the spear. Note in the tree that the axe is itself a nested model.