Jump to content

Recommended Posts

Posted

Hey, I have encountered another Problem whilst trying to render an custom OBJ Model as Item.
The console once again tells me no Errors, but my Item wont Show up in the Game.

Blockstate File (this should be right, as I got missing Location Errors until I added this):

{
    "forge_marker": 1,
    "defaults":	{
        "textures":{},
        "model": "zeldadungeons:small_key.obj"
    },
    "display":{}
}

I wont include the obj model file as it is 6000 lines Long.

This is the .mtl file, referencing my texture:

# Blender MTL File: 'None'
# Material Count: 1

newmtl Material.001
Ns 94.117647
Ka 1.000000 1.000000 1.000000
Kd 0.125947 0.125947 0.125947
Ks 0.022227 0.022227 0.022227
Ke 0.000000 0.000000 0.000000
Ni 1.000000
d 1.000000
illum 2
map_Kd zeldadungeons:items/small_key

 

Posted

Have you told Minecraft that you need an OBJ model?

OBjLoader::loadModel

Apparently I'm a complete and utter jerk and come to this forum just like to make fun of people, be confrontational, and make your personal life miserable.  If you think this is the case, JUST REPORT ME.  Otherwise you're just going to get reported when you reply to my posts and point it out, because odds are, I was trying to be nice.

 

Exception: If you do not understand Java, I WILL NOT HELP YOU and your thread will get locked.

 

DO NOT PM ME WITH PROBLEMS. No help will be given.

Posted (edited)
  On 12/2/2017 at 6:19 PM, Draco18s said:

Have you told Minecraft that you need an OBJ model?

OBjLoader::loadModel

Expand  

No, I haven't. In fact, I do not even know where I should call it? Do I Need to do it in the class that Registers my models?

package net.zeldadungeons.init;

import net.zeldadungeons.ZeldaDungeons;
import net.zeldadungeons.init.blocks.BlockPressureSwitch;
import net.zeldadungeons.util.MeshDefinitionFix;
import net.minecraft.block.Block;
import net.minecraft.block.state.IBlockState;
import net.minecraft.client.renderer.ItemMeshDefinition;
import net.minecraft.client.renderer.block.model.ModelBakery;
import net.minecraft.client.renderer.block.model.ModelResourceLocation;
import net.minecraft.init.Items;
import net.minecraft.item.Item;
import net.minecraft.util.ResourceLocation;
import net.minecraftforge.client.event.ModelRegistryEvent;
import net.minecraftforge.client.model.ModelLoader;
import net.minecraftforge.client.model.obj.OBJLoader;
import net.minecraftforge.fml.common.Mod;
import net.minecraftforge.fml.common.eventhandler.SubscribeEvent;
import net.minecraftforge.fml.relauncher.Side;

@Mod.EventBusSubscriber(value = Side.CLIENT, modid = ZeldaDungeons.MODID)
public class Modelizer {
	public static final Modelizer INSTANCE = new Modelizer();

	@SubscribeEvent
	public static void registerAll(final ModelRegistryEvent e) {
		INSTANCE.registerItemModels();
		INSTANCE.registerBlockModels();
	}

	private void registerItemModels() {
		registerItemModel(Itemizer.FAIRY_SLINGSHOT);
		registerItemModel(Itemizer.SMALL_KEY);

	}

	private void registerBlockModels() {
		registerBlockItemModel(Blockizer.PRESSURE_SWITCH.getDefaultState());
	}

	private void registerItemModel(Item item) {
		final ModelResourceLocation resource = new ModelResourceLocation(item.getRegistryName(), "inventory");
		ModelLoader.setCustomModelResourceLocation(item, 0, resource);
	}

	private void registerBlockItemModel(final IBlockState state) {
		final Block block = state.getBlock();
		final Item item = Item.getItemFromBlock(block);

		if (item != Items.AIR) {
			registerItemModel(item);
		}
	}
}

I already added the Domain of my Mod to the ObjLoader.

Edited by ArmamentHaki
Posted

I believe it is used instead of ModelLoader.setCustomModelResourceLocation.

Apparently I'm a complete and utter jerk and come to this forum just like to make fun of people, be confrontational, and make your personal life miserable.  If you think this is the case, JUST REPORT ME.  Otherwise you're just going to get reported when you reply to my posts and point it out, because odds are, I was trying to be nice.

 

Exception: If you do not understand Java, I WILL NOT HELP YOU and your thread will get locked.

 

