Posted November 25, 20186 yr I have few questions about ModelBase rendering (I'm looking for few hints to point me to right direction): 1. How to tell the game to register the model (from my research there was method in ForgeClient class to register item renderer, but now I can't find it) 2. Based on Forge docs there is TEISR which I have atached to the items I want to on client side. Now I need baked model to use the isBuiltInRenderer method. So from my understanding I would need 3 classes for each item (base class, renderer and model), I guess. I would like to use the ModelBase models since the .json is limited in the size so then I think I can't use the item blockstates.
November 25, 20186 yr 18 minutes ago, Toma™ said: I would like to use the ModelBase models since the .json is limited in the size Define "limited in the size". You can use the scale transform to make the model bigger. 18 minutes ago, Toma™ said: Now I need baked model to use the isBuiltInRenderer method. Provide a dummy IBakedModel then. 18 minutes ago, Toma™ said: from my research there was method in ForgeClient class to register item renderer, but now I can't find it That method was deprecated a while ago. Use the methods that the Item class provides. So far you have not explained what you need a TEISR for. Please elaborate, the functionality you want might be acheivable with basic json.
November 25, 20186 yr Author 3 minutes ago, V0idWa1k3r said: So far you have not explained what you need a TEISR for. Please elaborate, the functionality you want might be acheivable with basic json. I want to create weapon with better details so default scale function is not enough for me. Also I was looking when vanilla uses the TEISR and that's for the shield based on it's NBT. I want to do something like that (render atachments on the weapon based on NBT). I have the NBT working, I'm just looking for the rendering. From what I have found the .json is limited to 3x3 block size and becausd of that I think I'll need to use ModelBase
November 26, 20186 yr You can do that without a TEISR. Take a look at https://github.com/CAS-ual-TY/GunCus, the implementation of it in MinecraftByExample and the multiple topics on this forum about it About Me Spoiler My Discord - Cadiboo#8887 My Website - Cadiboo.github.io My Mods - Cadiboo.github.io/projects My Tutorials - Cadiboo.github.io/tutorials Versions below 1.14.4 are no longer supported on this forum. Use the latest version to receive support. When asking support remember to include all relevant log files (logs are found in .minecraft/logs/), code if applicable and screenshots if possible. Only download mods from trusted sites like CurseForge (minecraft.curseforge.com). A list of bad sites can be found here, with more information available at stopmodreposts.org Edit your own signature at www.minecraftforge.net/forum/settings/signature/ (Make sure to check its compatibility with the Dark Theme)
November 26, 20186 yr Author 5 hours ago, Cadiboo said: You can do that without a TEISR. Take a look at https://github.com/CAS-ual-TY/GunCus, the implementation of it in MinecraftByExample and the multiple topics on this forum about it Thanks, I'll take a look at it.
November 29, 20186 yr Author I have been thinking about few things recently and I would like to know something before I start working. Using IBakedModel for rendering will still allow me to do dynamic rendering (like rendering additional models on my base model based on NBT) and other stuff like animations? Also is using ModelBase bad idea, since I don't really like just scaling the .json model because I think I will want more details and it might be a lot of work to make it properly in smaller scale. So I'm just making sure I don't need the TEISR.
November 29, 20186 yr I’d say use JSON so resource packs can change your models. How is it harder to use JSON than model base? It seems like it would be a lot easier to me About Me Spoiler My Discord - Cadiboo#8887 My Website - Cadiboo.github.io My Mods - Cadiboo.github.io/projects My Tutorials - Cadiboo.github.io/tutorials Versions below 1.14.4 are no longer supported on this forum. Use the latest version to receive support. When asking support remember to include all relevant log files (logs are found in .minecraft/logs/), code if applicable and screenshots if possible. Only download mods from trusted sites like CurseForge (minecraft.curseforge.com). A list of bad sites can be found here, with more information available at stopmodreposts.org Edit your own signature at www.minecraftforge.net/forum/settings/signature/ (Make sure to check its compatibility with the Dark Theme)
November 29, 20186 yr Author 7 minutes ago, Cadiboo said: I’d say use JSON so resource packs can change your models. How is it harder to use JSON than model base? It seems like it would be a lot easier to me Well I'm bit confused with the JSON system, specially with rendering another models into it. For the model base renderer it looks a little easier (i was looking into some of the flans mod model code). I know there is system similar to blockstate system which is used for the bow, but I'm bit confused with it's usage. Because bow has like 3 states and every state has it's texture. So if I have 5 atachment types + some variants for each of them would I have to write every single combination for the item state or is there easier way? I still have feeling modelbase would be easier, but I'm not really experienced.
November 29, 20186 yr 1 hour ago, Toma™ said: easier Maybe, but not as user friendly. VANILLA MINECRAFT CLASSES ARE THE BEST RESOURCES WHEN MODDING I will be posting 1.15.2 modding tutorials on this channel. If you want to be notified of it do the normal YouTube stuff like subscribing, ect. Forge and vanilla BlockState generator.
November 30, 20186 yr It depends on your use case. If your model doesn’t move, or doesn’t much at all use JSON. If you have something that moves a lot (like a player) use programed models. If you find JSON hard to use, check out http://blockbench.net About Me Spoiler My Discord - Cadiboo#8887 My Website - Cadiboo.github.io My Mods - Cadiboo.github.io/projects My Tutorials - Cadiboo.github.io/tutorials Versions below 1.14.4 are no longer supported on this forum. Use the latest version to receive support. When asking support remember to include all relevant log files (logs are found in .minecraft/logs/), code if applicable and screenshots if possible. Only download mods from trusted sites like CurseForge (minecraft.curseforge.com). A list of bad sites can be found here, with more information available at stopmodreposts.org Edit your own signature at www.minecraftforge.net/forum/settings/signature/ (Make sure to check its compatibility with the Dark Theme)
November 30, 20186 yr Author 10 hours ago, Cadiboo said: It depends on your use case. If your model doesn’t move, or doesn’t much at all use JSON. If you have something that moves a lot (like a player) use programed models. If you find JSON hard to use, check out http://blockbench.net I know about that, but I think I didn't provide enough information on misunderstood you somewhere. So I will repeat everything here: 1) Using the JSON system will allow me to change the model dynamically based on it's NBT (I have made inventory for ataching atachments to weapons so I would like to render the atachment based on the NBT - so will the JSON model allow me to do that?) 2) I would like to implement something like ADS mode for aiming. With some scope atachments I simply render overlay over player screen, but when weapon doesn't have scope I would like to be able to move the model in front of player view to simulate the ADS (possibly in render tick event using some GL methods, I'm not sure if that is the correct way) 3) Would it be possible to scale the model in something like render tick event (since I will propably have to do model of some size and then scale it up - I know JSON has function for scaling but if I would need to scale it even more would it allow me to use the GL scale method)? I'm confused with this rendering so thanks everybody for helping me
November 30, 20186 yr 32 minutes ago, Toma™ said: 2) I would like to implement something like ADS mode for aiming. With some scope atachments I simply render overlay over player screen, but when weapon doesn't have scope I would like to be able to move the model in front of player view to simulate the ADS (possibly in render tick event using some GL methods, I'm not sure if that is the correct way) 3) Would it be possible to scale the model in something like render tick event (since I will propably have to do model of some size and then scale it up - I know JSON has function for scaling but if I would need to scale it even more would it allow me to use the GL scale method)? I'm confused with this rendering so thanks everybody for helping me You might want to look at the GunCus mod, it does both those things About Me Spoiler My Discord - Cadiboo#8887 My Website - Cadiboo.github.io My Mods - Cadiboo.github.io/projects My Tutorials - Cadiboo.github.io/tutorials Versions below 1.14.4 are no longer supported on this forum. Use the latest version to receive support. When asking support remember to include all relevant log files (logs are found in .minecraft/logs/), code if applicable and screenshots if possible. Only download mods from trusted sites like CurseForge (minecraft.curseforge.com). A list of bad sites can be found here, with more information available at stopmodreposts.org Edit your own signature at www.minecraftforge.net/forum/settings/signature/ (Make sure to check its compatibility with the Dark Theme)
November 30, 20186 yr 3 hours ago, Cadiboo said: You might want to look at the GunCus mod, it does both those things Isn't that mod stuck in 1.7.10? I might be looking at a wrong mod though. 3 hours ago, Toma™ said: 1) Using the JSON system will allow me to change the model dynamically based on it's NBT (I have made inventory for ataching atachments to weapons so I would like to render the atachment based on the NBT - so will the JSON model allow me to do that?) Yes, and that's quite easy. 3 hours ago, Toma™ said: 2) I would like to implement something like ADS mode for aiming. With some scope atachments I simply render overlay over player screen, but when weapon doesn't have scope I would like to be able to move the model in front of player view to simulate the ADS (possibly in render tick event using some GL methods, I'm not sure if that is the correct way) I am not sure this is possible with IBakedModel without some hacky solutions. 3 hours ago, Toma™ said: 3) Would it be possible to scale the model in something like render tick event (since I will propably have to do model of some size and then scale it up - I know JSON has function for scaling but if I would need to scale it even more would it allow me to use the GL scale method)? Why would you scale it up dynamically? There is no reason to do so. 3 hours ago, Toma™ said: would it allow me to use the GL scale method No, but you can use a custom IBakedModel and have a custom model matrix with IBakedModel#handlePerspective(or just transform the quads on the fly when you need to do so). However ultimately I am actually leaning for this being a TEISR use case. Please can you provide some more points of functionality for your gun? Are there part-independent animations? Dynamic textures? Custom shaders? Do you need to render the player's hand? How should your gun be transformed? Are there transformation animations? Are they independent for parts? Do you have parts like gun ammunition clips that may not be rendered at points in time? etc. In any case a basic JSON is out of the question here unfortunately. The question is - would a custom IBakedModel be sufficient or not.
November 30, 20186 yr 1 hour ago, V0idWa1k3r said: I am not sure this is possible with IBakedModel without some hacky solutions. Are you capable of making your own "using animations"?(like eating or drinking). VANILLA MINECRAFT CLASSES ARE THE BEST RESOURCES WHEN MODDING I will be posting 1.15.2 modding tutorials on this channel. If you want to be notified of it do the normal YouTube stuff like subscribing, ect. Forge and vanilla BlockState generator.
November 30, 20186 yr 8 minutes ago, Animefan8888 said: Are you capable of making your own "using animations"?(like eating or drinking). Well, those kind of animations are simple changes of the model matrix over time. So yes, you should be able to do it using either IBakedModel#handlePerspective or by transforming quad position data on the fly. I would assume the former should work just fine. Edit: I am not sure whether the OP can do it with a custom IBakedModel or not because they have not specified whether they need to also render the player's arm, and I am assuming that they do want that. That is not possible with a IBakedModel Edited November 30, 20186 yr by V0idWa1k3r
November 30, 20186 yr 7 minutes ago, V0idWa1k3r said: Edit: I am not sure whether the OP can do it with a custom IBakedModel or not because they have not specified whether they need to also render the player's arm, and I am assuming that they do want that. That is not possible with a IBakedModel He can just render the arm separately in one of the Render events when the player is holding his gun(s). VANILLA MINECRAFT CLASSES ARE THE BEST RESOURCES WHEN MODDING I will be posting 1.15.2 modding tutorials on this channel. If you want to be notified of it do the normal YouTube stuff like subscribing, ect. Forge and vanilla BlockState generator.
November 30, 20186 yr Author 1 hour ago, V0idWa1k3r said: Isn't that mod stuck in 1.7.10? I might be looking at a wrong mod though. Yes, and that's quite easy. I am not sure this is possible with IBakedModel without some hacky solutions. Why would you scale it up dynamically? There is no reason to do so. No, but you can use a custom IBakedModel and have a custom model matrix with IBakedModel#handlePerspective(or just transform the quads on the fly when you need to do so). However ultimately I am actually leaning for this being a TEISR use case. Please can you provide some more points of functionality for your gun? Are there part-independent animations? Dynamic textures? Custom shaders? Do you need to render the player's hand? How should your gun be transformed? Are there transformation animations? Are they independent for parts? Do you have parts like gun ammunition clips that may not be rendered at points in time? etc. In any case a basic JSON is out of the question here unfortunately. The question is - would a custom IBakedModel be sufficient or not. Well I would like to possibly add more parts like magazines and use them for animation for reloading. I have 3 different magazine atachments so I would need to create the animation for every single of them. I don't need dynamic textures, I just need dynamic model rendering based on NBT as explained above. I wasn't really thinking about shaders and I think I'll leave that alone. Well if it would be possible (and I know it is) I would like to implement some sort of rendering the arm based on the weapons current state (like reloading to move the hand with the clip etc). Also possibly render the hand holding weapons grip when atached. I know this is not easy, but as soon as I start understanding it atleast a bit I should be able to do more stuff. I would like to have few animations like reloading and most importantly ADS mode so the shooting can feel more "realistic" rather than just holding your weapon on right side of the screen. And yes, I have magazines which as explained above should move when reloading. I don't there's need to not render them at all, even when the weapon is empty it should be rendered. I haven't started models yet, since I'm trying to get the best way to do it.
November 30, 20186 yr Well I suppose in theory it is possible with a custom IBakedModel. In practice though you will be recalculating quads quite frequently and that may eat a lot of frames. I would use a TEISR here, even though it is technically possible without one. I mean, this 10 minutes ago, Toma™ said: I have 3 different magazine atachments so I would need to create the animation for every single of them. would mean that the OP would need to recompute the quad list pretty much every frame of their animation. Or at least parts of it anyway. Potentially all of it if their gun also needs to move during the animation. It should be faster to fill in the rendering buffer with elements each frame than it is to have to recompute quads like this. In theory that is, if anyone has any metrics feel free to correct me here.
November 30, 20186 yr 36 minutes ago, V0idWa1k3r said: In practice though you will be recalculating quads quite frequently and that may eat a lot of frames. I would use a TEISR here, even though it is technically possible without one. I mean, this Wait, we are forgetting something pretty important. The Model Animation System. VANILLA MINECRAFT CLASSES ARE THE BEST RESOURCES WHEN MODDING I will be posting 1.15.2 modding tutorials on this channel. If you want to be notified of it do the normal YouTube stuff like subscribing, ect. Forge and vanilla BlockState generator.
November 30, 20186 yr 5 minutes ago, Animefan8888 said: we are forgetting something pretty important. The Model Animation System. Hmm, that's true. I am not very familiar with it though and don't know how to animate items with it, especially if said items are multipart.
November 30, 20186 yr Just now, V0idWa1k3r said: Hmm, that's true. I am not very familiar with it though and don't know how to animate items with it, especially if said items are multipart. It supports multipart models and there is a doc page for it here. And there is more information in the following pages after the intro. 55 minutes ago, Toma™ said: the best way to do it. Might be this. VANILLA MINECRAFT CLASSES ARE THE BEST RESOURCES WHEN MODDING I will be posting 1.15.2 modding tutorials on this channel. If you want to be notified of it do the normal YouTube stuff like subscribing, ect. Forge and vanilla BlockState generator.
November 30, 20186 yr Author 29 minutes ago, Animefan8888 said: It supports multipart models and there is a doc page for it here. And there is more information in the following pages after the intro. Might be this. Okay so based on my quick look into the intro for animations you sent here it looks like I will have to go with the JSON models since they're getting the biggest support by most forge features. I'll propably start making some test models and see how it all goes.
December 1, 20186 yr As I said, GunCus does all of this - custom models based on attachments etc., a custom overlay for aiming, a custom matrix and animation for aiming. You should probably take a look at it. https://github.com/CAS-ual-TY/GunCus About Me Spoiler My Discord - Cadiboo#8887 My Website - Cadiboo.github.io My Mods - Cadiboo.github.io/projects My Tutorials - Cadiboo.github.io/tutorials Versions below 1.14.4 are no longer supported on this forum. Use the latest version to receive support. When asking support remember to include all relevant log files (logs are found in .minecraft/logs/), code if applicable and screenshots if possible. Only download mods from trusted sites like CurseForge (minecraft.curseforge.com). A list of bad sites can be found here, with more information available at stopmodreposts.org Edit your own signature at www.minecraftforge.net/forum/settings/signature/ (Make sure to check its compatibility with the Dark Theme)
December 9, 20186 yr Author So in the end I went with the TEISR. However I have some problems now. The item is rendering properly, but I sometimes move the model and it moves it in the GUI and that is another problem because I would like to keep the json item model for the gui. How would I do that? I am not sure, if I should post some code, since it won't propably help. But anyway, there are some bits of the code: My baked model: Spoiler public class BakedModelGun implements IBakedModel { public BakedModelGun() { } @Override public boolean isBuiltInRenderer() { return true; } @Override public ItemOverrideList getOverrides() { return ItemOverrideList.NONE; } @Override public TextureAtlasSprite getParticleTexture() { TextureMap map = Minecraft.getMinecraft().getTextureMapBlocks(); return map.getMissingSprite(); } @Override public List<BakedQuad> getQuads(IBlockState state, EnumFacing side, long rand) { return Collections.EMPTY_LIST; } @Override public boolean isAmbientOcclusion() { return false; } @Override public boolean isGui3d() { return false; } } The teisr class: Spoiler public class WeaponTeisr extends TileEntityItemStackRenderer { //model private final ModelP92 p92 = new ModelP92(); @Override public void renderByItem(ItemStack stack) { //For every item if(stack.getItem() == PMCItems.FLARE_GUN) { } else if(stack.getItem() == PMCItems.P92) { GlStateManager.pushMatrix(); bindTexture("p92"); setupDefaultItemTranslationAndRotation(); p92.render(); GlStateManager.popMatrix(); } } private void bindTexture(String name) { ResourceLocation rl = new ResourceLocation(Main.MOD_ID + ":textures/weapons/" + name + ".png"); Minecraft.getMinecraft().getTextureManager().bindTexture(rl); } private static void setupDefaultItemTranslationAndRotation() { GlStateManager.scale(0.1, 0.1, 0.1); GlStateManager.translate(6, 6, 3); GlStateManager.rotate(180, 1, 0, 0); GlStateManager.scale(0.8, 0.8, 0.8); } } and the bake method: Spoiler @SubscribeEvent public void bakeModels(ModelBakeEvent e) { ModelResourceLocation location; IBakedModel main; //Weapons for(int i = 0; i < GunBase.GUNS.size(); i++) { GunBase gun = GunBase.GUNS.get(i); location = new ModelResourceLocation(gun.getRegistryName(), "inventory"); main = e.getModelRegistry().getObject(location); e.getModelRegistry().putObject(location, new BakedModelGun()); } }
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.