JME 3.1 SDK, Blender 2.78c, animation import problem: BoneTrack cannot be cast to SpatialTrack

Dear JME experts,

I have some problems with easiest animation, which does not work and I do not get why.
I checked and this animation gets exported correctly with Ogre exporter (without any complaints), but not with Blender exporter, and for the lean process I need the Blender one.

Here is the animation:


Basically I have armature modifier to the mesh, vertex groups of the mesh have same names as bones.
Ctrl-A is applied in Blender to exclude location/rotation/scale distortions
Origin of the armature and mesh is in same point.
Mesh is triangulated.

However, when I add .blend file in JME SDK and select “convert to j3o”, then I get following error:

An Exception has occured when trying to load asset TestDoor
com.jme3.asset.AssetLoadException: An exception has occured while loading asset: Textures/Level1/Home assets/animationTests/TestDoor.blend
	at com.jme3.asset.DesktopAssetManager.loadLocatedAsset(DesktopAssetManager.java:261)
	at com.jme3.asset.DesktopAssetManager.loadAsset(DesktopAssetManager.java:373)
	at com.jme3.asset.DesktopAssetManager.loadModel(DesktopAssetManager.java:416)
	at com.jme3.gde.core.assets.SpatialAssetDataObject.loadAsset(SpatialAssetDataObject.java:94)
	at com.jme3.gde.core.assets.actions.ConvertModel$1.run(ConvertModel.java:59)
	at java.lang.Thread.run(Thread.java:745)
Caused by: java.io.IOException: Unexpected importer exception occured: com.jme3.animation.BoneTrack cannot be cast to com.jme3.animation.SpatialTrack
	at com.jme3.scene.plugins.blender.BlenderLoader.load(BlenderLoader.java:223)
	at com.jme3.scene.plugins.blender.BlenderLoader.load(BlenderLoader.java:88)
	at com.jme3.asset.DesktopAssetManager.loadLocatedAsset(DesktopAssetManager.java:259)
	... 5 more
Caused by: java.lang.ClassCastException: com.jme3.animation.BoneTrack cannot be cast to com.jme3.animation.SpatialTrack
	at com.jme3.scene.plugins.blender.animations.BlenderAction.toTracks(BlenderAction.java:74)
	at com.jme3.scene.plugins.blender.animations.AnimationHelper.applyAnimations(AnimationHelper.java:74)
	at com.jme3.scene.plugins.blender.objects.ObjectHelper.toObject(ObjectHelper.java:264)
	at com.jme3.scene.plugins.blender.BlenderLoader.load(BlenderLoader.java:105)
	... 7 more
Loading animations that will be later applied to scene features.
Found animation: Close.
Found animation: Open.
Loading model's textures.
An Exception has occured when trying to load asset TestDoor3
com.jme3.asset.AssetLoadException: An exception has occured while loading asset: Textures/Level1/Home assets/animationTests/TestDoor3.blend
	at com.jme3.asset.DesktopAssetManager.loadLocatedAsset(DesktopAssetManager.java:261)
	at com.jme3.asset.DesktopAssetManager.loadAsset(DesktopAssetManager.java:373)
	at com.jme3.asset.DesktopAssetManager.loadModel(DesktopAssetManager.java:416)
	at com.jme3.gde.core.assets.SpatialAssetDataObject.loadAsset(SpatialAssetDataObject.java:94)
	at com.jme3.gde.core.assets.actions.ConvertModel$1.run(ConvertModel.java:59)
	at java.lang.Thread.run(Thread.java:745)
Caused by: java.io.IOException: Unexpected importer exception occured: com.jme3.animation.BoneTrack cannot be cast to com.jme3.animation.SpatialTrack
	at com.jme3.scene.plugins.blender.BlenderLoader.load(BlenderLoader.java:223)
	at com.jme3.scene.plugins.blender.BlenderLoader.load(BlenderLoader.java:88)
	at com.jme3.asset.DesktopAssetManager.loadLocatedAsset(DesktopAssetManager.java:259)
	... 5 more
Caused by: java.lang.ClassCastException: com.jme3.animation.BoneTrack cannot be cast to com.jme3.animation.SpatialTrack
	at com.jme3.scene.plugins.blender.animations.BlenderAction.toTracks(BlenderAction.java:74)
	at com.jme3.scene.plugins.blender.animations.AnimationHelper.applyAnimations(AnimationHelper.java:74)
	at com.jme3.scene.plugins.blender.objects.ObjectHelper.toObject(ObjectHelper.java:264)
	at com.jme3.scene.plugins.blender.BlenderLoader.load(BlenderLoader.java:105)
	... 7 more

Please let me know if you have an idea how it could be solved?

1 Like

I can only tell you a workaround which would be using xbuf. It’s workflow is comparable to ogre, though it works flawlessly and is technically safe to use since it doesn’t suffer things like Blender Modifiers etc

1 Like

Changing the model names under the same armature to lowercase could fix the problem (At least it throws the same exception if those names are fully uppercase, what is a weird bug :S )

3 Likes