BlenderModelLoader: Error Converting some Sketchup exported .dae models to .j3o

When hitting the “Convert to j3o Binary” icon on a .dae file already in my assets/Models folder:

com.jme3.scene.plugins.blender.exceptions.BlenderFileException: No data stored for address: 4471608728. Rarely blender makes mistakes when storing data. Try resaving the model after making minor changes. This usually helps.
at com.jme3.scene.plugins.blender.file.Pointer.fetchData(Pointer.java:94)
at com.jme3.scene.plugins.blender.meshes.MeshHelper.readBMesh(MeshHelper.java:282)
at com.jme3.scene.plugins.blender.meshes.MeshHelper.toMesh(MeshHelper.java:118)
at com.jme3.scene.plugins.blender.objects.ObjectHelper.toObject(ObjectHelper.java:153)
at com.jme3.scene.plugins.blender.AbstractBlenderLoader.toObject(AbstractBlenderLoader.java:137)
at com.jme3.scene.plugins.blender.BlenderLoader.toObject(BlenderLoader.java:71)
at com.jme3.scene.plugins.blender.BlenderModelLoader.load(BlenderModelLoader.java:66)
at com.jme3.scene.plugins.blender.BlenderModelLoader.load(BlenderModelLoader.java:52)
at com.jme3.asset.DesktopAssetManager.loadAsset(DesktopAssetManager.java:282)
at com.jme3.asset.DesktopAssetManager.loadModel(DesktopAssetManager.java:368)
at com.jme3.asset.DesktopAssetManager.loadModel(DesktopAssetManager.java:372)
at com.jme3.gde.blender.filetypes.AbstractBlenderImportDataObject.loadAsset(AbstractBlenderImportDataObject.java:71)
at com.jme3.gde.core.assets.actions.ConvertModel$1.run(ConvertModel.java:60)
at java.lang.Thread.run(Thread.java:680)

When trying to import the model using the “Import Model” icon:

