Jump to content

Recommended Posts

Posted

Hello there,

 

So i saw that we can register .obj models again wich is cool (thx fry)!

But im a little confused why it not loads, i mean it should right?

 

In the preInit, i got this, after the item is registered:

if(event.getSide() == Side.CLIENT){
OBJLoader.instance.addDomain(Csgo.ModID);
ModelLoader.setCustomModelResourceLocation(Usp, 0, new ModelResourceLocation(ModID + ":Usp", "inventory"));
	}

 

The modid is already lower case!!!

 

The model are in: assets/modid/models/item

Both .obj and .mtl!

I didnt forget about: mtllib models/item/Usp.mtl

 

And here is my .mtl

newmtl pist_223.bmp
Ns 96.078431
Ka 1.000000 1.000000 1.000000
Kd 0.762566 0.426902 0.414958
Ks 0.500000 0.500000 0.500000
Ke 0.000000 0.000000 0.000000
Ni 1.000000
d 1.000000
illum 2
map_Kd csgo:Usp

The texture is in: assets/modid/textures!

 

In case, i triangulated the faces, but thats the only thing i have done to the model.

 

Also, can i implement IPerspectiveModelAware, event if its an obj model?

 

Thanks for helping!

 

 

 

 

Posted

First off, don't just thank fry, thank shadekiller666 as well (he wrote the loader). Where exactly are you registering your custom model resource location? In your Main class or in a proxy? What is the unlocalized name of the item "Usp"? Do you have your blockstate for the item in the correct area? You need to give more info.

Posted

Oh, i didnt know that. shadekiller666, THANK YOU as well!

Its inside my main class, like its should be.

This: if(event.getSide() == Side.CLIENT) actullay is useful there, but it shouldnt really matter, the server wont gonan crash.

The Unlocalized and Registered name are both "Usp".

Now... Why would i exactly need a blocksate file for an item? :D

Posted

You need proxies for this kind of thing. Any *reference* to a class/field/method with the @SideOnly annotation that is detected on the wrong side will crash the game, even if the code isn't ever executed. Try and run your mod on a "dedicated* server, and you'll see it chashes.

  Quote

  Quote
catch(Exception e)

{

 

}

Yay, Pokémon exception handling, gotta catch 'em all (and then do nothing with 'em).

Posted

Look, im not that stupid, i know what im doing thats not the problem anyways.

You can trust me i started a server and it worked fine. You can use Side.CLIENT checking if you know how and where.

In the matter of fact Side checking, prevents the Client/Server to even see the code. Not like isRemote.

Thats why most are confused, and create a crash.

 

Anyways i fixed the 1st problem, now it detects the model, but i get this error:

net.minecraftforge.client.model.obj.OBJModel$UVsOutOfBoundsException: Model 'csgo:models/item/Usp.obj' has UVs ('vt') out of bounds 0-1! The missing model will be used instead. Support for UV processing will be added to the OBJ loader in the future.

 

I see what it means, but i dont know how i could fix the model.

Posted

Yeah, i was wrong and i wrote the lines about @SideOnly, oups. :(

 

What i meant was, as far as i know in the inits, you can use event.getSide() checking for resource registering.

 

 

Posted

So how did you get it to work?

I'm currently unable use OBJ's for items. (Blocks were easy, just followed the forge debug examples. now waiting on the custom tag one)

 

I know its something relatively simple I'm overlooking, but for the life of me I'm stumped and I wasn't able to fine an example to go by.

 

 

The 'fun' I've had trying to get this to work is in the spoiler, so unless you care to read you can skip opening it. ;D

 

  Reveal hidden contents

 

Posted

Texture Coordinates are generally specified as 0-1 along axis named U and V. In 1.7, textures were generally loaded individually, and going outside of 0->1 would result in textures being repeated.

 

In 1.8's model world, textures are stitched onto the main block sheet, which should be a good performance boost. However it means that if you use a UV coordinates less than 0, or greater than 1, you may end up with part of the texture of another block. For this reason, an error was introduced because your model will more than likely not render the way you intended it to.

Posted

Yeah, after a bit of testing i figured this out. So i fixed the UV mapping, and also fixed the material.

So it renders okay now. I can see that some triangular face has rendering issues, because they are brighter, so it looks wierd.

 

But other than that, i manage to get it working!

Posted

Well I had some time to take another crack at this.

 

You can not use a forge state json with the obj defined at a model, works for blocks but not items.

Nor can you use a model json with the obj defined as a parent.

Both throw the error: com.google.gson.JsonParseException: BlockModel requires either elements or parent, found neither

 

What did work, partly.

In the proxy preinit add a variant name that points to the obj file and include the '.obj'

In the proxy init register the item model, also needs to point to the obj and include '.obj'

 

That works to get the obj in game, just need to solve how to set transformations.

I'm guessing that will need to be done with the ModelBakeEvent but it will have to wait until I get another chance to go digging.

 

Posted

Well i did achived to get items to work. Since my pistol is an item only.

I think you have problems with your json.

 

Here is what i did:

-Create blockstate folder

-Create models/item folders

-Put obj with mtl into the models/item folder

-In the blockstate create a .json file with the registered name

 

Here is my Usp.json file:

{
    "forge_marker": 1,
    "defaults": {
        "textures": {
            "#Usp": "csgo:Usp"
        },
        "model": "csgo:Usp.obj"
    },
    "variants": {
        "normal": [{}],
        "inventory": [{
            "transform": {
                "firstperson": {
                    "translation": [0.1, 0, -0.3],
                    "rotation": [ { "y": 130}, {"x": 0}, {"z": 0} ],
                    "scale": 0.2
                },
                "thirdperson": {
                    "translation": [0.02, 0.05, -0.05],
                    "rotation": [ { "y": 0}, {"x": -92}, {"z": 0} ],
                    "scale": 0.07
                },
                "gui": {
                    "translation": [0, -0.1, 0],
                    "scale": 0.16
                }
            }
        }]
    }
}

 

In the textures "#Usp" has to match the material name, that is in the mtl file.

Also check out the Forge's ModelLoaderRegistryDebug.class in github, also the resources and the actual debug obj/mtl files. You need to correct some data in your model, or in wont load!

Posted

So my problem was me putting the forge state json in the wrong place, I had put it in the items folder.

I ended up writing my own baked model that extended OBJBakedModel.

Not a waste of time though as I needed to change the render based on nbt anyway.

 

I ran into the obj/mtl file edits requirement while working on blocks, but the Debug files helped out there.

Only issues there is:

- not knowing how to get the "custom" tag, but I don't think that can be done as the debug is just a placeholder last I checked.

- break particles being white, block renders fine though. Had the same issue when I used a model and mtl from the debug folders, so maybe not implemented yet.

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

    • 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
    • My minecraft version is 1.20.1, I haven't had too many issues other than a mod not working sometimes, in which case I usually just delete and sift through the preexisting mods to try to find the issue, but I hit a big wall of not knowing what my issue is now. I just want to make a modpack for me and my partner!!! Here's the latest log url, https://pastebin.com/9LjctgYN 
    • i was having same problem, thanks 
  • Topics

×
×
  • Create New...

Important Information

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