[1.12.X] 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 😏 .

    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

    Creative Commons

    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

    retour Sommaire des tutoriels



  • 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 !


  • Moddeurs confirmés Rédacteurs Administrateurs

    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!


Log in to reply