com.jme3.scene.plugins.blender.exceptions.BlenderFileException: No data stored for address: 4465329592. Rarely blender makes mistakes when storing data. Try resaving the model after making minor changes. This usually helps.
at com.jme3.scene.plugins.blender.file.Pointer.fetchData(Pointer.java:94)
at com.jme3.scene.plugins.blender.meshes.MeshHelper.readBMesh(MeshHelper.java:282)
at com.jme3.scene.plugins.blender.meshes.MeshHelper.toMesh(MeshHelper.java:118)
at com.jme3.scene.plugins.blender.objects.ObjectHelper.toObject(ObjectHelper.java:153)
at com.jme3.scene.plugins.blender.AbstractBlenderLoader.toObject(AbstractBlenderLoader.java:137)
at com.jme3.scene.plugins.blender.BlenderLoader.toObject(BlenderLoader.java:71)
at com.jme3.scene.plugins.blender.BlenderModelLoader.load(BlenderModelLoader.java:66)
at com.jme3.scene.plugins.blender.BlenderModelLoader.load(BlenderModelLoader.java:52)
at com.jme3.asset.DesktopAssetManager.loadAsset(DesktopAssetManager.java:282)
at com.jme3.asset.DesktopAssetManager.loadModel(DesktopAssetManager.java:368)
at com.jme3.asset.DesktopAssetManager.loadModel(DesktopAssetManager.java:372)
at com.jme3.gde.blender.filetypes.AbstractBlenderImportDataObject.loadAsset(AbstractBlenderImportDataObject.java:71)
at com.jme3.gde.blender.filetypes.AbstractBlenderImportDataObject.loadAsset(AbstractBlenderImportDataObject.java:29)
at com.jme3.gde.core.assets.AssetData.loadAsset(AssetData.java:105)
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:81)
at org.openide.WizardDescriptor.updateStateOpen(WizardDescriptor.java:893)
at org.openide.WizardDescriptor.updateState(WizardDescriptor.java:844)
at org.openide.WizardDescriptor.goToNextStep(WizardDescriptor.java:1081)
at org.openide.WizardDescriptor.access$1500(WizardDescriptor.java:139)
at org.openide.WizardDescriptor$Listener$1.run(WizardDescriptor.java:2118)
at org.openide.WizardDescriptor.lazyValidate(WizardDescriptor.java:1516)
at org.openide.WizardDescriptor.access$1600(WizardDescriptor.java:139)
at org.openide.WizardDescriptor$Listener.actionPerformed(WizardDescriptor.java:2137)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.openide.util.WeakListenerImpl$ProxyListener.invoke(WeakListenerImpl.java:457)
at $Proxy33.actionPerformed(Unknown Source)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2028)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2351)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:236)
at java.awt.Component.processMouseEvent(Component.java:6352)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3267)
at java.awt.Component.processEvent(Component.java:6117)
at java.awt.Container.processEvent(Container.java:2085)
at java.awt.Component.dispatchEventImpl(Component.java:4714)
at java.awt.Container.dispatchEventImpl(Container.java:2143)
at java.awt.Component.dispatchEvent(Component.java:4544)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4621)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4282)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4212)
at java.awt.Container.dispatchEventImpl(Container.java:2129)
at java.awt.Window.dispatchEventImpl(Window.java:2478)
at java.awt.Component.dispatchEvent(Component.java:4544)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:635)
at org.netbeans.core.TimableEventQueue.dispatchEvent(TimableEventQueue.java:158)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:296)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:211)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:205)
at java.awt.Dialog$1.run(Dialog.java:1046)
at java.awt.Dialog$3.run(Dialog.java:1098)
at java.security.AccessController.doPrivileged(Native Method)
at java.awt.Dialog.show(Dialog.java:1096)
at org.netbeans.core.windows.services.NbPresenter.superShow(NbPresenter.java:1074)
at org.netbeans.core.windows.services.NbPresenter.doShow(NbPresenter.java:1109)
at org.netbeans.core.windows.services.NbPresenter.run(NbPresenter.java:1096)
at org.netbeans.core.windows.services.NbPresenter.run(NbPresenter.java:126)
at org.openide.util.Mutex.doEventAccess(Mutex.java:1363)
at org.openide.util.Mutex.readAccess(Mutex.java:273)
at org.netbeans.core.windows.services.NbPresenter.show(NbPresenter.java:1081)
at java.awt.Component.show(Component.java:1563)
at java.awt.Component.setVisible(Component.java:1515)
at java.awt.Window.setVisible(Window.java:842)
at java.awt.Dialog.setVisible(Dialog.java:986)
at com.jme3.gde.modelimporter.ImportModel.actionPerformed(ImportModel.java:94)
at org.openide.awt.AlwaysEnabledAction$1.run(AlwaysEnabledAction.java:197)
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:200)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2028)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2351)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:236)
at java.awt.AWTEventMulticaster.mouseReleased(AWTEventMulticaster.java:273)
at java.awt.AWTEventMulticaster.mouseReleased(AWTEventMulticaster.java:272)
at java.awt.Component.processMouseEvent(Component.java:6352)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3267)
at java.awt.Component.processEvent(Component.java:6117)
at java.awt.Container.processEvent(Container.java:2085)
at java.awt.Component.dispatchEventImpl(Component.java:4714)
at java.awt.Container.dispatchEventImpl(Container.java:2143)
at java.awt.Component.dispatchEvent(Component.java:4544)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4621)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4282)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4212)
at java.awt.Container.dispatchEventImpl(Container.java:2129)
at java.awt.Window.dispatchEventImpl(Window.java:2478)
at java.awt.Component.dispatchEvent(Component.java:4544)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:635)
at org.netbeans.core.TimableEventQueue.dispatchEvent(TimableEventQueue.java:158)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:296)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:211)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:201)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:196)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:188)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)

