Anleitungen / Bauen & Ressourcen
Eine Farbe einem Minecraft-Block zuzuordnen ist schwieriger, als es aussieht
Zwei Blöcke können in RGB identisch aussehen und an einer Wand völlig unterschiedlich wirken, weil das Spiel jede gerenderte Fläche schattiert.
Wählt man den Block, dessen Durchschnittsfarbe der eigenen Zielblock-Farbe am nächsten kommt, liegt man meistens falsch. Minecraft zeichnet einen Block nicht als Durchschnittsfarbe seiner Textur — es multipliziert diese Textur mit einer Helligkeit pro Fläche und dann mit dem Lichtblock-Level an dieser Position. Die Farbe, die man aus einem Screenshot entnommen hat, ist bereits das Produkt dieser Schattierung. Sie direkt in eine Nächstfarben-Suche einzuspeisen, vergleicht sie also mit einem Wert, den kein Block tatsächlich anzeigt.
Warum Durchschnitts-RGB versagt
Durchschnitts-RGB behandelt die drei Kanäle als gleich wichtig und als ob sie linear verliefen. Beides stimmt nicht. Das menschliche Sehen ist weit empfindlicher für Unterschiede bei Grün als bei Blau, und ein Farbunterschied gleicher numerischer Größe wirkt in dunklen Tönen viel größer als in hellen. Zwei Blöcke können denselben RGB-Abstand zu einem Zielblock haben und an einer Wand trotzdem völlig unterschiedlich aussehen.
CIELAB wurde genau dafür entwickelt: Gleiche numerische Abstände in Lab entsprechen ungefähr gleichen wahrgenommenen Unterschieden. Das Abgleichen in Lab ist der Grund, warum ein Palettenwerkzeug einen Block vorschlagen kann, der tatsächlich als die richtige Farbe gelesen wird, statt einen, der bloß denselben Hex-Code teilt.
Die Textur ist nicht eine Farbe
Eine Blocktextur ist ein Quadrat aus Pixeln, und die meisten sind nicht einfarbig. Eine 16×16-Textur enthält 256 Pixel, und eine verrauschte Stein- oder eine gefleckte Blatt-Textur verteilt sich über eine breite Palette von Tönen. Sie auf einen einzigen Durchschnitt zu reduzieren, wirft die Varianz weg — also genau den Teil, der entscheidet, ob ein Mosaik glatt oder gesprenkelt wirkt. Der Palettenabgleicher misst die Durchschnittsfarbe jedes Blocks aus den echten Texturdateien und vergleicht sie in CIELAB. Das behebt das RGB-Problem, aber nicht dieses, also prüfe einen verrauschten Block mit dem Auge, bevor du ihm eine große Fläche widmest.
Java und Bedrock gehen hier auseinander
Die beiden Editionen liefern keine identischen Texturen aus, und sie schattieren nicht identisch. Java wendet gerichtete Flächenhelligkeit und Biom-Tönung über seine eigene Pipeline an; Bedrock handhabt Tönung und einige Blockfarben anders. Eine Palette, die in der einen Edition perfekt passt, kann in der anderen sichtbar danebenliegen, besonders bei Gras, Blättern und Wasser. Baue die Palette in der Edition, in der du tatsächlich Blöcke setzt.
Vom Bild zum Mosaik
Ein Mosaik ist ein Raster, und jede Zelle wird zu einem Block. Daraus folgt zweierlei. Erstens muss das Bild vor dem Abgleichen auf die Rastergröße herunterskaliert werden, nicht danach — ein Abgleich in voller Auflösung und anschließendes Verkleinern erzeugt eine Palette, die für Details gewählt wurde, die es nicht mehr gibt. Zweitens ist die Ausgabe ein .mcfunction, also wird der ganze Bau per Befehl gesetzt statt von Hand. Die Befehlsanzahl skaliert mit der Zellenzahl, nicht mit der Pixelzahl des Bildes.
Die Transparenzfalle
Pixel mit teilweiser Alpha haben kein einzelnes Block-Äquivalent, und der Abgleicher trennt sie bei halber Alpha. Darunter wird das Pixel übersprungen (als Luft belassen) oder, wenn du Füllen wählst, zum dunkelsten Block der Palette; ab diesem Wert wird das Pixel abgeglichen, als wäre es undurchsichtig. Glas wird nicht angeboten, also entscheide vor dem Export, welche der beiden Varianten du willst.
Verwandle ein Bild mit einem fertigen .mcfunction in ein Blockmosaik, oder finde den Vanilla-Block, der einer beliebigen Farbe am nächsten kommt, in den Pixel Art & Block Palette.