Assimp-based model import and the MonkeyWrench library

Hi @sgold ,
I am doing some testing with MonkeyWrench. I noticed that compared to the stock jme3-gltf-loader, MonkeyWrench does not load gltf files having an AnimComposer, but no skeleton. Could this be fixed please?

Here is how the gltf file containing only the animation is displayed in the SDK:

Here is the stacktrace from MonkeyWrench:

Info,  T15144: Load Models/Zombiegirl/Running.gltf
Debug, T15144: Assimp 5.2.2250552897 amd64 msvc shared singlethreadedsingle : 
Info,  T15144: Found a possible importer: glTF Importer; trying signature-based detection
Info,  T15144: Found a possible importer: glTF2 Importer; trying signature-based detection
Debug, T15144: Loading GLTF2 asset
Debug, T15144: Parsing GLTF2 JSON
Info,  T15144: Found a matching importer for this file format: glTF2 Importer.
Info,  T15144: Import root directory is 'Models/Zombiegirl\'
Debug, T15144: Reading GLTF2 file
Debug, T15144: Loading GLTF2 asset
Debug, T15144: Parsing GLTF2 JSON
Debug, T15144: Importing 0 materials
Debug, T15144: Importing 0 meshes
Debug, T15144: Importing nodes
Debug, T15144: Importing 1 animations
Debug, T15144: Importing metadata
Debug, T15144: UpdateImporterScale scale set: 1
Debug, T15144: ValidateDataStructureProcess begin
Debug, T15144: ValidateDataStructureProcess end
Info,  T15144: Entering post processing pipeline
Debug, T15144: RemoveRedundantMatsProcess begin
Error, T15144: No materials remaining
Info,  T15144: Leaving post processing pipeline
java.io.IOException: Assimp failed to import an asset from "Models/Zombiegirl/Running.gltf":
 No materials remaining
	at com.github.stephengold.wrench.LwjglAssetLoader.loadScene(LwjglAssetLoader.java:144)
	at com.github.stephengold.wrench.LwjglAssetLoader.load(LwjglAssetLoader.java:95)
	at com.jme3.asset.DesktopAssetManager.loadLocatedAsset(DesktopAssetManager.java:272)
	at com.jme3.asset.DesktopAssetManager.loadAsset(DesktopAssetManager.java:388)
	at com.jme3.asset.DesktopAssetManager.loadModel(DesktopAssetManager.java:439)
	at com.capdevon.test.Test_AssetManager.simpleInitApp(Test_AssetManager.java:69)
	at com.jme3.app.SimpleApplication.initialize(SimpleApplication.java:240)
	at com.jme3.system.lwjgl.LwjglWindow.initInThread(LwjglWindow.java:607)
	at com.jme3.system.lwjgl.LwjglWindow.run(LwjglWindow.java:710)
	at java.base/java.lang.Thread.run(Thread.java:834)
gen 19, 2024 6:50:43 PM com.jme3.app.LegacyApplication handleError
SEVERE: Uncaught exception thrown in Thread[jME3 Main,5,main]
com.jme3.asset.AssetLoadException: An exception has occurred while loading asset: Models/Zombiegirl/Running.gltf
	at com.jme3.asset.DesktopAssetManager.loadLocatedAsset(DesktopAssetManager.java:274)
	at com.jme3.asset.DesktopAssetManager.loadAsset(DesktopAssetManager.java:388)
	at com.jme3.asset.DesktopAssetManager.loadModel(DesktopAssetManager.java:439)
	at com.capdevon.test.Test_AssetManager.simpleInitApp(Test_AssetManager.java:69)
	at com.jme3.app.SimpleApplication.initialize(SimpleApplication.java:240)
	at com.jme3.system.lwjgl.LwjglWindow.initInThread(LwjglWindow.java:607)
	at com.jme3.system.lwjgl.LwjglWindow.run(LwjglWindow.java:710)
	at java.base/java.lang.Thread.run(Thread.java:834)
Caused by: java.io.IOException: Assimp failed to import an asset from "Models/Zombiegirl/Running.gltf":
 No materials remaining
	at com.github.stephengold.wrench.LwjglAssetLoader.loadScene(LwjglAssetLoader.java:144)
	at com.github.stephengold.wrench.LwjglAssetLoader.load(LwjglAssetLoader.java:95)
	at com.jme3.asset.DesktopAssetManager.loadLocatedAsset(DesktopAssetManager.java:272)
	... 7 more

Let me know if you need more information, or if you need the gltf file for testing.
Thank you.

1 Like