As mentioned in the title, the errors I am getting show up when I try to import/convert a Google Sketchup model saved (exported) as a COLLADA .dae into a .j3o using the newly integrated BlenderModelLoader plugin. I have successfully converted some models (Example: a simple vine hedge, a spider, etc.). The errors seem to occur when I try to import/convert more complicated models (Example: wooden arch, space station, etc.), but I am not sure that the fact that these models are more “complicated” is the reason they are not converting. I’ve tried manipulating the models in sketchup before exporting them as COLLLADAs (i.e. scaling them smaller, “grouping” the entities, etc.) However, this seemed to make no difference. I also made sure my textures were in the correct location when importing the model. I even tried some manipulation in Blender itself, then exporting the model again as a .dae, and then trying to import it using the JME3 SDK. However, nothing seemed to have worked. In regards to the errors I am getting, can anyone point me in the right direction as to what to try to get these models imported and converted correctly into the JME3 SDK? Any help would be much appreciated

When hitting the “Convert to j3o Binary” icon on a .dae file already in my assets/Models folder:

com.jme3.scene.plugins.blender.exceptions.BlenderFileException: No data stored for address: 4471608728. Rarely blender makes mistakes when storing data. Try resaving the model after making minor changes. This usually helps.
at com.jme3.scene.plugins.blender.file.Pointer.fetchData(Pointer.java:94)
at com.jme3.scene.plugins.blender.meshes.MeshHelper.readBMesh(MeshHelper.java:282)
at com.jme3.scene.plugins.blender.meshes.MeshHelper.toMesh(MeshHelper.java:118)
at com.jme3.scene.plugins.blender.objects.ObjectHelper.toObject(ObjectHelper.java:153)
at com.jme3.scene.plugins.blender.AbstractBlenderLoader.toObject(AbstractBlenderLoader.java:137)
at com.jme3.scene.plugins.blender.BlenderLoader.toObject(BlenderLoader.java:71)
at com.jme3.scene.plugins.blender.BlenderModelLoader.load(BlenderModelLoader.java:66)
at com.jme3.scene.plugins.blender.BlenderModelLoader.load(BlenderModelLoader.java:52)
at com.jme3.asset.DesktopAssetManager.loadAsset(DesktopAssetManager.java:282)
at com.jme3.asset.DesktopAssetManager.loadModel(DesktopAssetManager.java:368)
at com.jme3.asset.DesktopAssetManager.loadModel(DesktopAssetManager.java:372)
at com.jme3.gde.blender.filetypes.AbstractBlenderImportDataObject.loadAsset(AbstractBlenderImportDataObject.java:71)
at com.jme3.gde.core.assets.actions.ConvertModel$1.run(ConvertModel.java:60)
at java.lang.Thread.run(Thread.java:680)

When trying to import the model using the “Import Model” icon:

