Obj модель

372
0
Есть obj модель, рабочая. Вроде сделал все правильно, как в коде от тимаха, но не работает и все.. выдает краш мол моделька гавно. 

Так регал в init
Код:
GameRegistry.registerItem(cannedBeans, "CannedBeans");

Вот ClientProxy
Код:
public void init()
{
        super.init();
        registerRenderer();

        MinecraftForgeClient.registerItemRenderer(HarshWorld.cannedBeans, new CannedBeansRenderer());
}

Вот рендер:
Код:
public class CannedBeansRenderer implements IItemRenderer 
{
    public static final IModelCustom model = AdvancedModelLoader.loadModel(new ResourceLocation(ModItemObj.MODID, "obj/can.obj"));
    public static final ResourceLocation texture = new ResourceLocation(ModItemObj.MODID, "textures/foods/canned/cannedbeans.png");

    @Override
    public boolean handleRenderType(ItemStack is, ItemRenderType type) 
    {
        if (type == ItemRenderType.INVENTORY) return false;
        return true;
    }

    @Override
    public boolean shouldUseRenderHelper(ItemRenderType type, ItemStack is, ItemRendererHelper helper) 
    {
        if (type == ItemRenderType.INVENTORY) return false;
        return true;
    }

    @Override
    public void renderItem(ItemRenderType type, ItemStack is, Object... data) 
    {
        GL11.glPushMatrix();
        GL11.glTranslatef(0.5F, 0.0F, 0.5F);
        Minecraft.getMinecraft().renderEngine.bindTexture(texture);
        model.renderAll();
        GL11.glPopMatrix();
    }
}

Помогите...
 
RaDiC написал(а):
краш мол моделька гавно.
И где краш? Возможно модель нормальная, но для загрузки в Minecraft, что-то не удовлетворяет obj модель полностью.
 
timaxa007 написал(а):
RaDiC написал(а):
краш мол моделька гавно.
И где краш? Возможно модель нормальная, но для загрузки в Minecraft, что-то не удовлетворяет obj модель полностью.

Если чисто твой код запускать то все работает, с моим модом нет
---- Minecraft Crash Report ----
// Ouch. That hurt :(

Time: 23.06.15 15:45
Description: There was a severe problem during mod loading that has caused the game to fail

cpw.mods.fml.common.LoaderException: java.lang.ExceptionInInitializerError
at cpw.mods.fml.common.LoadController.transition(LoadController.java:163)
at cpw.mods.fml.common.Loader.initializeMods(Loader.java:739)
at cpw.mods.fml.client.FMLClientHandler.finishMinecraftLoading(FMLClientHandler.java:311)
at net.minecraft.client.Minecraft.startGame(Minecraft.java:597)
at net.minecraft.client.Minecraft.run(Minecraft.java:942)
at net.minecraft.client.main.Main.main(Main.java:164)
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:135)
at net.minecraft.launchwrapper.Launch.main(Launch.java:28)
at net.minecraftforge.gradle.GradleStartCommon.launch(Unknown Source)
at GradleStart.main(Unknown Source)
Caused by: java.lang.ExceptionInInitializerError
at com.radic.harshworld.client.ClientProxy.init(ClientProxy.java:27)
at com.radic.harshworld.HarshWorld.Init(HarshWorld.java:74)
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:532)
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.EventSubscriber.handleEvent(EventSubscriber.java:74)
at com.google.common.eventbus.SynchronizedEventSubscriber.handleEvent(SynchronizedEventSubscriber.java:47)
at com.google.common.eventbus.EventBus.dispatch(EventBus.java:322)
at com.google.common.eventbus.EventBus.dispatchQueuedEvents(EventBus.java:304)
at com.google.common.eventbus.EventBus.post(EventBus.java:275)
at cpw.mods.fml.common.LoadController.sendEventToModContainer(LoadController.java:212)
at cpw.mods.fml.common.LoadController.propogateStateMessage(LoadController.java:190)
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.EventSubscriber.handleEvent(EventSubscriber.java:74)
at com.google.common.eventbus.SynchronizedEventSubscriber.handleEvent(SynchronizedEventSubscriber.java:47)
at com.google.common.eventbus.EventBus.dispatch(EventBus.java:322)
at com.google.common.eventbus.EventBus.dispatchQueuedEvents(EventBus.java:304)
at com.google.common.eventbus.EventBus.post(EventBus.java:275)
at cpw.mods.fml.common.LoadController.distributeStateMessage(LoadController.java:119)
at cpw.mods.fml.common.Loader.initializeMods(Loader.java:737)
... 12 more
Caused by: net.minecraftforge.client.model.ModelFormatException: IO Exception reading model format
at net.minecraftforge.client.model.obj.WavefrontObject.<init>(WavefrontObject.java:60)
at net.minecraftforge.client.model.obj.ObjModelLoader.loadInstance(ObjModelLoader.java:27)
at net.minecraftforge.client.model.AdvancedModelLoader.loadModel(AdvancedModelLoader.java:65)
at com.radic.harshworld.foods.renderer.CannedBeansRenderer.<clinit>(CannedBeansRenderer.java:19)
... 41 more
Caused by: java.io.FileNotFoundException: HarshWorld:eek:bj/can.obj
at net.minecraft.client.resources.SimpleReloadableResourceManager.getResource(SimpleReloadableResourceManager.java:71)
at net.minecraftforge.client.model.obj.WavefrontObject.<init>(WavefrontObject.java:55)
... 44 more


