Minecraft Wiki
S'inscrire
Advertisement

Tout les modèles de blocs et autres sont enregistrés au format .json. Les modèles de bloc sont utilisés pour décrire tous les blocs dans le jeu, alors que les modèles d’objets sont utilisés pour afficher les objets dans la main du joueur, sur leur tête (casques et chapeaux), au sol et dans l'inventaire. Par conséquent, même les icônes utilisées dans l'inventaire sont définies dans ces fichiers.

États de blocs[]

Il existe plusieurs variantes de certains blocs, où chaque bloc possède son propre fichier d'état de bloc (blockstates), qui répertorie toutes ses variantes existantes et les relie à leur modèle correspondant. Ces fichiers sont stockés dans le dossier : assets/minecraft/blockstates du .jar de votre version de jeu ou dans votre pack de ressources. Ces fichiers ont exactement le même nom que le bloc ou l'objet de sorte que les fichiers renommés n'ont aucun effet sur le jeu (Exemple : le fichier d’état de bloc des torches s'appelle torch.json)

  • S Compound Balise racine
    • S Compound "variants": Déclaration des différentes variantes du bloc
      • S Compound Nom de variante: Nom d'une variante, qui se compose des états de blocs séparés par des virgules. Un bloc avec une seule variante utilise normal comme un nom pour sa variante. Chaque variante contient les propriétés de son modèle. Si plus d'un modèle est utilisé, un modèle doit être spécifié pour chaque variante (Exemple: "facing=up" pour une variante de la torche placée au sol).
        • S Compound "model": Contient les propriétés d'un modèle, si plusieurs sont spécifiés, tous ces modèle seront affichés mais disposés de façon aléatoire si l'option "Blocs alternatifs" est activée en jeu.
          • S String Nom du modèle: Indique le chemin vers le fichier de modèle de bloc, à partir de assets/minecraft/models/blocks.

          •  x: Rotation du modèle sur l'axe des x par incréments de 90 degrés.

          •  y: Rotation du modèle sur l'axe des y par incréments de 90 degrés.

          •  uvlock: Pivote la texture avec le bloc, si false (par défaut).

          •  weight: Probabilité que ce modèle soit affiché si plusieurs modèles sont affectés à cette variante. Valeur par défaut: 100 (=100%).
    • S Compound "multipart" Utilisé à la place de S Compound "variants" pour combiner des modèles de blocs, en se basant sur les attributs block state.
      • S Compound Détermine un cas et quel modèle devrait être utilisé dans ce cas.
        • S Compound "when" Une liste de conditions qui doivent être remplies pour que le modèle soit appliqué. Si ce n'est pas défini, la condition est considéré comme remplie et le modèle s'applique.

          •  OR: Condition remplie si au moins une des conditions renvoie Vrai. Ne peut pas être défini avec d'autres conditions.
            • S Compound Une condition Une liste de conditions que le bloc doit toutes remplir pour que la condition soit remplie.

              •  A case Une condition, qui doit être remplie par une des propriétés du block. Peut être défini comme une liste séparée par | pour autoriser plusieurs valeurs à être acceptées.

          •  A case A single case which has to match one of the block states. It can be set to a list seperated by | to allow multiple values to match. Cannot be set along side the
             OR:-tag.
        • S Compound "apply" Determines the model(s) to apply and its properties. There can be one model or an array of models. If set to an array, the model will randomly be chosen from the options given, with each option being specified in separate subsidiary
          -tags.
          • S Compound "model": Contains the properties of a model, if more than one model is used for the same variant. All specified models alternate in the game.
            • S String Nom du modèle: Specifies the path to the model file of the block, starting in assets/minecraft/models/block.

            •  x: Rotation of the model on the x-axis in increments of 90 degrees.

            •  y: Rotation of the model on the y-axis in increments of 90 degrees.

            •  uvlock: Can be true or false (default). Locks the rotation of the texture of a block, if set to true. This way the texture will not rotate with the block when using the
               x and
               y-tags above.

            •  weight: Sets the probability of the model for being used in the game, defaults to 1 (=100%). If more than one model is used for the same variant, the probability for each model will be calculated by dividing the sum of the weight of each model by the weight of the corresponding model.

Exemple : La torche[]

