MC GUI Designer

Ein Font-Generator, der das Ergebnis zeigt

Eine eigene Minecraft-Font ist eine JSON-Datei, ein paar PNGs und drei Zahlen je Glyphe. Diese Zahlen richtig zu bekommen ist die ganze Arbeit - und zum Nachsehen gab es bisher nur das Spiel.

Die drei Zahlen

Ein Bitmap-Provider erklärt die Höhe, in der eine Glyphe gezeichnet wird, den Ascent, der sie über die Grundlinie hebt, und bekommt aus der Tinte in seiner Zelle einen Advance. Höhe und Ascent wählst du; der Advance folgt aus der Textur, plus einen Pixel Abstand, den der Client hinter jede Glyphe legt.

Eine Regel zerlegt dabei alles: der Ascent darf die Höhe nicht überschreiten. Eine Glyphe, die über ihrem eigenen Kasten schweben würde, lässt den Client die ganze Font verwerfen - nicht diese Glyphe, die Font. Der Editor exportiert das nicht, sondern bietet an, die Textur nach unten zu verlängern.

Negativer Leerraum, und warum er hier kein Trick ist

Etwas nach links zu schieben heißt: eine Glyphe mit negativem Advance. Der Editor baut die Leerzeichentabelle und wählt die Zeichen; du setzt das Bild dorthin, wo es hingehört, und die Offsets folgen daraus.

Weil Layout und Export derselbe Code sind, stehen in der Component genau die Leerzeichen, mit denen die Vorschau gezeichnet hat. Es gibt keine zweite Rechnung, die anderer Meinung sein könnte.

Codepoints, die sich nicht in die Quere kommen

Codepoints werden je Projekt aus dem privaten Bereich vergeben, und der Vorrat gehört dem Projekt und nicht dem Modul - zwei Module in derselben Font gäben sonst dasselbe Zeichen zweimal aus.

Beim Import eines bestehenden Packs wird jeder schon belegte Codepoint eingelesen, bevor ein einziger neuer vergeben wird.

Was eine Font-Datei allein nicht sagt

Dass der Titel drei Pixel zu breit ist. Dass fett die Leerzeichen gedehnt hat. Dass das Symbol im Chat mit der Zeile darunter kollidiert. Ein Generator, der die JSON korrekt schreibt, kann dir trotzdem einen Entwurf geben, der im Spiel falsch aussieht - wohin das führt, steht unter Offsets von Hand.

PNG hineinziehen, Höhe setzen, und Ascent und Advance am Entwurf ablesen statt aus einer Formel.

Editor öffnen Läuft im Browser. Nichts zu installieren.