MC Toolkit

Guides / Construction et ressources

Associer une couleur à un bloc Minecraft est plus difficile qu'il n'y paraît

Deux blocs peuvent sembler identiques en RVB et complètement différents sur un mur, car le jeu ombre chaque face qu'il affiche.

Choisissez le bloc dont la couleur moyenne est la plus proche de votre cible et vous vous tromperez généralement. Minecraft ne dessine pas un bloc avec la couleur moyenne de sa texture — il multiplie cette texture par une luminosité propre à chaque face, puis par le niveau de lumière à cet endroit. La couleur que vous avez prélevée sur une capture d'écran est déjà le produit de cet ombrage, donc l'injecter directement dans une recherche de couleur la plus proche revient à comparer avec une valeur qu'aucun bloc n'affiche réellement.

Pourquoi la moyenne RVB échoue

La moyenne RVB traite les trois canaux comme également importants et comme s'ils variaient linéairement. Ni l'un ni l'autre n'est vrai. La vision humaine est bien plus sensible aux différences de vert qu'à celles de bleu, et une différence de couleur de même amplitude numérique paraît bien plus grande dans les tons sombres que dans les tons clairs. Deux blocs peuvent se situer à la même distance RVB d'une cible et n'avoir aucun air de ressemblance sur un mur.

CIELAB est conçu précisément pour corriger cela : des distances numériques égales en Lab correspondent, approximativement, à des différences perçues égales. C'est pourquoi un outil de palette peut, en comparant en Lab, suggérer un bloc qui donne réellement l'impression d'avoir la bonne couleur plutôt qu'un bloc qui partage simplement un code hexadécimal.

La texture n'est pas d'une seule couleur

Une texture de bloc est un carré de pixels, et la plupart ne sont pas uniformes. Une texture 16×16 contient 256 pixels, et une roche bruitée ou une texture de feuillage tachetée s'étale sur une large gamme de tons. La réduire à une seule moyenne jette la variance — c'est-à-dire précisément ce qui détermine si une mosaïque paraît lisse ou mouchetée. Le comparateur de palette mesure la couleur moyenne de chaque bloc à partir des vrais fichiers de texture et la compare en CIELAB. Cela règle le problème du RVB, mais pas celui-ci, donc vérifiez à l'œil un bloc bruité avant d'y consacrer une grande surface.

Java et Bedrock divergent ici

Les deux éditions ne proposent pas des textures identiques, et elles n'ombrent pas de la même façon. Java applique une luminosité directionnelle par face et une teinte de biome via son propre pipeline ; Bedrock gère la teinte et certaines couleurs de blocs différemment. Une palette qui correspond parfaitement dans une édition peut être visiblement décalée dans l'autre, en particulier pour l'herbe, les feuilles et l'eau. Construisez la palette dans l'édition où vous placez réellement les blocs.

De l'image à la mosaïque

Une mosaïque est une grille, et chaque cellule devient un bloc. Deux conséquences en découlent. Premièrement, l'image doit être sous-échantillonnée à la taille de la grille avant la comparaison, pas après — comparer à pleine résolution puis réduire produit une palette choisie pour un détail qui n'existe plus. Deuxièmement, le résultat est un .mcfunction, donc toute la construction est placée par commande plutôt qu'à la main. Le nombre de commandes évolue avec le nombre de cellules, pas avec le nombre de pixels de l'image.

Le piège de la transparence

Les pixels à alpha partiel n'ont pas d'équivalent en un seul bloc, et le comparateur les sépare à la moitié de l'alpha. En dessous, le pixel est ignoré (laissé en air) ou, si vous choisissez le remplissage, devient le bloc le plus sombre de la palette ; à ce seuil ou au-dessus, le pixel est comparé comme s'il était opaque. Le verre n'est pas proposé, donc décidez lequel des deux vous voulez avant d'exporter.

Transformez une image en mosaïque de blocs avec un .mcfunction prêt à l'emploi, ou trouvez le bloc vanilla le plus proche de n'importe quelle couleur, dans les Outils de pixel art et de palette de blocs.

Pixel art et palette de blocs →

Plus de guides

Tout voir →