La torche a plusieurs variantes : elle peut être placée sur le sol ou sur un mur dans quatre directions différentes. Cette exemple est pris du fichier torch.json, qui peut être trouvé dans le dossier assets/minecraft/blockstates.

Fichier: torch.json

{
    "variants": {
        "facing=up": { "model": "normal_torch" },
        "facing=east": { "model": "normal_torch_wall" },
        "facing=south": { "model": "normal_torch_wall", "y": 90 },
        "facing=west": { "model": "normal_torch_wall", "y": 180 },
        "facing=north": { "model": "normal_torch_wall", "y": 270 }
    }
}

"facing=up" est la variante de la torche placée sur ​​le sol avec le modèle "normal_torch". Une torche peut être placée sur les quatre côtés d'un bloc et a donc besoin de quatre variantes différentes, une pour chaque côté. Elles sont appelées "facing=east", "facing=west", "facing=south" et"facing=north". Ces quatre variantes utilisent "normal_torch_wall" comme modèle, qui est tourné de 90° en "y" pour s'aligner avec les différents côtés du mur.

Exemple : Le coquelicot[]

Dans le pack de ressources de base, le coquelicot ne possède qu'une seule texture, qui plus est, pour cet exemple nous allons penser qu'il en existe plusieurs. Admettons ces multiples textures et accordons leur un pourcentage, une fréquence d'apparition, qui sera donc influencée par le paramètre "weight". Pour des raisons de simplicité poppy0 signifie que ce .json est placé le dossier models/block/poppy.json ainsi que poppy1, 2 et 3. Cependant le fichier représenté ci-dessous est le fichier à placer dans le dossier "\blockstates".

Fichier: poppy.json

{
    "variants": {
        "normal": [
            { "model": "poppy0", "weight": 25},
            { "model": "poppy1", "weight": 10 },
            { "model": "poppy2", "weight": 50 },
            { "model": "poppy3" }
        ]  
    }
}

Ci-dessus sont représentées les différentes probabilités qu'un des modèles soit en supériorité numérique par rapport à un autre, 25 signifiant alors 25 % de chances, 10 de 10 % de chances et 50 une sur deux.

Note : si le pourcentage total ne fait pas 100 % ou plus ce n'est pas grave, cependant si vous mettez 0 à la place d'un chiffre cela causera des bugs dans votre fichier .json. Si vous préférez ne rien mettre comme pour le cas de poppy/3 il n'y aura pas de problèmes.

Exemple : Le bloc d'herbe[]

Le bloc d'herbe possède 2 variantes. Cette exemple est pris du fichier grass.json, qui peut être trouvé dans le dossier assets/minecraft/blockstates.

Fichier: grass.json

{
    "variants": {
        "snowy=false": [
            { "model": "grass_normal" },
            { "model": "grass_normal", "y": 90 },
            { "model": "grass_normal", "y": 180 },
            { "model": "grass_normal", "y": 270 }
        ],
        "snowy=true":  { "model": "grass_snowed" }
    }
}

La première variante ("snowy=false") est sans neige dessus mais possède 4 modèles différents et a donc un affichage aléatoire au sol. Comme il y a quatre modèles et le tag "weight" n'est utilisé pour aucun d'eux, chacun a 25 % de chances d'être utilisé à chaque fois qu'un bloc est placé.

Modèles de bloc[]

