MC Toolkit

Guides / Construction et ressources

Un pixel de carte, c'est un octet, et deux de ses bits sont la luminosité

61 couleurs de base × 4 nuances = 244 couleurs à partir d'un tableau de 16 384 octets. Une seule des quatre nuances correspond à la valeur pleine de la couleur ; les trois autres sont assombries à 86 %, 71 % et 53 %.

Chaque carte remplie dans Minecraft occupe la même taille sur le disque : un tableau de colors octets de exactement 16 384 entrées, soit 128 × 128. C'est vrai aussi bien pour une carte de taille 0 couvrant 128 blocs que pour une carte de taille 4 couvrant 2 048 blocs — le nombre de pixels ne change jamais. Tout le reste concernant l'art sur carte découle de ce seul fait.

L'octet se divise en deux

Chacun de ces 16 384 octets n'est pas une couleur. C'est une couleur de base et une nuance regroupées :

baseColorId = colorId >> 2      // 0–63
shadeIndex  = colorId & 3       // 0–3

Les deux bits de poids faible correspondent donc à la luminosité, et le reste indique le bloc que vous regardez. Avec 61 couleurs de base définies (l'id 0 étant l'emplacement transparent/non exploré), l'octet le plus élevé qu'une vraie carte peut contenir est 61 × 4 + 3 = 247.

61 × 4 = 244 couleurs distinctes, ce qui constitue la palette entière disponible pour l'art sur carte. Pas 61, et pas 256.

Une seule nuance correspond à la valeur pleine de la couleur

Les quatre multiplicateurs ne sont pas répartis uniformément, et l'un d'eux vaut 1,0 :

indice de nuancemultiplicateuren pourcentage
0180 / 25570,6 %
1220 / 25586,3 %
2255 / 255100 %
3135 / 25552,9 %

La nuance 2 est le RVB propre de la couleur de carte, non mis à l'échelle — une valeur fixe par id de couleur, et non échantillonnée depuis la texture du bloc. Les trois autres en sont des versions plus sombres, et la plus sombre — la nuance 3 — ne dépasse que de peu la moitié de la luminosité.

C'est pourquoi l'art sur carte en escalier est si différent d'un art plat. Une construction plate ne produit que la nuance normale (86 %), donc une carte plate dispose de 61 couleurs. En faisant varier la hauteur, on débloque les nuances plus claires et plus sombres de chaque bloc et on atteint 183. La palette ne s'élargit pas — vous n'obtenez aucune nouvelle teinte — elle gagne trois fois plus de profondeur en valeur, ce qui est exactement ce dont le tramage a besoin. La quatrième nuance (53 %) n'est jamais produite à partir de blocs : elle existe dans le format d'octet, et seul un fichier de carte modifié l'utilise.

Notez aussi que l'ordre des nuances n'est pas monotone : l'indice 3 est le plus sombre, pas le plus clair. Trier par indice en espérant un dégradé vous donne 71 %, 86 %, 100 %, 53 %.

La taille multiplie la surface, jamais la résolution

Le champ scale va de 0 à 4, et la surface couverte est de 128 × 2^scale blocs de côté :

tailleblocs couvertsun pixel de carte représente
0128 × 1281 bloc
1256 × 2562 × 2 blocs
2512 × 5124 × 4 blocs
31 024 × 1 0248 × 8 blocs
42 048 × 2 04816 × 16 blocs — exactement un chunk

Une carte de taille 4 couvre 256 fois la surface d'une carte de taille 0 avec les mêmes 16 384 octets. C'est toute la raison pour laquelle l'art sur carte doit être construit en taille 0 : à n'importe quel autre zoom, un pixel est une moyenne de plusieurs blocs et l'image que vous avez soigneusement placée est rééchantillonnée et perdue.

La ligne de la taille 4 mérite d'être retenue pour une autre raison — un pixel correspond précisément à un chunk, ce qui fait d'une carte entièrement zoomée une grille de chunks utilisable.

Ce que cela implique pour un fichier corrompu

Si un fichier de carte (data/minecraft/maps/<id>.dat dans le dossier du monde) possède un tableau colors qui ne fait pas 16 384 octets, ce n'est pas une carte avec des pixels manquants : le jeu charge quand même la carte mais jette les pixels et l'affiche vide. Il n'existe pas de forme à longueur partielle. Le tableau est toujours de taille complète, les zones non explorées étant stockées comme id de couleur 0 plutôt qu'omises.

Extracteur de cartes en PNG →

Plus de guides

Tout voir →