Blender 2.8 Support for Jmonkeyengine 3

When will Blender 2.8 support come for Jmonkeyengine 3.

Reason for blender 2.8 are :

  1. Blender 2.8 is faster and have many more features as compare to 2.7xx.
  2. Modelling and other tools are very easy to use now in 2.8 version.
  3. Evee engine in 2.8 render images and scenes in very short time as compare to cycles engine.

please also mention the future of Engine. Its almost 7 years JME3 is there no JME4 with new major features and development is very slow.

1 Like

I’ve been using Blender 2.8 with jme ever since the first betas came out. I don’t see a reason why you couldn’t use it now.

.blend files are not working. Just showing in folder of assetManager but not viewing and converting to j30.

aslo gltf 2.0 not working ogre 3d xml not enabling in blender 2.8 official release.

but one thing that i have jmonkeyengine 3.2 not 3.2.4

let me try JME 3.2.4

Blender2p8

Did you import it or just copy it to the folder?

save as .blend file. i just save it to models folder. not imported.

Click the green arrow in the toolbar.

1 Like

NotWorking

And the stacktrace?

not working with import this is blender 2.8 official not beta or test release. please help

Unknown block header: WS00
Unknown block header: WS00
Unknown block header: WS00
Unknown block header: WS00
Unknown block header: WS00
Unknown block header: WS00
Unknown block header: WS00
Unknown block header: WS00
Unknown block header: WS00
Unknown block header: WS00
Loading animations that will be later applied to scene features.
An Exception has occured when trying to load asset Blender2p8
com.jme3.asset.AssetLoadException: An exception has occured while loading asset: Models/Blender2p8.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.SpatialAssetDataObject.loadAsset(SpatialAssetDataObject.java:53)
	at com.jme3.gde.core.assets.AssetData.loadAsset(AssetData.java:130)
	at com.jme3.gde.modelimporter.ModelImporterVisualPanel3.loadModel(ModelImporterVisualPanel3.java:92)
	at com.jme3.gde.modelimporter.ModelImporterVisualPanel3.loadSettings(ModelImporterVisualPanel3.java:61)
	at com.jme3.gde.modelimporter.ModelImporterWizardPanel3.readSettings(ModelImporterWizardPanel3.java:82)
	at org.openide.WizardDescriptor.updateStateOpen(WizardDescriptor.java:867)
	at org.openide.WizardDescriptor.updateState(WizardDescriptor.java:822)
	at org.openide.WizardDescriptor._updateState(WizardDescriptor.java:800)
	at org.openide.WizardDescriptor.goToNextStep(WizardDescriptor.java:1072)
	at org.openide.WizardDescriptor.access$1900(WizardDescriptor.java:92)
	at org.openide.WizardDescriptor$Listener$1.run(WizardDescriptor.java:2208)
	at org.openide.WizardDescriptor.lazyValidate(WizardDescriptor.java:1516)
	at org.openide.WizardDescriptor.access$2000(WizardDescriptor.java:92)
	at org.openide.WizardDescriptor$Listener.actionPerformed(WizardDescriptor.java:2227)
	at sun.reflect.GeneratedMethodAccessor56.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at org.openide.util.WeakListenerImpl$ProxyListener.invoke(WeakListenerImpl.java:487)
	at com.sun.proxy.$Proxy26.actionPerformed(Unknown Source)
	at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2022)
	at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2348)
	at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402)
	at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)
	at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:252)
	at java.awt.AWTEventMulticaster.mouseReleased(AWTEventMulticaster.java:289)
	at java.awt.Component.processMouseEvent(Component.java:6539)
	at javax.swing.JComponent.processMouseEvent(JComponent.java:3324)
	at java.awt.Component.processEvent(Component.java:6304)
	at java.awt.Container.processEvent(Container.java:2239)
	at java.awt.Component.dispatchEventImpl(Component.java:4889)
	at java.awt.Container.dispatchEventImpl(Container.java:2297)
	at java.awt.Component.dispatchEvent(Component.java:4711)
	at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4904)
	at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4535)
	at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4476)
	at java.awt.Container.dispatchEventImpl(Container.java:2283)
	at java.awt.Window.dispatchEventImpl(Window.java:2746)
	at java.awt.Component.dispatchEvent(Component.java:4711)
	at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:760)
	at java.awt.EventQueue.access$500(EventQueue.java:97)
	at java.awt.EventQueue$3.run(EventQueue.java:709)
	at java.awt.EventQueue$3.run(EventQueue.java:703)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:74)
	at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:84)
	at java.awt.EventQueue$4.run(EventQueue.java:733)
	at java.awt.EventQueue$4.run(EventQueue.java:731)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:74)
	at java.awt.EventQueue.dispatchEvent(EventQueue.java:730)
	at org.netbeans.core.TimableEventQueue.dispatchEvent(TimableEventQueue.java:159)
	at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:205)
	at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
	at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:109)
	at java.awt.WaitDispatchSupport$2.run(WaitDispatchSupport.java:190)
	at java.awt.WaitDispatchSupport$4.run(WaitDispatchSupport.java:235)
	at java.awt.WaitDispatchSupport$4.run(WaitDispatchSupport.java:233)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.awt.WaitDispatchSupport.enter(WaitDispatchSupport.java:233)
	at java.awt.Dialog.show(Dialog.java:1084)
	at org.netbeans.core.windows.services.NbPresenter.superShow(NbPresenter.java:1086)
	at org.netbeans.core.windows.services.NbPresenter.doShow(NbPresenter.java:1136)
	at org.netbeans.core.windows.services.NbPresenter.run(NbPresenter.java:1108)
	at org.netbeans.core.windows.services.NbPresenter.run(NbPresenter.java:131)
	at org.netbeans.modules.openide.util.NbMutexEventProvider$Event.doEventAccess(NbMutexEventProvider.java:138)
	at org.netbeans.modules.openide.util.NbMutexEventProvider$Event.readAccess(NbMutexEventProvider.java:98)
	at org.netbeans.modules.openide.util.LazyMutexImplementation.readAccess(LazyMutexImplementation.java:94)
	at org.openide.util.Mutex.readAccess(Mutex.java:218)
	at org.netbeans.core.windows.services.NbPresenter.show(NbPresenter.java:1093)
	at java.awt.Component.show(Component.java:1671)
	at java.awt.Component.setVisible(Component.java:1623)
	at java.awt.Window.setVisible(Window.java:1014)
	at java.awt.Dialog.setVisible(Dialog.java:1005)
	at com.jme3.gde.modelimporter.ImportModel.actionPerformed(ImportModel.java:93)
	at org.openide.awt.AlwaysEnabledAction$1.run(AlwaysEnabledAction.java:199)
	at org.openide.util.actions.ActionInvoker$1.run(ActionInvoker.java:95)
	at org.openide.util.actions.ActionInvoker.doPerformAction(ActionInvoker.java:116)
	at org.openide.util.actions.ActionInvoker.invokeAction(ActionInvoker.java:99)
	at org.openide.awt.AlwaysEnabledAction.actionPerformed(AlwaysEnabledAction.java:202)
	at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2022)
	at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2348)
	at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402)
	at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)
	at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:252)
	at java.awt.AWTEventMulticaster.mouseReleased(AWTEventMulticaster.java:289)
	at java.awt.AWTEventMulticaster.mouseReleased(AWTEventMulticaster.java:289)
	at java.awt.AWTEventMulticaster.mouseReleased(AWTEventMulticaster.java:289)
	at java.awt.AWTEventMulticaster.mouseReleased(AWTEventMulticaster.java:289)
	at java.awt.Component.processMouseEvent(Component.java:6539)
	at javax.swing.JComponent.processMouseEvent(JComponent.java:3324)
	at java.awt.Component.processEvent(Component.java:6304)
	at java.awt.Container.processEvent(Container.java:2239)
	at java.awt.Component.dispatchEventImpl(Component.java:4889)
	at java.awt.Container.dispatchEventImpl(Container.java:2297)
	at java.awt.Component.dispatchEvent(Component.java:4711)
	at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4904)
	at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4535)
	at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4476)
	at java.awt.Container.dispatchEventImpl(Container.java:2283)
	at java.awt.Window.dispatchEventImpl(Window.java:2746)
	at java.awt.Component.dispatchEvent(Component.java:4711)
	at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:760)
	at java.awt.EventQueue.access$500(EventQueue.java:97)
	at java.awt.EventQueue$3.run(EventQueue.java:709)
	at java.awt.EventQueue$3.run(EventQueue.java:703)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:74)
	at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:84)
	at java.awt.EventQueue$4.run(EventQueue.java:733)
	at java.awt.EventQueue$4.run(EventQueue.java:731)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:74)
	at java.awt.EventQueue.dispatchEvent(EventQueue.java:730)
	at org.netbeans.core.TimableEventQueue.dispatchEvent(TimableEventQueue.java:159)
	at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:205)
	at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
	at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
	at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)