Le dossier assets/minecraft/models/block contient les fichiers de modèle pour toutes les variantes spécifiées. Les noms des fichiers peuvent être modifiés, mais les fichiers d'états de bloc doivent être modifiés en conséquence.

  • S Compound Balise racine
    • S String "parent": Charge un modèle parent à partir de assets/minecraft/models .

    •  "ambientocclusion": Active l'occlusion ambiant (true - par défaut), ou non (false).

    •  "textures": Permet de définir les textures du modèle dans une ou plusieurs variable à partir du dossier assets/minecraft/textures.
      • S String "particle": La variable qui sert a définir la texture des particules lorsque que l'on casse ou que l'on court sur un bloc.
      • S String Nom de variable texture: Permet de définir une texture avec un nom personnalisable .

    •  "elements": Contient tout les éléments d'un modèle. Une élément est de forme cubique uniquement
      • S Compound Un élement
        • S List "from": Point de départ de l'élément de la forme [x, y, z]. Les valeurs sont comprise entre -16 et 32.
        • S String "to": Point de fin de l'élément de la forme [x, y, z]. Les valeurs sont comprise entre -16 et 32.
        • S Compound "rotation": Définit la rotation d'un élément.
          • S List "origin": Définit de centre de rotation de l'élément de la forme [x, y, z], par défaut: [8, 8, 8].
          • S String "axis": Spécifie la direction de rotation avec "x", "y" ou "z".

          •  "angle": Définit l'angle de rotation. La valeur est comprise entre -45 et 45 avec un incrément de 22,5. Par défaut: 0.

          •  "rescale": Définit si l'échelle de l'élément est conservée. Peut être vrai ou faux. Par défaut à false.

        •  "shade": Définit si les ombres sont rendues (true - par défaut).
        • S Compound"faces": Liste de toutes les faces de l'élément.
          • S String "down, up, north, south, west ou east": Contient les propriétés de la face définit.
            • S List "uv": Définit la zone de la texture à utiliser selon le schéma [x1, y1, x2, y2]. Si non définit, les valeurs par défaut est égales au valeur XYZ de la position de l'élément. Le comportement de la texture sera incohérent si la position de l'élément descend en dessous de 0 ou passe au dessus de 16.
            • S String "texture": Définit la texture de la face à partir d'une variable de texture définit plus haut avec comme préfixe #.
            • S String "cullface": Indique si la face ne ​​doit pas être rendu quand il y a un bloc de toucher dans la position spécifiée. La position peut être: down, up, north, south, west, or east.

            •  "rotation": Tourne la texture par incrément de 90 degrés.

            •  "tintindex": Valeur utilisée par certains blocs comme les feuilles afin de changer de couleur selon le biome. Il est intéressant de noter que les feuilles de bouleau ne possèdent pas ce tag, ce qui en fait un bloc ne changeant pas de couleur.

Exemple : La torche au sol[]

Par souci de simplicité, cet exemple ne décrit que le torches posées sur le sol qui sont définies dans les fichiers torch.json et normal_torch.json stockés dans le dossier assets/minecraft/models/block.

Fichier: torch.json

{
    "ambientocclusion": false,
    "textures": {
        "particle": "#torch"
    },
    "elements": [
        {   "from": [ 7, 0, 7 ],
            "to": [ 9, 10, 9 ],
            "shade": false,
            "faces": {
                "down": { "uv": [ 7, 13, 9, 15 ], "texture": "#torch" },
                "up":   { "uv": [ 7,  6, 9,  8 ], "texture": "#torch" }
            }
        },
        {   "from": [ 7, 0, 0 ],
            "to": [ 9, 16, 16 ],
            "shade": false,
            "faces": {
                "west": { "uv": [ 0, 0, 16, 16 ], "texture": "#torch" },
                "east": { "uv": [ 0, 0, 16, 16 ], "texture": "#torch" }
            }
        },
        {   "from": [ 0, 0, 7 ],
            "to": [ 16, 16, 9 ],
            "shade": false,
            "faces": {
                "north": { "uv": [ 0, 0, 16, 16 ], "texture": "#torch" },
                "south": { "uv": [ 0, 0, 16, 16 ], "texture": "#torch" }
            }
        }
    ]
}

Ce fichier est utilisé pour créer le modèle de la torche, qui est utilisé pour la torche normale et la torche de redstone. Par conséquent, le tag elements est utilisé pour créer trois éléments ou cubes. Seuls deux faces de chaque cube sont rendues, puisque seulement deux faces de chaque ont été spécifiés. "uv" est utilisé pour déterminer la zone où la texture est utilisée. La variable de texture "#torch" est utilisée pour les particules et les éléments mais elle n'a pas encore été définie.

Fichier: normal_torch.json

{
    "parent": "block/torch",
    "textures": {
        "torch": "blocks/torch_on"
    }
}

Ce fichier représente le modèle de la torche normale sur le sol. Il charge le modèle de la torche préalablement défini avec l'aide de "parent" et hérite de toutes les propriétés du fichier torch.json. Comme ce fichier est utilisé seulement pour la torche normale, la texture peut maintenant être spécifiée. La texture "torch_on" est maintenant affectée à la variable de texture "torch" (sans # ) et sera donc utilisée pour le modèle précédemment chargé et ses particules, comme spécifié dans l'autre fichier.

