Up to date
This page is up to date for Godot 4.2
.
If you still find outdated information, please open an issue.
Verwenden von Schriftarten¶
In Godot können Sie bestimmte Schriftarten für verschiedene UI-Nodes festlegen.
Es gibt drei verschiedene Stellen, an denen Sie die Verwendung von Schriften einstellen können. Der erste ist der Theme-Editor. Wählen Sie den Node, für den Sie die Schriftart festlegen möchten, und wählen Sie den Tab Schriftart. Der zweite ist im Inspektor für Control-Nodes unter Theme Überschreibungen> Fonts. Und schließlich im Inspektor für die Einstellungen von Themes unter Default-Schriftart.
Wenn nirgends eine Schriftartüberschreibung angegeben wird, wird Open Sans SemiBold als Default-Projektschriftart verwendet.
Bemerkung
Seit Godot 4.0 werden die Schriftgrößen nicht mehr in der Schriftart selbst, sondern in dem Node definiert, der die Schriftart verwendet. Dies geschieht im Abschnitt Theme-Überschreibungen > Schriftgrößen des Inspektors.
Dadurch kann die Schriftgröße geändert werden, ohne dass die Schriftressource für jede unterschiedliche Schriftgröße dupliziert werden muss.
Es gibt 2 Arten von Schriftdateien: dynamische (TTF/OTF/WOFF/WOFF2-Formate) und Bitmap (BMFont .fnt
-Format oder monospaced image). Dynamische Schriftarten werden am häufigsten verwendet, da sie in der Größe verändert werden können und auch in größeren Formaten noch klar und deutlich aussehen. Dank ihres vektorbasierten Charakters können sie auch viel mehr Glyphen enthalten und dabei eine vernünftige Dateigröße im Vergleich zu Bitmap-Schriften beibehalten. Dynamische Schriftarten unterstützen auch einige fortgeschrittene Funktionen, die Bitmap-Schriftarten nicht unterstützen können, wie z.B. Ligaturen (mehrere Zeichen, die sich in ein einziges separates Design verwandeln).
Tipp
Sie können frei lizenzierte Schriftdateien auf Websites wie Google Fonts und Font Library finden.
Schriftarten unterliegen dem Urheberrecht. Überprüfen Sie die Lizenz einer Schriftart, bevor Sie sie verwenden, da nicht alle Schriftarten die kommerzielle Nutzung ohne den Erwerb einer Lizenz erlauben.
Siehe auch
Sie können sehen, wie Schriftarten in Aktion funktionieren, indem Sie das BiDI and Font Features demo project verwenden.
Dynamische Schriftarten¶
Godot unterstützt die folgenden dynamischen Schriftformate:
TrueType-Schriftart oder -Collection (
.ttf
,.ttc
)OpenType Schriftart oder -Collection (
.otf
,.otc
)Web Open Font Format 1 (
.woff
)Web Open Font Format 2 (
.woff2
, ab Godot 3.5)
Obwohl .woff
und vor allem .woff2
tendenziell zu kleineren Dateigrößen führen, gibt es kein allgemein "besseres" Schriftformat. In den meisten Fällen ist es empfehlenswert, das Schriftformat zu verwenden, das auf der Website des Schriftart-Entwicklers angeboten wird.
Bitmap-Schriftarten¶
Godot unterstützt das BMFont (.fnt
) Bitmap-Schriftformat. Dieses Format wurde von dem Programm BMFont erstellt. Es gibt auch viele BMFont-kompatible Programme, wie BMGlyph.
Alternativ können Sie auch ein beliebiges Bild importieren, das als Bitmap-Schriftart verwendet werden soll. Dies wird nur für Monospaced-Schriftarten unterstützt (Schriftarten, bei denen jedes Zeichen die gleiche Breite hat). Wählen Sie dazu das Bild im "Dateisystem"-Dock aus, wechseln Sie zum "Importieren"-Dock, ändern Sie den Importtyp in Schriftdaten (Monospace Image Font) und klicken Sie auf Neu importieren:
Das Layout der Schriftart kann in beliebiger Reihenfolge sein, aber es wird empfohlen, eine Reihenfolge zu wählen, die dem Unicode-Standard entspricht, da sie weit weniger Konfiguration für den Import erfordert. Die nachstehende Bitmap-Schriftart enthält zum Beispiel ASCII-Zeichen und folgt der ASCII-Standardreihenfolge:
Die folgenden Importoptionen können verwendet werden, um das obige Schriftart-Bild erfolgreich zu importieren:
Die Option Zeichenbereiche ist ein Array, das jede Position im Bild abbildet (in Kachelkoordinaten, nicht in Pixeln). Der Schriftart-Atlas wird von links nach rechts und von oben nach unten durchlaufen. Zeichen können mit Dezimalzahlen (127
), Hexadezimalzahlen (0x007f
) oder zwischen einfachen Anführungszeichen ('~'
) angegeben werden. Bereiche können mit einem Bindestrich zwischen den Zeichen angegeben werden.
Zum Beispiel bezeichnet 0-127
(oder 0x0000-0x007f
) den gesamten ASCII-Bereich. Ein anderes Beispiel: ' '-'~'
ist gleichbedeutend mit 32-127
und bezeichnet den Bereich der druckbaren (sichtbaren) ASCII-Zeichen.
Stellen Sie sicher, dass die Option Zeichenbereiche die Anzahl der definierten Spalten × Zeilen nicht überschreitet. Andernfalls wird die Schriftart nicht importiert.
Wenn Ihr Schriftart-Bild Ränder enthält, die nicht für Schriftglyphen verwendet werden (wie z.B. Attributinformationen), versuchen Sie, den Bild-Seitenrand anzupassen. Dies ist ein Seitenrand, der nur einmal um das gesamte Bild herum angewendet wird.
Wenn Ihre Schriftart Hilfslinien (in Form von Linien zwischen Glyphen) enthält oder wenn die Abstände zwischen den Zeichen nicht korrekt erscheinen, versuchen Sie, den Zeichen-Seitenrand anzupassen. Dieser Seitenrand wird für jede importierte Glyphe angewendet.
Laden einer Schriftart-Datei¶
Um eine Schriftart-Datei (dynamisch oder als Bitmap) zu laden, verwenden Sie die Option Schnelles Laden oder Laden im Dropdown-Menü der Ressource neben einer Schriftart-Property und navigieren dann zu der betreffenden Schriftart-Datei:
Sie können auch eine Schriftart-Datei aus dem FileSystem-Dock per Drag&Drop auf die Inspektor-Property ziehen, die eine Schriftart-Ressource akzeptiert.
Warnung
In Godot 4.0 und höher werden Texturfilter- und Wiederholungs-Propertys an der Stelle definiert, an der die Textur verwendet wird, und nicht auf der Textur selbst. Dies gilt auch für Schriftarten (sowohl dynamische Schriftarten als auch Bitmap-Schriftarten).
Bei Pixel-Art-Schriftarten, sollte die bilineare Filterung deaktiviert werden, indem die Projekteinstellung Rendering > Texturen > Canvas-Texturen > Default-Texturfilter auf Nearest geändert wird.
Die Größe der Schriftart muss ebenfalls ein ganzzahliges Vielfaches der Designgröße sein (die für jede Schriftart unterschiedlich ist), und der Node, der die Schriftart verwendet, muss ebenfalls um ein ganzzahliges Vielfaches skaliert werden. Andernfalls kann die Schriftart unscharf aussehen. Schriftarten in Godot werden in Pixeln (px) und nicht in Punkten (pt) angegeben. Beachten Sie dies, wenn Sie Schriftarten in verschiedenen Programmen vergleichen.
Der Texturfiltermodus kann auch für einzelne Nodes festgelegt werden, die von CanvasItem erben, indem CanvasItem.texture_filter gesetzt wird.
Umrisse und Schatten von Schriftarten¶
Umrisse und Schatten von Schriftarten können verwendet werden, um die Lesbarkeit zu verbessern, wenn die Hintergrundfarbe nicht im Voraus bekannt ist. Dies ist zum Beispiel bei HUD-Elementen der Fall, die über eine 2D/3D-Szene gezeichnet werden.
Schriftarten sind in den meisten Nodes verfügbar, die sich von Control ableiten, zusätzlich zu Label3D.
Um die Umrisslinie für eine Schriftart auf einem bestimmten Node zu aktivieren, konfigurieren Sie die Theme-Overrides Font Outline Color und Outline Size im Inspektor. Das Ergebnis sollte wie folgt aussehen:
Bemerkung
Wenn Sie eine Schriftart mit MSDF-Rendering verwenden, muss die Importoption MSDF-Pixelbereich mindestens auf den zweifachen Wert der Umrissgröße eingestellt werden, damit die Umrisse korrekt wiedergegeben werden. Andernfalls kann es sein, dass der Umriss früher als beabsichtigt abgeschnitten wird.
Die Unterstützung für Schriftart-Schatten ist eingeschränkter: Sie sind nur in Label und RichTextLabel verfügbar. Außerdem haben Schriftarten-Schatten immer eine harte Kante (aber Sie können ihre Deckkraft reduzieren, um sie dezenter aussehen zu lassen). Um Schriftart-Schatten auf einem bestimmten Node zu aktivieren, konfigurieren Sie die Theme-Overrides Schattenfarbe, Schattenversatz X und Schattenversatz Y in einem Label- oder RichTextLabel-Node entsprechend:
Das Ergebnis sollte wie folgt aussehen:
Tipp
Sie können lokale Überschreibungen für die Anzeige von Schriftarten in Label-Nodes erstellen, indem Sie eine LabelSettings-Ressource erstellen, die Sie in allen Label-Nodes wiederverwenden. Diese Ressource hat Vorrang vor Theme-Propertys.
Erweiterte Schriftart-Funktionen¶
Antialiasing¶
Sie können einstellen, wie die Schriftart beim Rendern geglättet werden soll, indem Sie Antialiasing und Hinting einstellen. Dies sind unterschiedliche Propertys mit unterschiedlichen Anwendungsfällen.
Antialiasing steuert, wie die Glyphkanten beim Rastern der Schriftart geglättet werden sollen. Die Default-Antialiasing-Methode (Graustufen) funktioniert auf allen Anzeigetechnologien gut. Bei kleinen Größen kann das Graustufen-Antialiasing jedoch dazu führen, dass Schriftarten unscharf aussehen.
Die Antialiasing-Schärfe kann durch die LCD-Subpixel-Optimierung verbessert werden, die das Subpixelmuster der meisten LCD-Displays ausnutzt, indem sie das Antialiasing der Schriftart pro Kanal (Rot/Grün/Blau) ausgleicht. Der Nachteil ist, dass dies zu "Fringing" an den Rändern führen kann, insbesondere bei Display-Technologien, die keine Standard-RGB-Subpixel verwenden (wie OLED-Displays).
Für die meisten Spiele wird empfohlen, die Default-Antialiasing-Funktion Graustufen zu verwenden. Für Anwendungen, die keine Spiele sind, ist die LCD-Subpixel-Optimierung eine Überlegung wert.
Bemerkung
Antialiasing kann bei MSDF-gerenderten Schriftarten nicht geändert werden - diese werden immer mit Graustufen-Antialiasing gerendert.
Hinting¶
Hinting steuert, wie aggressiv die Glyphenkanten beim Rastern der Schriftart an Pixeln einrasten sollen. Keine ergibt das glatteste Erscheinungsbild, was die Schriftart bei kleinen Größen unscharf erscheinen lassen kann. Leicht (Default) ist schärfer, da die Glyphenkanten nur auf der Y-Achse an Pixeln ausgerichtet werden, während Voll noch schärfer ist, da die Glyphenkanten sowohl auf der X- als auch auf der Y-Achse an Pixeln ausgerichtet werden. Je nach persönlicher Vorliebe kann es sein, dass Sie einen der beiden Hinting-Modi dem anderen vorziehen.
Bemerkung
Wenn die Änderung des Hinting-Modus nach dem Klicken auf Neu importieren keine sichtbaren Auswirkungen hat, liegt das in der Regel daran, dass die Schriftart keine Hinting-Anweisungen enthält. Dies kann behoben werden, indem Sie nach einer Version der Schriftart suchen, die Hinting-Anweisungen enthält, oder indem Sie Autohinting erzwingen im Import-Dock aktivieren. Dadurch wird das Autohinting von FreeType verwendet, um automatisch Hinting-Anweisungen in die importierte Schriftart einzufügen.
Subpixel-Positionierung¶
Die Subpixel-Positionierung kann angepasst werden. Dies ist eine Funktion von FreeType, die es ermöglicht, Glyphen näher an ihrer beabsichtigten Form zu rendern. Mit der Default-Einstellung Auto wird die Subpixel-Positionierung bei kleinen Schriftarten automatisch aktiviert, bei großen Schriftarten jedoch deaktiviert, um die Rasterungs-Performance zu verbessern.
Sie können den Subpixel-Positionierungsmodus auf Deaktiviert, Halbes Pixel oder Viertel-Pixel einstellen. Ein Viertel-Pixel bietet die beste Qualität, allerdings auf Kosten längerer Rasterungszeiten.
Die Änderung von Antialiasing, Hinting und Subpixel-Positionierung wirkt sich am deutlichsten bei kleineren Schriftarten aus.
Warnung
Bei Pixel-Art-Schriftarten sollte der Subpixel-Positionierungsmodus auf Deaktiviert eingestellt sein. Andernfalls kann es vorkommen, dass die Schriftart ungleichmäßige Pixelgrößen aufweist.
Dieser Schritt ist für Bitmap-Schriftarten nicht erforderlich, da die Subpixelpositionierung nur für dynamische Schriftarten (die in der Regel aus Vektorelementen bestehen) relevant ist.
Mipmaps¶
Standardmäßig werden bei Schriftarten keine Mipmaps erzeugt, um den Speicherbedarf zu verringern und die Rasterung zu beschleunigen. Dies kann jedoch dazu führen, dass herunterskalierte Schriftarten körnig werden. Dies kann besonders bei 3D-Text auffallen, bei dem Feste Größe nicht aktiviert ist. Dies kann auch auftreten, wenn Text mit einer traditionell gerasterten (nicht MSDF) Schriftart in einem Control-Node angezeigt wird, dessen Skala kleiner als (1, 1)
ist.
Nachdem Sie eine Schriftart im Dateisystem-Dock ausgewählt haben, können Sie die Mipmaps im Import-Dock aktivieren, um die Darstellung von herunterskalierten Schriftarten zu verbessern.
Mipmaps können auch für MSDF Schriftarten aktiviert werden. Dies kann die Qualität der Schriftart bei kleineren als den Default-Größen ein wenig verbessern, aber MSDF-Schriftarten sind bereits von Haus aus resistent gegen Körnigkeit.
MSDF-Schriftart-Rendering¶
Das Rendering Multi-Channel Signed Distance Field (MSDF)-Schriftart-Rendering ermöglicht das Rendern von Schriftarten in beliebiger Größe, ohne dass sie bei Größenänderungen neu gerastert werden müssen.
Das MSDF-Rendern von Schriftarten hat zwei Vorteile gegenüber der herkömmlichen Rasterung von Schriftarten, die Godot standardmäßig verwendet:
Die Schriftart sieht auch bei großen Größen immer klar und deutlich aus.
Beim erstmaligen Rendern von Zeichen bei großen Schriftarten kommt es zu weniger Stutter-Effekten, da keine Rasterung durchgeführt wird.
Die Nachteile des MSDF-Schriftart-Rendering sind:
Höhere Basiskosten für das Rendern von Schriftarten. Auf Desktop-Plattformen macht sich dies in der Regel nicht bemerkbar, kann sich aber auf Low-End-Mobilgeräten bemerkbar machen.
Schriftarten in kleinen Größen sehen aufgrund des fehlenden Hintings nicht so klar aus wie gerasterte Schriftarten.
Das erstmalige Rendern neuer Glyphen bei kleinen Schriftgrößen kann im Vergleich zu traditionellen gerasterten Schriftarten teurer sein. Vorberechnung von Schriftarten kann verwendet werden, um dieses Problem zu lindern.
Die LCD-Subpixel-Optimierung kann für MSDF-Schriftarten nicht aktiviert werden.
Schriftarten mit sich selbst überschneidenden Umrissen werden im MSDF-Modus nicht korrekt wiedergegeben. Wenn Sie Rendering-Probleme bei Schriftarten feststellen, die Sie von Websites wie Google Fonts heruntergeladen haben, versuchen Sie stattdessen, die Schriftart von der offiziellen Website des Schriftart-Autors herunterzuladen.
Um das MSDF-Rendering für eine bestimmte Schriftart zu aktivieren, wählen Sie sie im Dateisystem-Dock aus, wechseln Sie zum Import-Dock, aktivieren Sie Multichannel Signed Distance Field und klicken Sie dann auf Neu importieren:
Emojis verwenden¶
Godot verfügt über eine begrenzte Unterstützung für Emoji-Schriftarten:
CBDT/CBLC (eingebettete PNGs) und SVG-Emoji-Schriftarten werden unterstützt.
COLR/CPAL-Emoji-Schriftarten (benutzerdefiniertes Vektorformat) werden nicht unterstützt.
Die EMJC-Bitmap-Bildkomprimierung (die von der iOS-System-Emoji-Schriftart verwendet wird) wird nicht unterstützt. Das bedeutet, dass Sie zur Unterstützung von Emoji unter iOS eine benutzerdefinierte Schriftart verwenden müssen, die stattdessen SVG- oder PNG-Bitmap-Komprimierung verwendet.
Damit Godot Emojis anzeigen kann, muss die verwendete Schriftart (oder eine ihrer Fallbacks) diese enthalten. Andernfalls werden Emojis nicht angezeigt und stattdessen erscheinen "Tofu"-Zeichen als Platzhalter:
Nach dem Hinzufügen einer Schriftart zur Darstellung von Emojis, wie z. B. Noto Color Emoji, erhalten Sie das erwartete Ergebnis:
Um eine reguläre Schriftart zusammen mit Emojis zu verwenden, empfiehlt es sich, in den erweiterten Importoptionen der regulären Schriftart eine Fallback-Schriftart anzugeben, die auf die Emoji-Schriftart verweist. Wenn Sie bei der Anzeige von Emojis die Default-Projektschriftart verwenden möchten, lassen Sie die Property Base Font in FontVariation leer und fügen Sie eine Schriftart als Fallback hinzu, die auf die Emoji-Schriftart verweist:
Tipp
Emoji-Schriftarten sind ziemlich groß, daher sollten Sie eine Systemschriftart laden, um Emoji-Glyphen bereitzustellen, anstatt sie mit Ihrem Projekt zu bündeln. Dies ermöglicht eine vollständige Unterstützung von Emoji in Ihrem Projekt, ohne die Größe des exportierten PCKs zu erhöhen. Der Nachteil ist, dass Emojis je nach Plattform unterschiedlich aussehen, und das Laden von Systemschriftarten wird nicht auf allen Plattformen unterstützt.
Es ist auch möglich, eine Systemschriftart als Fallbackschriftart zu verwenden.
Verwendung von Schriftarten für Symbole¶
Tools wie Fontello können verwendet werden, um Schriftarten zu erzeugen, die aus SVG-Dateien importierte Vektoren enthalten. Dies kann verwendet werden, um benutzerdefinierte Vektorelemente als Teil Ihres Textes zu rendern, oder um extrudierte 3D-Symbole mit 3D-Text und TextMesh zu erstellen.
Bemerkung
Fontello unterstützt derzeit nicht die Erstellung mehrfarbiger Schriftarten (die von Godot wiedergegeben werden können). Ab November 2022 wird die Unterstützung für mehrfarbige Schriftarten in Tools zur Erzeugung von Icon-Schriftarten nur noch spärlich vorhanden sein.
Je nach Anwendungsfall kann dies zu besseren Ergebnissen führen als die Verwendung des img
-Tags in RichTextLabel. Im Gegensatz zu Bitmap-Bildern (einschließlich SVGs, die beim Import durch Godot gerastert werden), können echte Vektordaten ohne Qualitätsverlust auf jede beliebige Größe gebracht werden.
Nachdem Sie die generierte Schriftart-Datei heruntergeladen haben, laden Sie sie in Ihr Godot-Projekt und geben Sie sie als benutzerdefinierte Schriftart für einen Label-, RichTextLabel- oder Label3D-Node an. Wechseln Sie zur Fontello-Weboberfläche und kopieren Sie das Zeichen, indem Sie es auswählen und dann Strg + C (Cmd + C unter macOS) drücken. Fügen Sie das Zeichen in die Text-Property Ihres Label-Nodes ein. Das Zeichen wird als Platzhalterglyphe im Inspektor angezeigt, sollte aber im 2D/3D-Viewport korrekt erscheinen.
Um eine Icon-Schriftart neben einer traditionellen Schriftart im selben Control zu verwenden, können Sie die Icon-Schriftart als fallback angeben. Dies funktioniert, weil Icon-Schriftarten den Unicode-Bereich private use area verwenden, der für die Verwendung durch benutzerdefinierte Schriftarten reserviert ist und von vornherein keine Standardglyphen enthält.
Bemerkung
Mehrere moderne Schriftarten wie Font Awesome 6 haben eine Desktop-Variante, die Ligaturen zur Angabe von Symbolen verwendet. Damit können Sie Icons angeben, indem Sie ihren Namen direkt in die Text-Property eines beliebigen Nodes eingeben, der Schriftarten anzeigen kann. Sobald der Name des Icons vollständig als Text eingegeben wird (z.B. Haus
), wird er durch das Icon ersetzt.
Dieser Ansatz ist zwar einfacher zu handhaben, kann aber nicht mit Schriftarten verwendet werden, die als Fallback verwendet werden, da die Zeichen der Hauptschriftart Vorrang vor den Ligaturen der Fallback-Schriftart haben.
Schriftart-Fallbacks¶
Godot unterstützt die Definition eines oder mehrerer Fallbacks, wenn in der Hauptschriftart eine anzuzeigende Glyphe fehlt. Es gibt 2 Hauptanwendungsfälle für die Definition von Schriftart-Fallbacks:
Verwendung einer Schriftart, die nur lateinische Zeichensätze unterstützt, aber eine andere Schriftart, um Text in einem anderen Zeichensatz wie z.B. Kyrillisch anzeigen zu können.
Verwendung einer Schriftart zur Darstellung von Text und einer anderen Schriftart zur Darstellung von Emojis oder Icons.
Öffnen Sie das Dialogfeld "Erweiterte Importeinstellungen", indem Sie im "Dateisystem"-Dock auf die Schriftart-Datei doppelklicken. Sie können die Schriftart auch im "Dateisystem"-Dock auswählen, zum "Import"-Dock gehen und dann unten Erweitert... wählen:
Suchen Sie in dem daraufhin angezeigten Dialogfeld den Abschnitt Fallbacks in der rechten Seitenleiste, klicken Sie auf den Text Array[Font] (Größe 0), um die Property zu erweitern, und klicken Sie dann auf Element hinzufügen:
Klicken Sie auf den Dropdown-Pfeil des neuen Elements und wählen Sie dann eine Schriftart-Datei mit den Optionen Schnellladen oder Laden:
Es ist möglich, Fallback-Schriftarten hinzuzufügen, während die Default-Schriftart des Projekts verwendet wird. Lassen Sie dazu die Property Basisschriftart leer, während Sie eine oder mehrere Schriftarten als Fallback hinzufügen.
Bemerkung
Fallback-Schriftarten können auch auf lokaler Basis definiert werden, ähnlich wie bei Features der OpenType-Schriftart, aber dies wird hier aus Gründen der Kürze nicht behandelt.
Variable Schriftarten¶
Godot bietet volle Unterstützung für variable Schriftarten, die es Ihnen ermöglichen, eine einzige Schriftart-Datei zu verwenden, um verschiedene Schriftstärken und -stile (normal, fett, kursiv, ...) darzustellen. Dies muss von der verwendeten Schriftart-Datei unterstützt werden.
Um eine variable Schriftart zu verwenden, erstellen Sie eine Ressource FontVariation an dem Ort, an dem Sie die Schriftart verwenden wollen, und laden Sie dann eine Schriftart-Datei in die FontVariation-Ressource:
Scrollen Sie zum Abschnitt Variation der FontVariation und klicken Sie dann auf den Text Variation Coordinates, um die Liste der Achsen zu erweitern, die angepasst werden können:
Die Anzahl der Achsen, die Sie einstellen können, hängt von der geladenen Schriftart ab. Einige variable Schriftarten unterstützen nur eine Anpassungsachse (typischerweise Gewicht oder Schräge), während andere mehrere Anpassungsachsen unterstützen können.
Hier ist zum Beispiel die Schriftart Inter V mit einem Gewicht von 900
und einer Schräge von -10
:
Tipp
Auch wenn die Namen und Skalen der variablen Schriftarten nicht standardisiert sind, halten sich die Designer von Schriftarten in der Regel an einige gemeinsame Konventionen. Die Gewicht-Achse beispielsweise verwendet typischerweise 400
für die "normale" Schriftart und 700
für die "fette" Schriftart.
Sie können die FontVariation in einer .tres
Ressourcendatei speichern, um sie an anderen Stellen wiederzuverwenden:
Pseudo-Fett und -Kursiv¶
Wenn Sie Text fett oder kursiv schreiben, sehen Sie besser aus, wenn Sie Schriftarten verwenden, die speziell für diesen Zweck entwickelt wurden. Die Abstände zwischen den Glyphen sind bei einer fetten Schriftart gleichmäßiger, und die Form bestimmter Glyphen kann sich bei kursiven Varianten völlig verändern (vgl. "a" und "a").
Echte fette und kursive Schriftarten erfordern jedoch die Auslieferung mehrerer Schriftartendateien, was den Umfang der Distribution erhöht. Eine einzelne variable Schriftart-Datei kann auch verwendet werden, aber diese Datei wird größer sein als eine einzelne nicht-variable Schriftart. Während die Dateigröße bei Desktop-Projekten in der Regel kein Problem darstellt, kann sie bei Mobil-/Web-Projekten, bei denen die Größe der Distribution so gering wie möglich gehalten werden soll, ein Problem darstellen.
Damit fette und kursive Schriftarten angezeigt werden können, ohne dass zusätzliche Schriftarten ausgeliefert werden müssen (oder eine variable Schriftart mit größerem Schriftgrad verwendet wird), unterstützt Godot pseudo-fette und kursive Schriftarten.
Pseudo-Fett und Kursiv wird automatisch in den Tags bold und italic von RichTextLabel verwendet, wenn keine benutzerdefinierten Schriftarten für Fett und/oder Kursiv angegeben sind.
Um Pseudo-Fettschrift zu verwenden, erstellen Sie eine FontVariation-Ressource in einer Property, in der eine Font-Ressource erwartet wird. Setzen Sie Variation > Embolden auf einen positiven Wert, um eine Schriftart fetter zu machen, oder auf einen negativen Wert, um sie weniger fett zu machen. Empfohlene Werte liegen zwischen 0.5
und 1.2
, je nach Schriftart.
Pseudo-Kursivschrift wird durch eine Schrägstellung des Textes erzeugt, die durch eine Änderung der zeichenbezogenen Transformation erreicht wird. Dies ist auch in FontVariation mit der Eigenschaft Variation > Transform möglich. Setzt man die Komponente yx
der Zeichentransformation auf einen positiven Wert, wird der Text kursiv dargestellt. Empfohlene Werte liegen zwischen 0.2
und 0.4
, abhängig von der Schriftart.
Anpassen der Schriftart-Abstände¶
Aus stilistischen Gründen oder zur besseren Lesbarkeit können Sie die Darstellung einer Schriftart in Godot anpassen.
Erstellen Sie eine FontVariation-Ressource in einer Property, in der eine Schriftart-Ressource erwartet wird. Im Abschnitt Variation > Extra-Abstand sind 4 Propertys verfügbar, die positive und negative Werte akzeptieren:
Glyphe: Zusätzliche Abstände zwischen den einzelnen Glyphen.
Abstand: Zusätzliche Abstände zwischen den Wörtern.
Oben: Zusätzlicher Abstand über Glyphen. Dies wird für mehrzeiligen Text, aber auch zur Berechnung der Mindestgröße von Controls wie Label und Button verwendet.
Unten: Zusätzlicher Abstand unter den Glyphen. Dies wird für mehrzeiligen Text, aber auch zur Berechnung der Mindestgröße von Controls wie Label und Button verwendet.
Die Property Variation > Transformieren kann auch eingestellt werden, um Zeichen horizontal oder vertikal zu strecken. Dies geschieht insbesondere durch die Anpassung der Komponenten xx
(horizontale Skalierung) und yy
(vertikale Skalierung). Vergessen Sie nicht, die Glyphenabstände anzupassen, da die Glyphentransformation keinen Einfluss darauf hat, wie viel Platz jede Glyphe im Text einnimmt. Diese Art der ungleichmäßigen Skalierung sollte sparsam eingesetzt werden, da Schriftarten im Allgemeinen nicht für die Darstellung mit Streckung konzipiert sind.
Features der OpenType-Schriftart¶
Godot unterstützt die Aktivierung von OpenType-Schriftarten, die eine standardisierte Möglichkeit darstellen, alternative Zeichen zu definieren, die ein- und ausgeschaltet werden können, ohne dass Schriftartendateien vollständig ausgetauscht werden müssen. Obwohl sie als OpenType-Schriftarten-Features bezeichnet werden, werden sie auch in TrueType- (.ttf
) und WOFF/WOFF2-Schriftarten-Dateien unterstützt.
Die Unterstützung für OpenType-Features hängt stark von der verwendeten Schriftart ab. Einige Schriftarten unterstützen keine OpenType-Features, während andere Schriftarten Dutzende von ein- und ausschaltbaren Funktionen unterstützen können.
Es gibt 2 Möglichkeiten, OpenType-Schriftarten zu verwenden:
Global in einer Schriftart-Datei
Öffnen Sie das Dialogfeld "Erweiterte Importeinstellungen", indem Sie im "Dateisystem"-Dock auf die Schriftart-Datei doppelklicken. Sie können die Schriftart auch im "Dateisystem"-Dock auswählen, zum "Import"-Dock gehen und dann unten Erweitert... wählen:
Suchen Sie in dem daraufhin angezeigten Dialogfeld den Abschnitt Metadatenüberschreibungen > OpenType-Features in der rechten Seitenleiste, klicken Sie auf den Text Features (0 von N gesetzt), um die Property zu erweitern, und klicken Sie dann auf Merkmal hinzufügen:
Bei einer bestimmten Schriftart (FontVariation)
Um eine Schriftart zu verwenden, erstellen Sie eine FontVariation-Ressource, wie Sie es für eine Variable Schriftart tun würden, und laden dann eine Schriftart-Datei in die FontVariation-Ressource:
Scrollen Sie nach unten zum Abschnitt OpenType Features der FontVariation, klicken Sie auf den Text Features (0 of N set), um die Property zu erweitern, klicken Sie dann auf Add Feature und wählen Sie das gewünschte Feature in der Dropdown-Liste aus:
Hier ist zum Beispiel die Schriftart Inter ohne die Funktion Slashed Zero (oben) und mit der aktivierten OpenType-Funktion Slashed Zero (unten):
Sie können Ligaturen und/oder Kerning für eine bestimmte Schriftart deaktivieren, indem Sie OpenType-Funktionen hinzufügen und dann im Inspektor deaktivieren:
System-Schriftarten¶
Warnung
Das Laden von Systemschriftarten wird nur unter Windows, macOS, Linux, Android und iOS unterstützt.
Das Laden von Systemschriftarten unter Android ist jedoch unzuverlässig, da es dafür keine offizielle API gibt. Godot muss sich auf das Parsen von Systemkonfigurationsdateien verlassen, die von Android-Drittanbietern geändert werden können. Dies kann dazu führen, dass das Laden von Systemschriftarten nicht funktioniert.
Systemschriftarten sind eine andere Art von Ressource als importierte Schriftarten.Sie werden nie wirklich in das Projekt importiert, sondern zur Laufzeit geladen.Dies hat 2 Vorteile:
Die Schriftarten sind nicht in der exportierten PCK-Datei enthalten, was zu einer geringeren Dateigröße des exportierten Projekts führt.
Da die Schriftarten nicht in das exportierte Projekt aufgenommen werden, werden Lizenzierungsprobleme vermieden, die auftreten würden, wenn proprietäre Systemschriftarten zusammen mit dem Projekt verteilt würden.
Die Engine verwendet automatisch Systemschriftarten als Ersatzschriftarten, was die Darstellung von CJK-Zeichen und Emoji ermöglicht, ohne dass eine eigene Schriftart geladen werden muss. Es gelten jedoch einige Einschränkungen, wie im Abschnitt Verwendung von Emoji erwähnt.
Erstellen Sie eine Ressource SystemFont an dem Ort, an dem Sie die Systemschriftart verwenden möchten:
Sie können entweder einen oder mehrere Schriftarten explizit angeben (z.B. Arial
), oder den Namen einer Alias-Schriftart angeben, die einer "Standard"-Schriftart für das System entspricht:
Schriftart-Alias |
Windows |
macOS/iOS |
Linux |
Android |
---|---|---|---|---|
|
Arial |
Helvetica |
Verwaltet von fontconfig |
Roboto / Noto Sans |
|
Times New Roman |
Times |
Verwaltet von fontconfig |
Noto Serif |
|
Courier New |
Courier |
Verwaltet von fontconfig |
Droid Sans Mono |
|
Comic Sans MS |
Apple Chancery |
Verwaltet von fontconfig |
Dancing Script |
|
Gabriola |
Papyrus |
Verwaltet von fontconfig |
Droid Sans Mono |
Unter Android wird Roboto für lateinischen/kyrillischen Text und Noto Sans für die Glyphen anderer Sprachen wie CJK verwendet. Bei Android-Distributionen von Drittanbietern kann die genaue Schriftart-Auswahl abweichen.
Wenn Sie mehr als eine Schriftart angeben, wird die erste Schriftart verwendet, die auf dem System gefunden wird (von oben nach unten). Bei Schriftart-Namen und -Aliasen wird auf allen Plattformen nicht zwischen Groß- und Kleinschreibung unterschieden.
Wie bei Schriftart-Variationen können Sie die SystemFont-Anordnung in einer Ressourcendatei speichern, um sie an anderen Stellen wiederzuverwenden.
Denken Sie daran, dass verschiedene Systemschriftarten unterschiedliche Metriken haben. Das bedeutet, dass Text, der auf einer Plattform in ein Rechteck passt, dies auf einer anderen Plattform möglicherweise nicht tut. Reservieren Sie bei der Entwicklung immer etwas zusätzlichen Platz, damit die Labels bei Bedarf weiter ausgedehnt werden können.
Bemerkung
Im Gegensatz zu Windows und macOS/iOS hängt der Satz der Default-Schriftarten unter Linux von der jeweiligen Distribution ab. Das bedeutet, dass auf verschiedenen Linux-Distributionen unterschiedliche Schriftarten für einen bestimmten Systemschriftart-Namen oder -Alias angezeigt werden können.
Es ist auch möglich, Schriftarten zur Laufzeit zu laden, selbst wenn sie nicht auf dem System installiert sind. Siehe Laden und Speichern zur Laufzeit für Details.
Vorberechnung von Schriftarten¶
Bei der Verwendung herkömmlicher gerasterter Schriftarten speichert Godot die Glyphen pro Schriftart und pro Größe zwischen. Dadurch wird das Stuttering reduziert, aber es kann immer noch auftreten, wenn eine Glyphe zum ersten Mal angezeigt wird, wenn das Projekt ausgeführt wird. Dies kann besonders bei höheren Schriftgrößen oder auf mobilen Geräten auffallen.
Bei der Verwendung von MSDF-Schriftarten müssen diese nur einmal in eine spezielle Textur für die Signed Distance Field-Textur gerastert werden. Das bedeutet, dass das Zwischenspeichern nur für jede einzelne Schriftart erfolgen kann, ohne dass die Schriftgröße berücksichtigt werden muss. Allerdings ist das anfängliche Rendering von MSDF-Schriftarten langsamer als das einer herkömmlichen gerasterten Schriftart bei mittlerer Größe.
Um Stuttering-Probleme im Zusammenhang mit dem Rendern von Schriftarten zu vermeiden, ist es möglich, bestimmte Glyphen vorzurendern. Dies kann für alle Glyphen geschehen, die Sie verwenden möchten (für optimale Ergebnisse), oder nur für die gängigen Glyphen, die während des Spiels am häufigsten vorkommen (um die Dateigröße zu verringern). Glyphen, die nicht vorgerendert sind, werden wie üblich in Echtzeit gerastert.
Bemerkung
In beiden Fällen (traditionell und MSDF) wird die Rasterung der Schriftarten von der CPU durchgeführt. Das bedeutet, dass die Performance der GPU keinen Einfluss darauf hat, wie lange die Rasterung der Schriftarten dauert.
Öffnen Sie das Dialogfeld "Erweiterte Importeinstellungen", indem Sie im "Dateisystem"-Dock auf die Schriftart-Datei doppelklicken. Sie können die Schriftart auch im "Dateisystem"-Dock auswählen, zum "Import"-Dock gehen und dann unten Erweitert... wählen:
Wechseln Sie im Dialogfeld Erweiterte Importeinstellungen auf den Prerender-Konfigurationen-Tab und fügen Sie eine Konfiguration hinzu, indem Sie auf das Plus-Symbol klicken:
Nachdem Sie eine Konfiguration hinzugefügt haben, vergewissern Sie sich, dass sie ausgewählt ist, indem Sie einmal auf ihren Namen klicken. Sie können die Konfiguration auch umbenennen, indem Sie auf sie doppelklicken.
Es gibt 2 Möglichkeiten, einer gegebenen Konfiguration Glyphen hinzuzufügen, die vorgerendert werden sollen. Es ist möglich, beide Ansätze kumulativ zu verwenden:
Verwendung von Text aus Übersetzungen
Für die meisten Projekte ist dieser Ansatz der bequemste, da er automatisch Text aus Ihren Sprachübersetzungen bezieht. Der Nachteil ist, dass er nur verwendet werden kann, wenn Ihr Projekt Internationalisierung unterstützt. Andernfalls halten Sie sich an den unten beschriebenen Ansatz "Benutzerdefinierten Text verwenden".
Nachdem Sie die Übersetzungen zu den Projekteinstellungen hinzugefügt haben, verwenden Sie die Glyphen aus dem Tab Übersetzungen, um die Übersetzungen durch Doppelklick zu überprüfen, und klicken Sie dann auf Alle Strings in den Übersetzungen formen und Glyphen hinzufügen am unteren Rand:
Bemerkung
Die Liste der per Prerendering vorberechneten Glyphen wird nicht automatisch aktualisiert, wenn die Übersetzungen aktualisiert werden, so dass Sie diesen Vorgang wiederholen müssen, wenn sich Ihre Übersetzungen wesentlich geändert haben.
Verwendung von benutzerdefiniertem Text
Zwar muss der Text, der im Spiel erscheinen soll, manuell eingegeben werden, doch ist dies der effizienteste Ansatz für Spiele, bei denen keine Texteingabe durch den Benutzer erforderlich ist. Dieser Ansatz ist es wert, für mobile Spiele ausprobiert zu werden, um die Dateigröße der verteilten App zu reduzieren.
Um vorhandenen Text als Basis für das Prerendering zu verwenden, wechseln Sie zum Unter-Tab Glyphen aus dem Text des Dialogfelds Erweiterte Importeinstellungen, geben Sie den Text im Fenster rechts ein und klicken Sie dann unten im Dialogfeld auf Text formen und Glyphen hinzufügen:
Tipp
Wenn Ihr Projekt Internationalisierung unterstützt, können Sie den Inhalt Ihrer CSV- oder PO-Dateien in das obige Feld einfügen, um alle möglichen Zeichen, die während des Spiels gerendert werden können (mit Ausnahme von benutzerdefinierten oder nicht übersetzbaren Strings), schnell per Prerendering vorzuberechnen.
Durch Aktivierung von Zeichensätzen
Die zweite Methode erfordert weniger Konfiguration und weniger Updates, wenn sich der Text Ihres Spiels ändert, und eignet sich besser für textlastige Spiele oder Multiplayer-Spiele mit Chat. Auf der anderen Seite kann es dazu führen, dass Glyphen, die nie im Spiel auftauchen, vorgerendert werden, was in Bezug auf die Dateigröße weniger effizient ist.
Um vorhandenen Text als Basis für das Prerendering zu verwenden, wechseln Sie auf den Unter-Tab Glyphen aus der Zeichentabelle des Dialogfelds Erweiterte Importeinstellungen und doppelklicken Sie dann auf der rechten Seite auf die zu aktivierenden Zeichensätze:
Um ein vollständiges Prerendering zu gewährleisten, hängen die zu aktivierenden Zeichensätze davon ab, welche Sprachen in Ihrem Spiel unterstützt werden. Für Englisch muss nur Basic Latin aktiviert werden. Die Aktivierung von Latin-1 Supplement ermöglicht die vollständige Abdeckung vieler weiterer Sprachen, wie Französisch, Deutsch und Spanisch. Für Russisch muss Kyrillisch aktiviert werden, und so weiter.
Default-Projekt-Propertys für Schriftarten¶
Im Abschnitt GUI > Theme der erweiterten Projekteinstellungen können Sie wählen, wie die Schriftart gerendert werden soll:
Default-Schriftart-Antialiasing: Steuert die Methode antialiasing, die für die Default-Schriftart des Projekts verwendet wird.
Default-Schriftart-Hinting: Steuert die Hinting-Methode, die für die Default-Schriftart des Projekts verwendet wird.
Subpixelpositionierung der Default-Schriftart: Steuert die Methode Subpixelpositionierung für die Default-Projektschriftart.
Default-Schriftart Multichannel Signed Distance Field: Wenn
true
, verwendet die Default-Schriftart des Projekts MSDF-Font-Rendering anstelle der traditionellen Rasterung.Default-Schriftart Mipmaps erzeugen: Wenn
true
, aktiviert Mipmap Erzeugung und Verwendung für die Default-Schriftart des Projekts.
Bemerkung
Diese Projekteinstellungen wirken sich nur auf die Default-Schriftart des Projekts aus (diejenige, die in der Engine-Binärdatei fest einkodiert ist).
Die Propertys der benutzerdefinierten Schriftarten werden stattdessen durch ihre jeweiligen Importoptionen bestimmt. Sie können den Abschnitt Import Defaults im Dialogfeld Projekteinstellungen verwenden, um die Standard-Importoptionen für benutzerdefinierte Schriftarten außer Kraft zu setzen.