A detailed walkthrough of the error, its code path and all known details is as follows:
---------------------------------------------------------------------------------------

-- System Details --
Details:
Minecraft Version: 1.7.10
Operating System: Windows 8.1 (amd64) version 6.3
Java Version: 1.7.0_79, Oracle Corporation
Java VM Version: Java HotSpot(TM) 64-Bit Server VM (mixed mode), Oracle Corporation
Memory: 852606000 bytes (813 MB) / 1056309248 bytes (1007 MB) up to 1056309248 bytes (1007 MB)
JVM Flags: 3 total; -Xincgc -Xmx1024M -Xms1024M
AABB Pool Size: 0 (0 bytes; 0 MB) allocated, 0 (0 bytes; 0 MB) used
IntCache: cache: 0, tcache: 0, allocated: 0, tallocated: 0
FML: MCP v9.05 FML v7.10.99.99 Minecraft Forge 10.13.4.1448 4 mods loaded, 4 mods active
States: 'U' = Unloaded 'L' = Loaded 'C' = Constructed 'H' = Pre-initialized 'I' = Initialized 'J' = Post-initialized 'A' = Available 'D' = Disabled 'E' = Errored
UCHI mcp{9.05} [Minecraft Coder Pack] (minecraft.jar) 
UCHI FML{7.10.99.99} [Forge Mod Loader] (forgeSrc-1.7.10-10.13.4.1448-1.7.10.jar) 
UCHI Forge{10.13.4.1448} [Minecraft Forge] (forgeSrc-1.7.10-10.13.4.1448-1.7.10.jar) 
UCHE HarshWorld{0.0.0.0.0} [Harsh World] (bin) 
GL info: ' Vendor: 'ATI Technologies Inc.' Version: '4.5.13394 Compatibility Profile Context 15.200.1023.5' Renderer: 'AMD Radeon HD 7700 Series'
 
Код:
Caused by: java.io.FileNotFoundException: HarshWorld:obj/can.obj
Не удалость найти файл "HarshWorld:eek:bj/can.obj".
 
Как знаешь.
Возможно он ругается на заглавные буквы в "ModItemObj.MODID" (не раз писалось, что MODID желательно писать строчными буквами).
 
timaxa007 написал(а):
Как знаешь.
Возможно он ругается на заглавные буквы в "ModItemObj.MODID" (не раз писалось, что MODID желательно писать строчными буквами).

Поменял, тоже самое.

Указал так и заработало: 
Код:
public static final IModelCustom model = AdvancedModelLoader.loadModel(new ResourceLocation("harshworld", "obj/can.obj"));
[merge_posts_bbcode]Добавлено: 23.06.2015 16:46:09[/merge_posts_bbcode]

С текстурой для него та же ошибка, поменял на: 
Код:
public static final ResourceLocation texture = new ResourceLocation("harshworld", "textures/foods/canned/cannedbeans.png");

[merge_posts_bbcode]Добавлено: 23.06.2015 16:50:08[/merge_posts_bbcode]

Хм... с этим разорался. Теперь вопрос как рисовать текстуру? Ведь в программе для моделирования материалы, как ему тут нарисовать текстуру, какой формат и т.д?
 
Изменяешь UVW в программе, которой работаешь.
 
Blender(другими не пользуюсь):
Cначала делаешь развертку.
После экспортируешь UV слой.
Рисуешь в любом редакторе поддерживающем альфа канал.
Complete!|
Можно еще в самой программе рисовать, но это труднее.
 
Назад
Сверху