Exemple : Tous les blocs[]

Cet exemple décrit la structure fondamentale de la plupart des blocs normaux dans Minecraft. Tous ces blocs utilisent le même modèle de base et ne sont applicables que pour leur texture, comme déjà décrit dans l'exemple ci-dessus. Ce modèle est défini dans le fichier cube.json qui peut être trouvé dans le dossier assets/minecraft/models/block.

Fichier: cube.json

{
    "elements": [
        {   "from": [ 0, 0, 0 ],
            "to": [ 16, 16, 16 ],
            "faces": {
                "down":  { "texture": "#down", "cullface": "down" },
                "up":    { "texture": "#up", "cullface": "up" },
                "north": { "texture": "#north", "cullface": "north" },
                "south": { "texture": "#south", "cullface": "south" },
                "west":  { "texture": "#west", "cullface": "west" },
                "east":  { "texture": "#east", "cullface": "east" }
            }
        }
    ]
}

Les caractéristiques qui ont été décrites ci-dessus ne seront pas mentionnées à nouveau. L'utilisation de "cullface": "down" empêche que la face inférieure du bloc soit rendue, s'il y a un autre bloc en dessous. Cela vaut également pour toutes les autres faces du bloc.

Exemple: Pousse d'arbre[]

Cet exemple décrit la structure fondamentale utilisée par toutes les pousses d'arbres, sans attribuer une texture spécifique. Le modèle est spécifié dans cross.json, la texture sera par exemple affectée dans oak_sapling.json. Les deux fichiers sont stockés dans le dossier assets/minecraft/models/block.

Fichier: cross.json

{
    "ambientocclusion": false,
    "textures": {
        "particle": "#cross"
    },
    "elements": [
        {   "from": [ 0.8, 0, 8 ],
            "to": [ 15.2, 16, 8 ],
            "rotation": { "origin": [ 8, 8, 8 ], "axis": "y", "angle": 45, "rescale": true },
            "shade": false,
            "faces": {
                "north": { "uv": [ 0, 0, 16, 16 ], "texture": "#cross" },
                "south": { "uv": [ 0, 0, 16, 16 ], "texture": "#cross" }
            }
        },
        {   "from": [ 8, 0, 0.8 ],
            "to": [ 8, 16, 15.2 ],
            "rotation": { "origin": [ 8, 8, 8 ], "axis": "y", "angle": 45, "rescale": true },
            "shade": false,
            "faces": {
                "west": { "uv": [ 0, 0, 16, 16 ], "texture": "#cross" },
                "east": { "uv": [ 0, 0, 16, 16 ], "texture": "#cross" }
            }
        }
    ]
}

Pour créer la forme d'une pousse d'arbre, deux éléments sont tournés à 45 degrés. Les angles ont été réglés à 45 degrés et "rescale" a été défini sur true. Le fait de mettre rescale à true va faire en sorte que l'élément conserve ses proportions par rapport à l'instant où il était à un angle de 0 degré, une image vaut mieux que des mots.

"rescale": true "rescale": false
Block model rescale true Block model rescale false

Modèle des objets[]

