I figured out the bug in the blender2crystal exporter. Or maybe it's a bug in Blender. Or a feature. To any point, I'll post what I found then follow it up with inflammatory comments just to see if anyone, preferably anyone who might maintain blender2crystal is reading this thread.
Blender's NMesh module has two methods that will return an NMesh object: GetRaw and GetRawFromObject. GetRaw will get the raw mesh info for a given
mesh, while GetRawFromObject will get mesh info for a given
object. Like Jorrit pointed out a while ago, the (loose) analogy is like retreiving a factory vs. a mesh. GetRaw, in its current state, returns just the mesh data itself without deformations. GetRawFromObject returns deformed mesh data (see
Blender's Python Docs for the whole dirty business).
srp3d.py in the blender2crystal distribution uses GetRaw which just returns the static mesh data without skeletal deformations from rigging at a given frame. I hacked the Python script to use GetRawFromObject and things now work peachy. Just change
mesh = Blender.NMesh.GetRaw(mesh.name)
to
mesh = Blender.NMesh.GetRawFromObject(object.name)
Now I just need to figure out why exporting as a library makes the exporter barf.
<inflamatory comment>
I think we should bring back the <BLINK> tag.</inflamatory comment>