com.jme3.scene.plugins.blender.exceptions.BlenderFileException: No data stored for address: 4465329592. Rarely blender makes mistakes when storing data. Try resaving the model after making minor changes. This usually helps.
at com.jme3.scene.plugins.blender.file.Pointer.fetchData(Pointer.java:94)
at com.jme3.scene.plugins.blender.meshes.MeshHelper.readBMesh(MeshHelper.java:282)
at com.jme3.scene.plugins.blender.meshes.MeshHelper.toMesh(MeshHelper.java:118)
at com.jme3.scene.plugins.blender.objects.ObjectHelper.toObject(ObjectHelper.java:153)
at com.jme3.scene.plugins.blender.AbstractBlenderLoader.toObject(AbstractBlenderLoader.java:137)
at com.jme3.scene.plugins.blender.BlenderLoader.toObject(BlenderLoader.java:71)
at com.jme3.scene.plugins.blender.BlenderModelLoader.load(BlenderModelLoader.java:66)
at com.jme3.scene.plugins.blender.BlenderModelLoader.load(BlenderModelLoader.java:52)
at com.jme3.asset.DesktopAssetManager.loadAsset(DesktopAssetManager.java:282)
at com.jme3.asset.DesktopAssetManager.loadModel(DesktopAssetManager.java:368)
at com.jme3.asset.DesktopAssetManager.loadModel(DesktopAssetManager.java:372)
at com.jme3.gde.blender.filetypes.AbstractBlenderImportDataObject.loadAsset(AbstractBlenderImportDataObject.java:71)
at com.jme3.gde.blender.filetypes.AbstractBlenderImportDataObject.loadAsset(AbstractBlenderImportDataObject.java:29)
at com.jme3.gde.core.assets.AssetData.loadAsset(AssetData.java:105)
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:81)
at org.openide.WizardDescriptor.updateStateOpen(WizardDescriptor.java:893)
at org.openide.WizardDescriptor.updateState(WizardDescriptor.java:844)
at org.openide.WizardDescriptor.goToNextStep(WizardDescriptor.java:1081)
at org.openide.WizardDescriptor.access$1500(WizardDescriptor.java:139)
at org.openide.WizardDescriptor$Listener$1.run(WizardDescriptor.java:2118)
at org.openide.WizardDescriptor.lazyValidate(WizardDescriptor.java:1516)
at org.openide.WizardDescriptor.access$1600(WizardDescriptor.java:139)
at org.openide.WizardDescriptor$Listener.actionPerformed(WizardDescriptor.java:2137)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.openide.util.WeakListenerImpl$ProxyListener.invoke(WeakListenerImpl.java:457)
at $Proxy33.actionPerformed(Unknown Source)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2028)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2351)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:236)
at java.awt.Component.processMouseEvent(Component.java:6352)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3267)
at java.awt.Component.processEvent(Component.java:6117)
at java.awt.Container.processEvent(Container.java:2085)
at java.awt.Component.dispatchEventImpl(Component.java:4714)
at java.awt.Container.dispatchEventImpl(Container.java:2143)
at java.awt.Component.dispatchEvent(Component.java:4544)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4621)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4282)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4212)
at java.awt.Container.dispatchEventImpl(Container.java:2129)
at java.awt.Window.dispatchEventImpl(Window.java:2478)
at java.awt.Component.dispatchEvent(Component.java:4544)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:635)
at org.netbeans.core.TimableEventQueue.dispatchEvent(TimableEventQueue.java:158)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:296)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:211)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:205)
at java.awt.Dialog$1.run(Dialog.java:1046)
at java.awt.Dialog$3.run(Dialog.java:1098)
at java.security.AccessController.doPrivileged(Native Method)
at java.awt.Dialog.show(Dialog.java:1096)
at org.netbeans.core.windows.services.NbPresenter.superShow(NbPresenter.java:1074)
at org.netbeans.core.windows.services.NbPresenter.doShow(NbPresenter.java:1109)
at org.netbeans.core.windows.services.NbPresenter.run(NbPresenter.java:1096)
at org.netbeans.core.windows.services.NbPresenter.run(NbPresenter.java:126)
at org.openide.util.Mutex.doEventAccess(Mutex.java:1363)
at org.openide.util.Mutex.readAccess(Mutex.java:273)
at org.netbeans.core.windows.services.NbPresenter.show(NbPresenter.java:1081)
at java.awt.Component.show(Component.java:1563)
at java.awt.Component.setVisible(Component.java:1515)
at java.awt.Window.setVisible(Window.java:842)
at java.awt.Dialog.setVisible(Dialog.java:986)
at com.jme3.gde.modelimporter.ImportModel.actionPerformed(ImportModel.java:94)
at org.openide.awt.AlwaysEnabledAction$1.run(AlwaysEnabledAction.java:197)
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:200)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2028)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2351)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:236)
at java.awt.AWTEventMulticaster.mouseReleased(AWTEventMulticaster.java:273)
at java.awt.AWTEventMulticaster.mouseReleased(AWTEventMulticaster.java:272)
at java.awt.Component.processMouseEvent(Component.java:6352)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3267)
at java.awt.Component.processEvent(Component.java:6117)
at java.awt.Container.processEvent(Container.java:2085)
at java.awt.Component.dispatchEventImpl(Component.java:4714)
at java.awt.Container.dispatchEventImpl(Container.java:2143)
at java.awt.Component.dispatchEvent(Component.java:4544)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4621)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4282)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4212)
at java.awt.Container.dispatchEventImpl(Container.java:2129)
at java.awt.Window.dispatchEventImpl(Window.java:2478)
at java.awt.Component.dispatchEvent(Component.java:4544)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:635)
at org.netbeans.core.TimableEventQueue.dispatchEvent(TimableEventQueue.java:158)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:296)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:211)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:201)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:196)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:188)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)