DO NOT PM ME WITH PROBLEMS. No help will be given.

Posted

It crashes when I do so:

  Reveal hidden contents

This is what I changed:

package net.zeldadungeons.init;

import net.zeldadungeons.ZeldaDungeons;
import net.zeldadungeons.init.blocks.BlockPressureSwitch;
import net.zeldadungeons.util.MeshDefinitionFix;
import net.minecraft.block.Block;
import net.minecraft.block.state.IBlockState;
import net.minecraft.client.renderer.ItemMeshDefinition;
import net.minecraft.client.renderer.block.model.ModelBakery;
import net.minecraft.client.renderer.block.model.ModelResourceLocation;
import net.minecraft.init.Items;
import net.minecraft.item.Item;
import net.minecraft.util.ResourceLocation;
import net.minecraftforge.client.event.ModelRegistryEvent;
import net.minecraftforge.client.model.ModelLoader;
import net.minecraftforge.client.model.obj.OBJLoader;
import net.minecraftforge.fml.common.Mod;
import net.minecraftforge.fml.common.eventhandler.SubscribeEvent;
import net.minecraftforge.fml.relauncher.Side;

@Mod.EventBusSubscriber(value = Side.CLIENT, modid = ZeldaDungeons.MODID)
public class Modelizer {
	public static final Modelizer INSTANCE = new Modelizer();

	@SubscribeEvent
	public static void registerAll(final ModelRegistryEvent e) {
		INSTANCE.registerItemModels();
		INSTANCE.registerBlockModels();
	}

	private void registerItemModels() {
		registerItemModel(Itemizer.FAIRY_SLINGSHOT);
		registerItemObjModel(Itemizer.SMALL_KEY);

	}

	private void registerBlockModels() {
		registerBlockItemModel(Blockizer.PRESSURE_SWITCH.getDefaultState());
	}

	private void registerItemModel(Item item) {
		final ModelResourceLocation resource = new ModelResourceLocation(item.getRegistryName(), "inventory");
		ModelLoader.setCustomModelResourceLocation(item, 0, resource);
		
	}

	private void registerBlockItemModel(final IBlockState state) {
		final Block block = state.getBlock();
		final Item item = Item.getItemFromBlock(block);

		if (item != Items.AIR) {
			registerItemModel(item);
		}
	}
	
	private void registerItemObjModel(Item item) {
		final ModelResourceLocation resource = new ModelResourceLocation(item.getRegistryName(), "inventory");
		OBJLoader.INSTANCE.loadModel(resource);
	}
}

 

Posted

I haven't messed with using OBJ models myself, try searching the forums for OBjLoader

Apparently I'm a complete and utter jerk and come to this forum just like to make fun of people, be confrontational, and make your personal life miserable.  If you think this is the case, JUST REPORT ME.  Otherwise you're just going to get reported when you reply to my posts and point it out, because odds are, I was trying to be nice.

 

Exception: If you do not understand Java, I WILL NOT HELP YOU and your thread will get locked.

 

DO NOT PM ME WITH PROBLEMS. No help will be given.

Posted (edited)
  On 12/2/2017 at 6:19 PM, Draco18s said:

Have you told Minecraft that you need an OBJ model?

OBjLoader::loadModel

Expand  