Comme les objets ne possèdent pas de variantes différentes, il est inutile de les spécifier. Le dossier assets/minecraft/models/item contient tous les fichiers des modèles. Les noms des fichiers ne devraient pas être modifiés.

  • S Compound Balise racine
    • S String "parent": Charge un modèle parent à partir de assets/minecraft/models.
      • Peut être réglé sur "builtin/generated" pour utiliser un modèle qui est créé à partir de l'icône spécifiée.
      • Peut être réglé sur "builtin/entity" pour charger un modèle à partir d'un fichier d'entité. Comme vous ne pouvez pas spécifier l'entité voulue, cela ne fonctionne pas pour tous les éléments (seulement pour le Coffre, Coffre de l'Ender, Tête et Bannière).
      • Doit être réglé sur "builtin/compass" ou "builtin/clock" pour la Boussole et la Montre.
    • S Compound "textures": Permet de definir les texture du modèle dans une ou plusieurs variable à partir du dossier assets/minecraft/textures ou peuvent être une autre variable de texture.
      • S String "layer#:" Seulement utilisé pour spécifier l'icone de l'item utilisé dans l'inventaire. Il peut avoir plus d'une couche (pour les œufs par exemple) mais le nombre de couches possibles a déjà été défini. Fonctionne seulement avec "builtin/generated".
      • S String "particle:" La texture que prendront les particules.
      • S String Variable de texture Définit une variable et l'assigne à une texture.
    • S List "elements:" Contient tous les éléments du modèle. Il ne peut y avoir que des formes cubiques.
      • S Compound
        • S List "from:" Le point de commencement d'un cube selon le schéma [x, y, z]. Les valeurs doivent être comprises entre -16 et 32.
        • S List "to:" Le point d'arrêt d'un cube selon le schéma [x, y, z]. Les valeurs doivent être comprises entre -16 et 32.
        • S Compound "rotation:" Définit la rotation d'un élément.
          • S List "origin:" Définit le centre de rotation selon le schéma [x, y, z], par défaut à [8, 8, 8].
          • S String "axis:" Spécifie la direction de rotation peut être "x", "y" ou "z".

          •  "angle": Spécifie l'angle de la rotation. Peut être de 45 à -45 degrés. Par défaut, la valeur est mise à 0.
        • S List "faces:" Définit les faces du cube. Si une face est en dehors, elle ne sera pas rendue.
          • S Compound "down, up, north, south, west or east:" Contient les propriétés des faces spécifiées.
            • S List "uv:" Définit la zone de la texture à utilisée selon le schéma [x1, y1, x2, y2]. S'il n'est pas spécifié, la valeur est égal aux position x, y et z de l'élément. Le comportement des textures sera incohérents si l'UV est en dessous de 0 ou supérieur à 16.
            • S String "texture:" Spécifie la texture en forme de la texture variable précédé du signe #.

            •  "cull": Spécifie si les modèles non visibles doivent ètres rendus : Oui (true) , Non (False)

            •  "rotation": Pivoter la texture par incréments de 90 degrés.
    • S Compound "display:" Contient les différents endroits où les modèles d'objets sont affichés.
      • S Compound "thirdperson, firstperson, gui, head, ground, ou fixed:" Endroit où un modèle d'objet est affiché. Contient sa rotation, translation et taille pour la situation spécifiée. Fixed se rapportes aux cadres d'objets, Tandis que le reste est comme leurs noms d'états.
        • S List "rotation:" Indique la rotation du modèle selon les axes [x, y, z].
        • S List "translation:" Indique la traduction du modèle selon les axes [x, y, z]. Si la valeur est plus grande que 24, elle seras affichée comme 24, ainsi si la valeur est plus petite que -24, elle seras affichée comme -24.
        • S Compound "scale:" Indique la taille du modèle selon les axes [x, y, z]. Si la valeur est plus grande que 4, elle seras affichée comme 4.

Exemple : La torche ( objet )[]

Cette exemple décrit la torche comme un objet. Ce modèle peut être trouvé dans le torch.json, qui est stocké dans le dossier assets/minecraft/models/item.

Fichier: torch.json

{
    "parent": "builtin/generated",
    "textures": {
        "layer0": "blocks/torch_on"
    }
    "display": {
        "thirdperson": {
            "rotation": [ -90, 0, 0 ],
            "translation": [ 0, 1, -3 ],
            "scale": [ 0.55, 0.55, 0.55 ]
        },
        "firstperson": {
            "rotation": [ 0, -135, 25 ],
            "translation": [ 0, 4, 2 ],
            "scale": [ 1.7, 1.7, 1.7 ]
        }
    }
}

Le tag "parent" utilise "builtin/generated", donc ce jeu utilise le modèle standard de la torche, qui a été généré sur le schéma du graphique 2D utilisé pour l'icone de l'objet. L'icone est indiquée avec le tag "layer0" et la texture, Cela a déjà été usé pour le modèle du bloc, c'est aussi utilisé pour l'icone. Comme il y a juste un layer durement codé pour la torche, il ne peut y avoir aucun autre layer ajouté. En outre, les propriétés d'affichage pour la torche sont indiquées, donc, elle sera affichée correctement dans toutes les situations possibles. La torche ne peut pas être placée sur une tête de joueur et utilise l'icône indiquée dans l'inventaire, donc il n'y pas pas besoin d'ajuster le modèle dans ces situations. Pour aligner le modèle avec la main du joueur en première et troisième personne, Le modèle a besoin d'être pivoté, bougé et redimensionné, qui est fait pour chacun des deux cas séparément.

