Item avec rendu 3D (.obj)
-
Bonjour.
Dans ce tutotiel 1.12.X, je vais vous expliquer comment ajouter un item utilisant un rendu 3D provenant de fichier .obj.
Je vais utiliser le loader fourni par Forge.Sommaire du tutoriel
Pré-requis
Utilisation du loader
Cette ligne doit être lue côté Client dans de l’événement FMLPreInitializationEvent.
Communément on l’ajoute dans le ClientProxy ->preInit.OBJLoader.INSTANCE.addDomain(Reference.MOD_ID);
Ainsi, nous allons pouvoir charger des .obj :smirking_face: .
Item 3D
Je ne vais pas créer la class d’item car elle est très bien expliquée dans le tutoriel présent dans les pré-requis.
Une fois votre class d’item crée, vous allez pouvoir faire le .json qui cette fois sera différent de ceux habituel.Vous devez créer un fichier .json dans modid:blockstates :
{ "forge_marker": 1, "defaults": { "model": "modid:monModel.obj" }, "variants": { "inventory": [ { "transform": { "thirdperson_lefthand": { "rotation": [ { "x": 0 }, { "y": 0 }, { "z": 0 } ], "translation": [ 0, -0.1, 0.1 ], "scale": 0.02 }, "thirdperson_righthand": { "rotation": [ { "x": 0 }, { "y": 0 }, { "z": 0 } ], "translation": [ 0, -0.1, 0.1 ], "scale": 0.02 }, "gui": { "rotation": [ { "x": 90 }, { "y": 45 }, { "z": -90 } ], "translation": [ -0.2, -0.18, 0 ], "scale": 0.008 }, "firstperson_righthand": { "rotation": [ { "x": 180 }, { "y": 185 }, { "z": 170 } ], "translation": [ 0, -0.1, 0 ], "scale": 0.02 }, "firstperson_lefthand": { "rotation": [ { "x": 180 }, { "y": 185 }, { "z": 170 } ], "translation": [ 0, -0.1, 0 ], "scale": 0.02 }, "ground": { "rotation": [ { "x": 90 }, { "y": 0 }, { "z": 0 } ], "scale": 0.01 } } } ] } }
Pensez à renommer ‘modid’ par votre modid et ‘monModel’ par le nom de votre fichier .obj.
Vous pouvez modifier les positions des différentes vues.Placez ensuite votre fichier .obj (accompagné de son fichier .mtl) dans modid:models/item.
Licence et attribution
Ce tutoriel rédigé par Pacito2 et publié sur Minecraft Forge France est mis à disposition selon les termes de la licence Creative Commons Attribution - Pas d’Utilisation Commerciale - Partage dans les Mêmes Conditions 4.0 International
-
Super tutoriel!
-
J’aurai quelques questions :
Y-a-t-il as quand même besoin du json dans models/item, ou on met juste le .obj à la place ?
Il faut quand même enregistrer l’item dans le registre, mais pas besoin register son modèle ? (ModelRegistry)
Du coup, les textures dans assets/textures/items, ce sera celle utilisée dans le .obj comme avec des blocs en format json ?Voilà, la 3ème question j’ai juste un petit doute, la 1ère j’hésite, et la 2nde je sais pas du tout.
Merci !
-
Bonsoir,
Non, aucun json hormis celui dans le dossier blockstates.
Il faut quand même enregistrer le modèle avec l’event approprié.Et pour finir la texture utilisée est celle indiqué dans le fichier mtl lié à l’obj.
-
D’accord merci bien !
-
Super!
-
J’ai une question si je veux faire avec une armure je fais comment?
-
Je crois que les armures utilisent le format par défaut des entités, il faudrait donc que tu puisse rendre ton modèle séparément, comme par exemple dans l’event de rendu du joueur.
-
Non, les armures utilisent un modèle base.
Il faudrait ajouter un layer custom pour le rendu de tes armures.
-