MC Toolkit

Guias / Construção e recursos

Um pixel de mapa é um byte, e dois de seus bits são o brilho

61 cores base × 4 tons = 244 cores de um array de 16.384 bytes. Apenas um dos quatro tons é a cor real do bloco; os outros três são escurecidos para 86%, 71% e 53%.

Todo mapa preenchido no Minecraft tem o mesmo tamanho em disco: um array de bytes colors com exatamente 16.384 entradas, que é 128 × 128. Isso vale para um mapa de escala 0 que cobre 128 blocos e para um mapa de escala 4 que cobre 2.048 blocos — a contagem de pixels nunca muda. Todo o resto sobre a arte de mapas decorre desse único fato.

O byte se divide em dois

Cada um desses 16.384 bytes não é uma cor. É uma cor base e um tom empacotados juntos:

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

Assim, os dois bits de menor valor são o brilho e o restante indica qual bloco você está olhando. Com 61 cores base definidas (o ID 0 é o slot transparente/inexplorado), o byte de maior valor que um mapa real contém é 61 × 4 + 3 = 247.

61 × 4 = 244 cores distintas, que é a paleta completa disponível para a arte de mapas. Não 61, e não 256.

Apenas um tom é a cor real do bloco

Os quatro multiplicadores não são igualmente espaçados, e um deles é 1.0:

índice do tommultiplicadorem porcentagem
0180 / 25570,6%
1220 / 25586,3%
2255 / 255100%
3135 / 25552,9%

O tom 2 é a cor da textura do bloco, intocada. Os outros três são versões mais escuras dela, e o mais escuro — tom 3 — tem pouco mais da metade do brilho.

É por isso que a arte de mapa em escadaria parece tão diferente de uma arte plana. Uma construção plana só pode produzir um desses quatro por bloco, então um mapa plano tem 61 cores disponíveis. Variar a altura desbloqueia os outros três tons de cada bloco e leva você a 244. A paleta não fica mais ampla — você não obtém novas tonalidades — ela fica quatro vezes mais profunda em valor, que é exatamente o que o dithering precisa.

Observe também que a ordem dos tons não é monotônica: o índice 3 é o mais escuro, não o mais brilhante. Ordenar por índice e esperar um gradiente resulta em 71%, 86%, 100%, 53%.

A Escala multiplica a área, nunca a resolução

O campo scale varia de 0 a 4, e o terreno que ele cobre é de 128 × 2^scale blocos de lado:

escalablocos cobertosum pixel de mapa é
0128 × 1281 bloco
1256 × 2562 × 2 blocos
2512 × 5124 × 4 blocos
31.024 × 1.0248 × 8 blocos
42.048 × 2.04816 × 16 blocos — exatamente um chunk

Um mapa de escala 4 cobre 256 vezes a área de um mapa de escala 0 usando os mesmos 16.384 bytes. Essa é a razão pela qual a arte de mapa precisa ser construída na escala 0: em qualquer outro zoom, um pixel é uma média de vários blocos e a imagem que você cuidadosamente colocou é reamostrada.

A linha da escala 4 vale a pena ser lembrada por uma razão diferente — um pixel é precisamente um chunk, o que torna um mapa totalmente ampliado uma grade de chunks utilizável.

O que isso significa para um arquivo corrompido

Se um map_<id>.dat tem um array colors que não é de 16.384 bytes, não é um mapa com pixels faltando — não é um mapa legível de forma alguma. Não existe uma forma de comprimento parcial. O array é sempre de tamanho completo, com áreas inexploradas armazenadas como ID de cor 0 em vez de omitidas.

Extrator de mapas em PNG →

Mais guias

Ver todos →

Procurando mais ferramentas de Minecraft?

Um conjunto de geradores, visualizadores e conversores que rodam no navegador — tudo grátis.