1.9 +[]

Ajouter une texture à un bloc[]

Vous pouvez ajouter une ou plusieurs textures à un objet, un bloc ou aux particules de celui-ci. Voici quelques exemples:

Modifier les particules[]

Pour modifier les particules (seulement l'image) émise par un bloc via cette entrée: {"textures": { "particle": "<Emplacement du fichier à utiliser depuis le dossier textures ou une autre entrée>", }


Si une autre entrée est inscrite dans "particle", il faut insérer le symbole # au début du nom de l'entrée.

Exemple:

Fichier: cube_all.json
{
    "parent": "block/cube",
    "textures": {
        "particle": "#all",
        "down": "#all",
        "up": "#all",
        "north": "#all",
        "east": "#all",
        "south": "#all",
        "west": "#all"
    }
}

#all veut dire que la texture du bloc correspondra au fichier précisé dans l'entrée "all" du modèle ayant ce fichier (ici: cube_all.json) comme parent.

Historique[]

Version Java
1.814w06aAjout des modèles de blocs personnalisés.
14w07a Réécriture du format de modèle. Au lieu d'avoir seulement des "plans", il a maintenant "plans" et "cubes". La rotation des objets a également été limité à une rotation directionnelle par incréments de 22,5 degrés.
14w11aL'éclairage sur un bloc solide ne fait plus de sections intérieures complètement noir.
14w11bLes blocs génériques chargent maintenant des modèles à la place de formes prédéfinies.
April 12, 2014Message de TheMogMiner sur les changements à venir sur le format des modèles.
14w17aTransformation de la plupart des blocs restants au format de modèle.
Ajout "rotateVariantTextures" pour préserver les détails UV par rotation.
14w25aSuppression de l'attribut directionnel de la définition de uv et l'a remplacé avec des références explicites de texture. "textureFacing" a été remplacé par "texture" paramètre qui est préfixé par le symbole dièse (#).
"useAmbientOcclusion" renommé en "ambientocclusion"
"rotateVariantTextures" renommé en "UV lock"
"cull" renommé en "cullface"
Rotation rendu plus détaillé, il est maintenant plus clair et se fait sur un seul axe. Exemple, la rotation de l'une des deux faces de "cross" est maintenant: "rotation": { "origin": [ 8, 8, 8 ], "axis": "y", "angle": 45, "rescale": true },
Le dossier models/blocks/meshes a été enlevé et les fichiers de modèles sont maintenant stockés dans les modèles /block.
Le dossier a été ajoutés et stocke les fichiers de sélection de modèles dans models/block..
Le format de modèle prend en charge maintenant des modèles personnalisés d'item.
14w27aRemplacement des noms d'états de blocs avec des données qui reflète mieux les données internes. Ne reflète pas encore toutes les données pour certains blocs. Va passer à l'aide des données réelles stockées dans une future version lorsque les valeurs de données numériques sont complètement abandonnées au profit des Etats du bloc.
14w27bLes fichiers d'état de bloc prennent désormais en charge une liste de modèles permettant les rendu de bloc aléatoires.
14w30a Ajout du modèle d'item "builtin/entity".
1.8.2pre5Le tag "translation" est maintenant limité de -24 à 24.
Le tag "scale" est maintenant limité à 4 ou moins.
1.915w31aUV is now optional, and if not supplied it will automatically generate based on the element's position.
Different models/textures for different damage values, item states, and whether the player is left handed. This works on compasses, clocks, and anything that can have a durability bar. It also contains additional tags for bows and fishing rods.
Models can be put together based on block state attributes, such as fences. As a result, the vanilla set of block models was reduced by almost 300 models.
Block model JSON is now strict, comments and quoteless identifiers are not allowed.
"display" tag defaults have changed, and the "thirdperson" and "firstperson" tags were replaced with "thirdperson_righthand", "thirdperson_lefthand", "firstperson_righthand", and "firstperson_lefthand".
"parent" and "elements" tags can coexist now, though the top level elements tag overwrites all former ones.
Removed the option to disable alternate block models.
Version portable Alpha
0.8.0Ajout de la rotation aléatoire des blocs.
Advertisement