As mentioned in the title, the errors I am getting show up when I try to import/convert a Google Sketchup model saved (exported) as a COLLADA .dae into a .j3o using the newly integrated BlenderModelLoader plugin. I have successfully converted some models (Example: a simple vine hedge, a spider, etc.). The errors seem to occur when I try to import/convert more complicated models (Example: wooden arch, space station, etc.), but I am not sure that the fact that these models are more “complicated” is the reason they are not converting. I’ve tried manipulating the models in sketchup before exporting them as COLLLADAs (i.e. scaling them smaller, “grouping” the entities, etc.) However, this seemed to make no difference. I also made sure my textures were in the correct location when importing the model. I even tried some manipulation in Blender itself, then exporting the model again as a .dae, and then trying to import it using the JME3 SDK. However, nothing seemed to have worked. In regards to the errors I am getting, can anyone point me in the right direction as to what to try to get these models imported and converted correctly into the JME3 SDK? Any help would be much appreciated

To me this rather looks like the DAE model needs some cleanup steps in blender after the import, somebody else reported this kind of issue too. @Kaelthas, maybe you can check if your code isn’t faulty in that corner. But I’d also ask you @socialmonkey to look into things you could do in blender after importing the model manually to get the blend file to import successfully. If we could simply add some python code to generally clean up DAE files (or even general files) that would be not only a solution to your problem I guess :slight_smile:

PS: Please refrain from double-posting.

This error occured to me several times too.

I am 99,(9)% sure that this is a blender bug.
When importer loads the data from blender file, the first thing it does is reading all available data blocks. Every piece of data is stored in a block that has its header and the proper data. The header has its unique identifier called in blender Old Memory Address (in short: OMA). OMA’s are referenced by pointers in blender file in data structures. If I have a pointer that has certain OMA value I can fetch it from the loaded data blocks.
This error happens when a pointer points to a data block that cannot be found.

At first I thought it might be an importer issue but after some time I opened a blend file in hex editor and the OMA that caused problems was not found in the file except in the place where the pointer was stored.

I am afraid I can do nothing about it from the importer side. But I think I will post this problem to blender developers because it appears more often now. I am not sure how blender solves it anyway but somehow it does.

The only solution that worked for me was changing the geometry on the scene. Create a cube and then delete it and save the file.

Hope it will help. I will let you know if I get response from the blender guys :wink:

Cheers

Any way we can do some fixing by invoking some python code after the importer script @Kaelthas?

Thank you for the quick replies, guys!

Normen, I’ll stay away from the double post in the future.

Kaelthas, please keep us updated with any information you receive from the blender guys.

Furthermore, is there anything we can do to help the conversation with blender developers?

best,

The safest way for a quick solution is finding a workaround so the issue can be identified properly :wink: Then we can implement the workaround and the blender guys can eventually fix it.

1 Like

Ok, so I’ve had some luck importing the models I previously had problems importing. For some reason, the following steps seemed to fix the issue:

1. import the .dae into Blender
2. save the model as a .blend
3. reopen that saved .blend
4. save it again as a .blend
5. using the “Import Model” icon in the JME3 SDK, import the .blend

This worked for every model I’ve tried importing so far, even the more complex models.

If anyone is having the same problem, try this. Let me know if it works.

1 Like

@socialmonkey: if you could find out how to apply that workaround from blenders python scripting system that’d be cool

Please see attached pastebin: http://pastebin.com/i0bFgwJj

You’ll have to forgive my python skills, I haven’t had time to finish the python track on CodeAcademy.com yet :lol:

If @socialmonkey is right (and I like to think he is, I work right next to him), shouldn’t the addition be as simple as the attached pastebin? If I haven’t missed something stupid, it should just be a call to

bpy.ops.wm.open_mainfile() and then an additional call to bpy.ops.wm.save_mainfile()

Again, I could be off base, neither blender nor python are my forte, but the documentation seems to make sense.

hope this helps,

EDIT: Corrected the pastebin URL.

1 Like