Caused by: java.io.IOException: Unexpected importer exception occured: null
	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)
	... 123 more
Caused by: java.lang.NullPointerException
	at com.jme3.scene.plugins.blender.landscape.LandscapeHelper.toAmbientLight(LandscapeHelper.java:56)
	at com.jme3.scene.plugins.blender.BlenderLoader.load(BlenderLoader.java:158)
	... 125 more
Stop offview panel

Remove the lights from your scene.

ok i will try do so.

the link you show i see “Models/Blender2p8.blend” instead of .gltf model. also in every your screens/debug i see .blend.

It was already told to use .gltf for new Blender. I think Blender 2.8 file will not work anyway, since its not supported as i know.

aslo gltf 2.0 not working

it works for me, but maybe you use wrong plugin, there are two(one for older versions). Use one already in Blender 2.8.

Also you should read:

https://wiki.jmonkeyengine.org/jme3/advanced/blender_gltf.html

2 Likes

For clarity, the .blend format is Blender’s own internal format. It is not an interchange format. This means that they can and do change the format with every new version, point release or otherwise. Moreover, the .blend format will support everything blender does, including things that would never ever be used for games.

Consequently, keeping a .blend importer “up to date” is essentially impossible… or at the very least a full time job for a team of people.

It’s better to use something that is designed to export a model in a game-ready form. GLTF is our current best hope for this as it’s the ever-more-heavily adopted new industry standard.

7 Likes

To add on to this a bit, the fact that it is an industry standard is a huge bonus in and of itself - so far as I know, up until now we haven’t enjoyed a real “industry standard” format for exporting content to games/realtime renderers. Most other major formats (FBX, Collada, Ogre) were built by a single company around a single tool/toolchain or were originally tool-specific formats that later caught on as a sort of industry “soft standard” (OBJ).

At any rate, GLTF has an unprecedented amount of support right now, and just about anything you could think to do in a game it will support. All the effort that goes into GLTF in the industry benefits us for “free” because Blender & other tools already play nicely with it. As long as they correctly export according to the standard and we correctly import according to the standard, everything just sort of works out.

4 Likes