Posted September 16, 201312 yr I made a model in Cinema 4D for my mod, UV mapped it and exported it to OBJ format. I registered it in my model class, and when I start the game, it crashes with the following error: net.minecraftforge.client.model.ModelFormatException: Error parsing entry ('v -500 -6.319035 6.319', line 5) in file '/assets/majyyka/models/wand.obj' - Incorrect format at net.minecraftforge.client.model.obj.WavefrontObject.parseVertex(WavefrontObject.java:314) at net.minecraftforge.client.model.obj.WavefrontObject.loadObjModel(WavefrontObject.java:91) at net.minecraftforge.client.model.obj.WavefrontObject.<init>(WavefrontObject.java:55) at net.minecraftforge.client.model.obj.ObjModelLoader.loadInstance(ObjModelLoader.java:28) at net.minecraftforge.client.model.AdvancedModelLoader.loadModel(AdvancedModelLoader.java:70) at majyyka.client.ModelWand.<init>(ModelWand.java:23) at majyyka.client.ItemWandRenderer.<init>(ItemWandRenderer.java:30) at majyyka.core.proxy.ClientProxy.initRendering(ClientProxy.scala:18) at majyyka.Majyyka$.init(Majyyka.scala:76) at majyyka.Majyyka.init(Majyyka.scala) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at cpw.mods.fml.common.FMLModContainer.handleModStateEvent(FMLModContainer.java:540) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at com.google.common.eventbus.EventHandler.handleEvent(EventHandler.java:74) at com.google.common.eventbus.SynchronizedEventHandler.handleEvent(SynchronizedEventHandler.java:45) at com.google.common.eventbus.EventBus.dispatch(EventBus.java:313) at com.google.common.eventbus.EventBus.dispatchQueuedEvents(EventBus.java:296) at com.google.common.eventbus.EventBus.post(EventBus.java:267) at cpw.mods.fml.common.LoadController.sendEventToModContainer(LoadController.java:194) at cpw.mods.fml.common.LoadController.propogateStateMessage(LoadController.java:174) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at com.google.common.eventbus.EventHandler.handleEvent(EventHandler.java:74) at com.google.common.eventbus.SynchronizedEventHandler.handleEvent(SynchronizedEventHandler.java:45) at com.google.common.eventbus.EventBus.dispatch(EventBus.java:313) at com.google.common.eventbus.EventBus.dispatchQueuedEvents(EventBus.java:296) at com.google.common.eventbus.EventBus.post(EventBus.java:267) at cpw.mods.fml.common.LoadController.distributeStateMessage(LoadController.java:105) at cpw.mods.fml.common.Loader.initializeMods(Loader.java:696) at cpw.mods.fml.client.FMLClientHandler.finishMinecraftLoading(FMLClientHandler.java:231) at net.minecraft.client.Minecraft.startGame(Minecraft.java:507) at net.minecraft.client.Minecraft.run(Minecraft.java:806) at net.minecraft.client.main.Main.main(Main.java:93) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at net.minecraft.launchwrapper.Launch.launch(Launch.java:57) at net.minecraft.launchwrapper.Launch.main(Launch.java:18) I can import and view the model in 3DS Max, so I don't know what is wrong with my OBJ file and/or Forge. https://github.com/myoKun345/Majyyka/blob/master/resources/assets/majyyka/models/wand.obj https://github.com/myoKun345/Majyyka/blob/master/majyyka_common/majyyka/client/ModelWand.java https://github.com/myoKun345/Majyyka/blob/master/majyyka_common/majyyka/client/ItemWandRenderer.java
September 16, 201312 yr Did you use advancedobjectimporter ? If so you should look at the class for the object importer, and figure out if you used bas syntax. I haven't personally used it but I know a bit about it. (I'm a bad artist, I use techne )
September 16, 201312 yr Also, some open source mods use that class so look at the source of mods like EE3 and Resonant Induction. Maybe also compare your model to theirs.
September 16, 201312 yr Author I used AdvancedModelLoader (I was sort of half-following Minalien's tutorial for OBJ models; that tutorial is for blocks and this is an item so it is entirely possible I just screwed something up T-T) and I will look at that just in case. I also looked at Pahimar's code for some reference.
September 16, 201312 yr Author Wow this model loader code is barely decipherable to me... Looking at EE3's obj files vs. mine I'm only seeing that his don't have the automatically exported material lines like mine does. I don't think I need it so I'll try deleting it. EDIT: Yeah, no difference.
September 16, 201312 yr Author Exporting the obj from 3ds Max results in the crash still happening... but later in the file. net.minecraftforge.client.model.ModelFormatException: Error parsing entry ('f 11/8/11 6/7/12 1/6/12', line 130) in file '/assets/majyyka/models/wand.obj' - Invalid number of points for face (expected 4, found 3) at net.minecraftforge.client.model.obj.WavefrontObject.parseFace(WavefrontObject.java:396) at net.minecraftforge.client.model.obj.WavefrontObject.loadObjModel(WavefrontObject.java:121) at net.minecraftforge.client.model.obj.WavefrontObject.<init>(WavefrontObject.java:55) at net.minecraftforge.client.model.obj.ObjModelLoader.loadInstance(ObjModelLoader.java:28) at net.minecraftforge.client.model.AdvancedModelLoader.loadModel(AdvancedModelLoader.java:70) at majyyka.client.ModelWand.<init>(ModelWand.java:23) at majyyka.client.ItemWandRenderer.<init>(ItemWandRenderer.java:30) at majyyka.core.proxy.ClientProxy.initRendering(ClientProxy.scala:18) at majyyka.Majyyka$.init(Majyyka.scala:76) at majyyka.Majyyka.init(Majyyka.scala) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at cpw.mods.fml.common.FMLModContainer.handleModStateEvent(FMLModContainer.java:540) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at com.google.common.eventbus.EventHandler.handleEvent(EventHandler.java:74) at com.google.common.eventbus.SynchronizedEventHandler.handleEvent(SynchronizedEventHandler.java:45) at com.google.common.eventbus.EventBus.dispatch(EventBus.java:313) at com.google.common.eventbus.EventBus.dispatchQueuedEvents(EventBus.java:296) at com.google.common.eventbus.EventBus.post(EventBus.java:267) at cpw.mods.fml.common.LoadController.sendEventToModContainer(LoadController.java:194) at cpw.mods.fml.common.LoadController.propogateStateMessage(LoadController.java:174) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at com.google.common.eventbus.EventHandler.handleEvent(EventHandler.java:74) at com.google.common.eventbus.SynchronizedEventHandler.handleEvent(SynchronizedEventHandler.java:45) at com.google.common.eventbus.EventBus.dispatch(EventBus.java:313) at com.google.common.eventbus.EventBus.dispatchQueuedEvents(EventBus.java:296) at com.google.common.eventbus.EventBus.post(EventBus.java:267) at cpw.mods.fml.common.LoadController.distributeStateMessage(LoadController.java:105) at cpw.mods.fml.common.Loader.initializeMods(Loader.java:696) at cpw.mods.fml.client.FMLClientHandler.finishMinecraftLoading(FMLClientHandler.java:231) at net.minecraft.client.Minecraft.startGame(Minecraft.java:507) at net.minecraft.client.Minecraft.run(Minecraft.java:806) at net.minecraft.client.main.Main.main(Main.java:93) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at net.minecraft.launchwrapper.Launch.launch(Launch.java:57) at net.minecraft.launchwrapper.Launch.main(Launch.java:18)
September 16, 201312 yr Try deleting the offending line (line 5) in your obj. It might be just Forge being picky.
September 16, 201312 yr Author It's not line 5 anymore - see above lol I'm trying to go through and find which ones are breaking it and comment those out. Very tedious and I expect it won't turn out to look good...
September 16, 201312 yr Author So, I commented out every face that it crashed on and ended up with this: https://github.com/myoKun345/Majyyka/blob/master/resources/assets/majyyka/models/wand.obj In-game: http://imgur.com/a/tXwgn
September 16, 201312 yr Author I've noticed that all of the lines that it errors on are triangles. And I have no clue what to do now. EDIT: They may not actually be triangles, but the lines have 3 "x/x/x"s instead of 4 like the others.
September 16, 201312 yr Author Ok, problem fixed, Forge just can't read triangles. Re-exported it from Cinema 4D into FBX (which it has better support for) which I exported to OBJ in 3ds Max.
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.