Heh, okay, I shall try and just add that, did you try if it works when you open the scene and call the script once after saving? I guess that should be the same… What a silly issue ^^

Edit: Note that atm you have to delete your blender scripts folder for the script to be updated in the sdk/blender install, see here for the settings folder location:

Edit 2: Added to svn: Google Code Archive - Long-term storage for Google Code Project Hosting.

@normen,

I daresay I goofed and typed the wrong parameter name inside open_save_file() If we change the parameter name on line 43 from open_path to save_path the script should work as expected. That said, I encourage others to double check this work as I may be prone to errors :slight_smile:

To answer your question simply: Nope, I haven’t tried it, but I’m not really sure where to begin. Is it as easy as unzipping the com-jme3-gde-blender.jar, changing the file and then rezipping it back up?

best regards,

You can either just change the py script in the settings folder or update to nightly and delete the current script.
The content of this post is meant to be read as a straight information or question without an implicit dismissive stance or interest in having the other party feel offended unless theres emotes that hint otherwise or theres an increased use of exclamation marks and all-capital words.

I was able to find the import_dae.py script, edit it, save it, and get the script working in the SDK.

Here is the file path where I found the script on my machine (Mac):

/Users/username/Library/Application Support/jmonkeyplatform/3.0RC2/blender/jmescripts

I added exactly what you added to the script in svn, @normen:
i.e. I added the function…

# Due to an issue in the DAE importer, the file has to be resaved after an import
def open_save_file(save_path):
bpy.ops.wm.open_mainfile(filepath=save_path)
bpy.ops.wm.save_as_mainfile(filepath=save_path)

and called it in main():
open_save_file(args.save_path)

I saved the script, reopened the SDK, tried importing original .dae files without having to touch Blender and it worked wondrously! :smiley:

1 Like

Awesome news, I added it to svn like this as well :slight_smile: OSS ftw, we can now import even DAE files that blender finds funny in batches or via the model import tool. Thanks @all
The content of this post is meant to be read as a straight information or question without an implicit dismissive stance or interest in having the other party feel offended unless theres emotes that hint otherwise or theres an increased use of exclamation marks and all-capital words.

So, like I said previously, I have had much success importing .dae files into jme3. However, I have been having some texture problems when adding one of these models to the scene.

For Example, here is a screen shot of a “Space Station” model I succesfully imported.

It is supposed to look like this (Sketchup)

Here is another screenshot from the inside. As you can see there are more issues than just the textures not being there.

The inside is supposed to look like this (Sketchup)

Does anyone know what is happening here and/or have any suggestions about fixing the issue?

Edit:
I’ve tried putting the .dae in the same directory as all of the textures (in my Assets/Models folder) and then clicking the “convert to .j3o” icon. This successfully converted the .dae, but the texture problem still hung around. I also tried doing the same thing with a .blend (instead of the .dae). However, I couldn’t event succesfully convert the .blend.

I see textures, I don’t know how its supposed to look :wink: At any instance, theres many ways to apply textures in editors but only UV mapped textures will work properly. Any other kind of applying might halfway work but in the end it will not work for many other things. Try “baking” a texture atlas in the 3d editor/blender to make sure you have a proper model with one texture, else its wasted GPU cycles for such simple models.
The content of this post is meant to be read as a straight information or question without an implicit dismissive stance or interest in having the other party feel offended unless theres emotes that hint otherwise or theres an increased use of exclamation marks and all-capital words.

I successfully imported the textured model (where all the textures are visible on the model in world). It was easier than we were making it out to be. The problem (at least for me) was the location of the model file in relation to its textures (where you save the .blend). However, this did not fix the “flickering.” In my particular example, I imported a space station with 10 or so textures. When I walk around and through the space station, the textures “flicker.” I have a few screenshots to show you what I mean:

I have a feeling it has to do with the lighting and/or the material. I’ve tried adding multiple different materials to my .j3o space station model based on information from various tutorials. When I add materials, it seems to fix the “flickering” problem, but then the textures don’t show up. Any suggestions or information on this problem would be much appreciated. :amused:

The first thing I would do is check that the normals and uv mapping are correct…