« Modèle » : différence entre les versions
Aucun résumé des modifications |
m (correction orthographe) |
||
Ligne 63 : | Ligne 63 : | ||
== Modèles de bloc == |
== Modèles de bloc == |
||
Le dossier <code>assets/minecraft/models/block</code> 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'état de bloc (Blockstates) doivent être |
Le dossier <code>assets/minecraft/models/block</code> 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'état de bloc (Blockstates) doivent être modifiés en conséquence. |
||
<div class="treeview"> |
<div class="treeview"> |
Version du 16 juin 2015 à 16:51
Tout les modèles de bloc 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’item sont utilisés pour afficher les items dans la main du joueur, sur leur tête (casques et chapeaux), sur le terrain et dans l'inventaire. Par conséquent, même les icônes utilisées dans l'inventaire sont définis dans ces fichiers.
État des blocs (Block states)
Il existe plusieurs variantes de certains blocs, où chaque bloc possède son propre fichier d'état de bloc (Block states), 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 Ressouces. Le nom de ces fichiers ont exactement le même nom de le bloc/item qui veux modifier auquel cas cela n'aura aucun effet (Exemple: le fichier d’état de bloc des torches s'appel torch.json
)
Balise racine
"variants": Déclaration des différentes variante du bloc
Nom de variante: Nom d'une variante, qui se compose des BlockStates séparées 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)."model": Contient les propriétés d'un modèle, si plusieurs sont spécifiés, tout ces modèle seront affiché mais disposé de façon aléatoire si l'option "Blocs alternatif" et activé en jeu.
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: 1 (=100%).
Exemple: La torche
La torche a plusieurs variantes: Il peut être placé sur le sol ou sur un mur dans quatre directions différentes. Cette exemple est prit 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é sur le sol avec le modèle "normal_torch"
. Une torche peut être placé 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 "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: Bloc d'herbe
Le bloc d'herbe possède 2 variantes. Cette exemple est prit 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"
ne sont pas utilisées pour aucun d'eux, chacun a une chance de 25% à être utilisé à chaque fois qu'un bloc est affiché..
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'état de bloc (Blockstates) doivent être modifiés en conséquence.
Balise racine
"parent": Charge un modèle parent à partir de
assets/minecraft/models
.- "ambientocclusion": Active l'occlusion ambient (
true
- par défaut), ou non (false
). - "textures": Permet de definir les texture du modèle dans une ou plusieurs variable à partir du dossier
assets/minecraft/textures
. - "elements": Contient tout les éléments d'un modèle. Une élément est de forme cubique uniquement
Un élement
"from": Point de départ de l'élément de la forme
[x, y, z]
. Les valeurs sont comprise entre -16 et 32."to": Point de fin de l'élément de la forme
[x, y, z]
. Les valeurs sont comprise entre -16 et 32."rotation": Définit la rotation d'un élément.
"origin": Définit de centre de rotation de l'élément de la forme
[x, y, z]
, par défaut:[8, 8, 8]
."axis": Spécifie la direction de rotation avec
"x"
,"y"
ou"z"
.- "angle": Définit l'angle de reotation. 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é. Peut être vrai ou faux. Par défaut à
false
.
- "shade": Définit si les ombres sont rendus (
true
- par défaut). "faces": Liste de toutes les faces de l'élément.
"down, up, north, south, west ou east": Contient les propriétés de la face définit.
"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."texture": Définit la texture de la face à partir d'une variable de texture définit plus haut avec comme préfixe
#
."cullface": Indique si la face ne doit pas être rendu quand il ya un bloc de toucher dans la position spécifiée. La position peut être:
down
,up
,north
,south
,west
, oreast
.- "rotation": Tourne la texture par incrément de 90 degrés.
- "tintindex": A définir...
Exemple: Torche au sol
Par souci de simplicité, cet exemple ne décrit que le torches posées sur le sol qui sont définit dans les fichiers torch.json
et normal_torch.json
stoké 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 elements
-tag est utilisé pour créer trois éléments ou en cubes. Seuls deux faces de chaque cube sont rendus, puisque seulement deux faces de chacun 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é pour les particules et les éléments mais il n'a pas encore été défini.
Fichier: normal_torch.json { "parent": "block/torch", "textures": { "torch": "blocks/torch_on" } }
Ce fichier représente le modèle de la torche sur le sol normale. 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é. La texture "torch_on"
est maintenant affectée à la variable de texture "torch"
(sans # ) et sera donc utilisé pour le modèle précédemment chargé et de ses particules, comme spécifié dans l'autre fichier.
Exemple: Tout 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" } } } ] }
Caractéristiques, qui ont déjà été décrites ci-dessus ne seront pas mentionnés à nouveau. L'utilisation de "cullface": "down"
empêche que la face inférieure du bloc soit rendu, si 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 tous 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é 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 a 45 degrés. Les angles ont été réglés à 45 degrés et "rescale"
a été définit sur true
. Le fait de mettre rescale
à true
va faire en sorte que l'élément conserve ses proportions par rapport a l'instant ou il était a un angle de 0 degrés, une image vaut mieux que des mots.
"rescale": true
|
"rescale": false
|
![]() |
![]() |
Modèle d'item
Comme les items ne possèdent pas différentes variantes, il est inutile de les spécifier. Le dossier assets/minecraft/models/item
contient tous les fichiers de modèle. Les noms des fichiers sont en dur et ne devraient pas être modifiés.
Balise racine
"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.
- Peut être réglé sur
"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."layer#:" Only used to specify the icon of the item used in the inventory. There can be more than just one layer (e.g. for spawn eggs), but the amount of possible layers is hardcoded for each item. Only works in combination with
"builtin/generated"
."particle:" What texture to load particles from.
Variable de texture Defines a texture variable and assigns a texture.
"elements:" Contains all the elements of the model. They can only have cubic forms.
"from:" Start point of a cube according to the scheme
[x, y, z]
. Values must be between -16 and 32."to:" Stop point of a cube according to the scheme
[x, y, z]
. Values must be between -16 and 32."rotation:" Defines the rotation of an element.
"faces:" Holds all the faces of the cube. If a face is left out, it will not be rendered.
"down, up, north, south, west or east:" Contains the properties of the specified face.
"uv:" Defines the area of the texture to use according to the scheme
[x1, y1, x2, y2]
. If unset, it defaults to values equal to xyz position of the element. The texture behavior will be inconsistent if UV extends below 0 or above 16."texture:" Specifies the texture in form of the texture variable prepended with a
#
.- "cull": Specifies whether non-visible elements should be rendered (
true
), or not (false
). - "rotation": Rotates the texture in increments of 90 degrees.
"display:" Holds the different places where item models are displayed.
"thirdperson, firstperson, gui, head, ground, or fixed:" Place where an item model is displayed. Holds its rotation, translation and scale for the specified situation. fixed refers to item frames, while the rest are as their name states.
"rotation:" Specifies the rotation of the model according to the scheme
[x, y, z]
."translation:" Specifies the translation of the model according to the scheme
[x, y, z]
. If the value is greater than 24, it is displayed as 24. If the value is less then -24, it is displayed as -24."scale:" Specifies the scale of the model according to the scheme
[x, y, z]
. If the value is greater than 4, it is displayed as 4.
Example: Torch
This example describes the torch as an item. The model can be found in the torch.json
, which is stored in the folder assets/minecraft/models/item
.
File: 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 ] } } }
The "parent"
-tag uses "builtin/generated"
, so that game uses the standard model of the torch, which has been generated out of the 2D graphic used for the item icon. The icon is specified with the "layer0"
-tag and the texture, that has already been used for the block model, is used for the icon as well. As there is just one layer hard coded for the torch, there cannot be any more layers added. Furthermore, the display properties for the torch are specified, so that it will be displayed correctly in every possible situation. The torch cannot be placed on a players head and uses the specified icon in the inventory, so there is no need to adjust the model for these situations. To line the model up with the players hand in first and third person view, the model needs to be rotated, moved and scaled, which is done for each of the two situation separately.
Historique
Modèle:History Modèle:History Modèle:History Modèle:History Modèle:History Modèle:History Modèle:History Modèle:History Modèle:History Modèle:History Modèle:History Modèle:History Modèle:History Modèle:History Modèle:History
[masquer] | |||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| |||||||||||||||||||
|