That is used to manually load a model (Equivalent of ModelLoaderRegistry#getModel)

To have the ObjLoader scan your resources, one needs to call OBJLoader::addDomain(modid) during either the ModelRegistryEvent or preInit. The former is preferred.

Edited by Matryoshika

Also previously known as eAndPi.

"Pi, is there a station coming up where we can board your train of thought?" -Kronnn

Published Mods: Underworld

Handy links: Vic_'s Forge events Own WIP Tutorials.

Posted (edited)
  On 12/2/2017 at 10:04 PM, Matryoshika said:


To have the ObjLoader scan your resources, one needs to call OBJLoader::addDomain(modid)

Expand  

I already called it, in the Log I posted it says "added zeldadungeons as a domain".

 

Maybe it is a problem with the model itself?

Edited by ArmamentHaki
Posted

I'm not sure how you are not getting any issues. Minecraft needs the variants for this block, which by default are "normal" and in the case of corresponding itemblocks, "inventory".
 

This is how I usually write my blockstates for OBJ models. Though you'll likely won't need the "transform" block, and the "defaults": "model" should correspond to "forge:default-block"

Also previously known as eAndPi.

"Pi, is there a station coming up where we can board your train of thought?" -Kronnn

Published Mods: Underworld

Handy links: Vic_'s Forge events Own WIP Tutorials.

Posted

It doesn't work yet. Do I have to pay attention to something while exporting an obj file? Like, how big is it or how to properly unwrap the model? I would post a screenshot but it is simply invisible in my inventory... That means that forge somehow loads it but not the right way, doesn't it?

Posted (edited)

Perhaps.

What program do you use to create the OBJ models?

I know that in Blender, with default settings, a normal sized block corresponds to a cube at x 0.5 y -0.5 z 0.5 at scale 0.5. While I know that you are not using a block, this should help you narrow down issues with size and/or translation

 

The ObjLoader also only support faces with a maximum of 4 vertices. Be sure to have the checkbox for "triangulate faces" marked, though issues with that should be logged.

 

This could also be an issue with the texture. Are you applying the texture to the material, or to an actual UV-map? The second option is the one I use.

Try setting the render to "textured" at the bottom of the screen, to get a (bad) preview of the model with texture.

 

Also be sure that the Normals for this item are OK. If the model is rendered inside-out, you wouldn't be able to see it.

Edited by Matryoshika
  • Like 1

Also previously known as eAndPi.

"Pi, is there a station coming up where we can board your train of thought?" -Kronnn

Published Mods: Underworld

Handy links: Vic_'s Forge events Own WIP Tutorials.

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.

Guest
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Announcements



  • Recently Browsing

    • No registered users viewing this page.
  • Posts

    • Honestly just want to play with my brother but LAN won't work for us so we have to try this.. Anyone?
    • Got modded, shit ton custom pack. Tried making a world, and it kicked me out saying that. Singelplayer. https://pastesio.com/crash-3317
    • abro el juego pero al tocar un solo jugador me tira la de   [02:23:30] [Render thread/FATAL] [ne.mi.co.ForgeMod/]: Preparing crash report with UUID c3ff08d5-d285-458d-a3b5-fbba17743dff #@!@# Game crashed! Crash report saved to: #@!@# C:\juegos\Minecraft\instances\1.20.1 forge\.minecraft\crash-reports\crash-2025-05-02_02.23.30-client.txt Process exited with code -1 (0xffffffffffffffff). ¡Por favor, ten en cuenta que normalmente ni el código de salida ni su descripción son suficientes para diagnosticar problemas! Sube siempre el registro entero y no solo el código de salida.
    • So, First of I am new to modding so bare with me I am creating a 1.20.1 forge mod that needs Oculus/Embeddium as a dependancy because later on I need to add custom shaders in for lights and such. I am using ParchmentMC as I've heard its better because of namings of things but that doesn't seem to like it when I run it alongside Oculus (Its a very barebones script adding two blocks and an item, and tested it before I did this) The 4 errors I get when I run 'runClient' is Caused by: org.spongepowered.asm.mixin.transformer.throwables.MixinTransformerError: An unexpected critical error was encountered Caused by: org.spongepowered.asm.mixin.throwables.MixinApplyError: Mixin [mixins.oculus.json:texture.MixinAbstractTexture] from phase [DEFAULT] in config [mixins.oculus.json] FAILED during APPLY Caused by: org.spongepowered.asm.mixin.injection.throwables.InvalidInjectionException: Critical injection failure: @Inject annotation on iris$afterGenerateId could not find any targets matching 'Lnet/minecraft/client/renderer/texture/AbstractTexture;m_117963_()I' in net.minecraft.client.renderer.texture.AbstractTexture. Using refmap oculus-mixins-refmap.json [PREINJECT Applicator Phase -> mixins.oculus.json:texture.MixinAbstractTexture -> Prepare Injections ->  -> handler$zgm000$iris$afterGenerateId(Lorg/spongepowered/asm/mixin/injection/callback/CallbackInfoReturnable;)V -> Parse] And then a "Execution failed for task ':runClient'." error My dependancies are just these with latest forge for 1.20.1 implementation fg.deobf('curse.maven:oculus-581495:6020952') // Oculus for 1.20.1 - 1.8.0  implementation fg.deobf('curse.maven:embeddium-908741:5681725') // Embeddium for 1.20.1 - 0.3.31 I have tested these mods & forge in a different modpack alone and it works fine Any help is much appreciated!
    • Im trying to make a server for me and my friends. I have no mods on it, (yet) but i keep getting this on the terminal right before it closes out. it insist even open long enogth m=for me to log on .this is my most resent crash report thanks in advance.   ---- Minecraft Crash Report ---- // I blame Dinnerbone. Time: 2025-05-01 18:17:25 Description: Exception in server tick loop java.lang.IllegalStateException: Failed to initialize server     at TRANSFORMER/minecraft@1.21.5/net.minecraft.server.MinecraftServer.runServer(MinecraftServer.java:676) ~[server-1.21.5-20250325.162830-srg.jar%23141!/:?] {re:classloading,pl:accesstransformer:B}     at TRANSFORMER/minecraft@1.21.5/net.minecraft.server.MinecraftServer.lambda$spin$2(MinecraftServer.java:276) ~[server-1.21.5-20250325.162830-srg.jar%23141!/:?] {re:classloading,pl:accesstransformer:B}     at java.base/java.lang.Thread.run(Thread.java:1583) [?:?] {} A detailed walkthrough of the error, its code path and all known details is as follows: --------------------------------------------------------------------------------------- -- System Details -- Details:     Minecraft Version: 1.21.5     Minecraft Version ID: 1.21.5     Operating System: Linux (amd64) version 6.11.0-19-generic     Java Version: 21.0.6, Ubuntu     Java VM Version: OpenJDK 64-Bit Server VM (mixed mode, sharing), Ubuntu     Memory: 99161192 bytes (94 MiB) / 233832448 bytes (223 MiB) up to 1004535808 bytes (958 MiB)     CPUs: 2     Processor Vendor: GenuineIntel     Processor Name: Intel(R) Pentium(R) CPU B950 @ 2.10GHz     Identifier: Intel64 Family 6 Model 42 Stepping 7     Microarchitecture: Sandy Bridge (Client)     Frequency (GHz): 2.10     Number of physical packages: 1     Number of physical CPUs: 2     Number of logical CPUs: 2     Graphics card #0 name: 2nd Generation Core Processor Family Integrated Graphics Controller     Graphics card #0 vendor: Intel Corporation (0x8086)     Graphics card #0 VRAM (MiB): 256.00     Graphics card #0 deviceId: 0x0106     Graphics card #0 versionInfo: unknown     Virtual memory max (MiB): 5743.06     Virtual memory used (MiB): 3361.15     Swap memory total (MiB): 3828.00     Swap memory used (MiB): 811.72     Space in storage for jna.tmpdir (MiB): <path not set>     Space in storage for org.lwjgl.system.SharedLibraryExtractPath (MiB): <path not set>     Space in storage for io.netty.native.workdir (MiB): <path not set>     Space in storage for java.io.tmpdir (MiB): available: 421206.25, total: 467297.75     Space in storage for workdir (MiB): available: 421206.25, total: 467297.75     JVM Flags: 0 total;     Server Running: true     Active Data Packs: vanilla, mod_data, mod/neoforge     Available Data Packs: minecart_improvements, redstone_experiments, trade_rebalance, vanilla, mod/neoforge, mod_data     Enabled Feature Flags: minecraft:vanilla     World Generation: Stable     World Seed: -7131934175611965967     Suppressed Exceptions: ~~NONE~~     Is Modded: Definitely; Server brand changed to 'neoforge'     Type: Dedicated Server (map_server.txt)     ModLauncher: 11.0.4+main.d2e20e43     ModLauncher launch target: neoforgeserver     ModLauncher services:         sponge-mixin-0.15.2+mixin.0.8.7.jar mixin PLUGINSERVICE         loader-7.0.10.jar slf4jfixer PLUGINSERVICE         loader-7.0.10.jar runtime_enum_extender PLUGINSERVICE         at-modlauncher-11.0.2.jar accesstransformer PLUGINSERVICE         loader-7.0.10.jar runtimedistcleaner PLUGINSERVICE         modlauncher-11.0.4.jar mixin TRANSFORMATIONSERVICE         modlauncher-11.0.4.jar fml TRANSFORMATIONSERVICE     FML Language Providers:         javafml@7.0         minecraft@7.0     Mod List:         server-1.21.5-20250325.162830-srg.jar             |Minecraft                     |minecraft                     |1.21.5              |Manifest: NOSIGNATURE         neoforge-21.5.63-beta-universal.jar               |NeoForge                      |neoforge                      |21.5.63-beta        |Manifest: NOSIGNATURE     Crash Report UUID: 99fdd6a6-3898-4cfe-ab2c-80b1ace92081     FML: 7.0.10     NeoForge: 21.5.63-beta
  • Topics

×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.