Attention: Here be dragons
This is the latest
(unstable) version of this documentation, which may document features
not available in or compatible with released stable versions of Godot.
Checking the stable version of the documentation...
Utilizzare i font
Godot consente di impostare font specifici per diversi nodi dell'interfaccia utente.
Ci sono tre modi diversi per configurare l'utilizzo dei font. Il primo è tramite l'editor di temi. Scegliere il nodo per cui si desidera impostare il font e selezionare la scheda Font. Il secondo è nell'ispettore per i nodi di controllo in Sostituzioni del tema > Font. Infine, nelle impostazioni dell'ispettore per i temi sotto Font predefinito.
Se nessun font sostitutivo è specificato da nessuna parte, Open Sans SemiBold è utilizzato come font predefinito del progetto.
Nota
A partire da Godot 4.0, le dimensioni dei font non sono più definite nel font stesso, ma nel nodo che lo utilizza. Si trova nella sezione Sostituzioni del tema > Dimensioni dei font nell'Ispettore.
Ciò permette di cambiare la dimensione dei font senza dover duplicare la risorsa font per ogni dimensione diversa.
Esistono due tipi di file di font: dinamici (formati TTF/OTF/WOFF/WOFF2) e bitmap (formato BMFont .fnt o immagine a spaziatura fissa). I font dinamici sono l'opzione più comunemente utilizzata, poiché si possono ridimensionare mantenendo un aspetto nitido anche a dimensioni maggiori. Grazie alla loro natura vettoriale, possono contenere molti più glifi pur mantenendo una dimensione di file ragionevole rispetto ai font bitmap. I font dinamici supportano anche alcune funzionalità avanzate non disponibili per i font bitmap, come le legature (più caratteri che si trasformano in un unico disegno diverso).
Suggerimento
È possibile trovare file di font con licenza libera su siti web come Google Fonts e Font Library.
I font sono coperti da copyright. Controlla attentamente la licenza di un font prima di utilizzarlo, poiché non tutti i font consentono l'uso commerciale senza l'acquisto di una licenza.
Vedi anche
È possibile osservare il funzionamento dei font in azione attraverso il progetto demo BiDI and Font Features.
Font dinamici
Godot supporta i seguenti formati di font dinamici:
Font o raccolta TrueType (
.ttf,.ttc)Font o raccolta OpenType (
.otf,.otc)Web Open Font Format 1 (
.woff)Web Open Font Format 2 (
.woff2)
Sebbene .woff e soprattutto .woff2 tendano a generare file più piccoli, non esiste un formato di font universalmente "migliore". In gran parte delle situazioni, si consiglia di utilizzare il formato di font fornito sul sito web dello sviluppatore del font.
Font bitmap
Godot supporta il formato di font bitmap BMFont (.fnt). È un formato creato dal programma BMFont. Esistono anche molti programmi compatibili con BMFont, come BMGlyph o il programma sul web fontcutter.
Alternativamente, è possibile importare qualsiasi immagine da utilizzare come font bitmap. Per farlo, selezionare l'immagine nel pannello FileSystem, andare al pannello Importazione, cambiare il tipo di importazione in Font Data (Image Font) e cliccare su Reimporta:
Cambio del tipo di importazione in Font Data (Image Font)
L'insieme di caratteri del font si può disporre in qualsiasi ordine, ma si consiglia di usare l'ordinamento Unicode standard, poiché richiede una configurazione molto più semplice da importare. Ad esempio, il font bitmap qui sotto contiene caratteri ASCII e segue l'ordinamento ASCII standard:
Crediti: LibreQuake (ridimensionato e ritagliato per escludere l'intervallo esteso)
Per importare correttamente l'immagine del font riportato sopra, è possibile utilizzare le seguenti opzioni di importazione:
Opzioni di importazione da utilizzare per il font di esempio riportato sopra
L'opzione Intervalli di caratteri è un array che mappa ogni posizione sull'immagine (in coordinate di cella, non in pixel). L'atlante dei caratteri viene percorso da sinistra a destra e dall'alto verso il basso. I caratteri si possono specificare con numeri decimali (127), numeri esadecimali (0x007f) o tra virgolette singole ('~'). Gli intervalli si possono specificare con un trattino tra i caratteri.
Ad esempio, 0-127 (o 0x0000-0x007f) indica l'intero intervallo ASCII. Come altro esempio, ' '-'~' è equivalente a 32-127 e indica l'intervallo di caratteri ASCII stampabili (visibili).
Assicurati che l'opzione Intervalli di caratteri non superi il numero di Colonne × Righe definite. Altrimenti, non sarà possibile importare il font.
Se l'immagine del tuo font contiene margini non utilizzati per i glifi del font (come le informazioni di attribuzione), prova a regolare il Margine d'immagine. È un margine applicato una sola volta attorno all'intera immagine.
Se l'immagine del font contiene delle guide (sotto forma di linee tra i glifi) o se la spaziatura tra i caratteri appare errata, prova a regolare Margine di carattere. Questo margine è applicato per ogni glifo importato.
Se hai bisogno di un controllo più preciso sulla spaziatura dei caratteri rispetto a quello fornito dalle opzioni Margine di carattere, hai a disposizione più opzioni.
Primo, Intervalli di caratteri supporta 3 argomenti aggiuntivi dopo l'intervallo di caratteri specificato. Tali argomenti controllano il posizionamento e la spaziatura. Rappresentano l'avanzamento di spazio, lo scostamento sull'asse X e lo scostamento sull'asse Y, in quest'ordine. Modificano l'avanzamento e lo scostamento di ciascun carattere in base alla quantità di pixel scritti. L'avanzamento di spazio è particolarmente utile se, ad esempio, le lettere minuscole sono più sottili di quelle maiuscole.
Tieni presente che gli scostamenti potrebbero far troncare il testo oltre il bordo dei confini di un'etichetta.
Secondo, puoi anche impostare Coppie di crenatura per i singoli caratteri. Specifica la coppia di crenatura digitando due serie di caratteri, separate da uno spazio, seguite da un altro spazio, e da un numero per specificare quanti pixel in più/meno devono essere lontane le due serie di caratteri quando sono posizionate una accanto all'altra.
Se necessario, è possibile specificare i caratteri della coppia di crenatura tramite codici carattere Unicode inserendo \uXXXX dove XXXX è il valore esadecimale del carattere Unicode.
Caricare un file di font
Per caricare un file di font (dinamico o bitmap), utilizza l'opzione Carica rapida o Carica del menu a discesa delle risorse accanto a una proprietà del font, quindi andare al file di font in questione:
Caricare un file di font
È anche possibile trascinare e rilasciare un file di font dal pannello Filesystem alla proprietà dell'ispettore che accetta una risorsa Font.
Avvertimento
In Godot 4.0 e versioni successive, le proprietà di filtro e ripetizione delle texture sono definite nel punto in cui viene utilizzata la texture, anziché sulla texture stessa. Questo vale anche per i font (sia dinamici sia bitmap).
Per i font che hanno un aspetto pixel art, si consiglia di disattivare il filtro bilineare cambiando l'impostazione del progetto Rendering > Texture > Texture canvas > Filtro predefinito di texture su Nearest.
Inoltre, la dimensione del font deve essere un multiplo intero della dimensione di progettazione (che varia a seconda del font), e il nodo Control che utilizza il font deve avere una scala di un multiplo intero. Se no, il font potrebbe apparire sfocato. Le dimensioni dei font in Godot sono specificate in pixel (px), non in punti (pt). Tienilo a mente quando confronti le dimensioni dei font tra software diversi.
È possibile impostare la modalità di filtro delle texture anche su singoli nodi che ereditano da CanvasItem impostando CanvasItem.texture_filter.
Contorni e ombre dei font
I contorni e le ombre dei font possono servire per migliorare la leggibilità quando il colore di sfondo non è noto in anticipo. Ad esempio, questo è il caso degli elementi dell'HUD disegnati su una scena 2D/3D.
I contorni dei font sono disponibili nella maggioranza dei nodi che derivano da Control, oltre a Label3D.
Per abilitare il contorno per un font su un determinato nodo, configura le sostituzioni del tema Colore contorno font e Dimensione contorno nell'ispettore. Il risultato dovrebbe apparire così:
Esempio di contorno di un font
Nota
Se si utilizza un font con rendering MSDF, l'opzione di importazione Intervallo di pixel MSDF deve essere impostata almeno il doppio del valore della dimensione del contorno affinché il rendering del contorno sia corretto. Se no, il contorno potrebbe apparire troncato prima del previsto.
Il supporto per le ombre dei font è più limitato: sono disponibili solo in Label e RichTextLabel. Inoltre, le ombre hanno sempre un bordo netto (ma è possibile ridurne l'opacità per renderle più sottili). Per abilitare le ombre dei font su un determinato nodo, configura le sostituzioni del tema Colore dell'ombra del font, Scostamento in X dell'ombra e Scostamento in Y dell'ombra in un nodo Label o RichTextLabel:
Configurare un'ombra di font in un nodo Label
Il risultato dovrebbe apparire simile a questo:
Esempio di ombra di font
Suggerimento
È possibile creare sostituzioni locali per la visualizzazione dei font nei nodi Label creando una risorsa LabelSettings che si potrà riutilizzare in tutti i nodi Label. Questa risorsa ha la priorità sulle proprietà del tema.
Funzionalità avanzate di font
Antialiasing
È possibile regolare come il font deve essere smussato durante il rendering regolando l'antialiasing e l'hinting. Queste sono proprietà diverse, con casi d'uso diversi.
L'antialiasing controlla come i bordi dei glifi vengono smussati durante la rasterizzazione del font. Il metodo di antialiasing predefinito, in scala di grigi (Grayscale), funziona bene su tutte le tecnologie di display. Tuttavia, a piccole dimensioni, l'antialiasing in scala di grigi può far apparire i font sfocati.
È possibile migliorare la nitidezza dell'antialiasing tramite l'ottimizzazione LCD dei subpixel, che sfrutta il motivo dei subpixel della maggioranza dei display LCD compensando l'antialiasing dei font per canale (rosso/verde/blu). Lo svantaggio è che questo può causare "frange" sui bordi, soprattutto su tecnologie di display che non usano subpixel RGB standard (come i display OLED).
Nella maggior parte dei giochi, si consiglia di lasciare l'antialiasing Grayscale predefinito. Per applicazioni che non sono giochi, vale la pena provare l'ottimizzazione dei subpixel LCD.
Dall'alto verso il basso: Disabled, Grayscale, LCD Subpixel (RGB)
Nota
Non è possibile cambiare l'antialiasing sui font renderizzati con MSDF: questi sono sempre renderizzati con l'antialiasing in scala di grigi.
Hinting
L'hinting controlla l'aggressività con cui i bordi dei glifi devono essere allineati ai pixel durante la rasterizzazione del font. None produce l'aspetto più uniforme, che può rendere il font sfocato a piccole dimensioni. Light (predefinito) è più nitido, allineando i bordi dei glifi ai pixel solo sull'asse Y. Full è ancora più nitido, allineando i bordi dei glifi ai pixel sia sull'asse X sia sull'asse Y. A seconda delle preferenze personali, potresti preferire utilizzare una modalità di hinting rispetto all'altra.
Dall'alto verso il basso: hinting None, Light, Full
Nota
Se cambiare la modalità di hinting non produce alcun effetto evidente dopo aver cliccato su Reimporta, solitamente è perché il font non include istruzioni di hinting. Ciò si può risolvere cercando una versione del file del font che includa istruzioni di hinting, oppure abilitando Forza autohinter nel pannello Importazione. Facendo così sarà utilizzato l'hinting automatico di FreeType per aggiungere automaticamente istruzioni di hinting al font importato.
Posizionamento subpixel
È possibile regolare il posizionamento subpixel. Questa è una funzionalità di FreeType che consente di renderizzare i glifi in modo più fedele alla loro forma originale. L'impostazione predefinita Auto abilita automaticamente il posizionamento subpixel per le piccole dimensioni, ma lo disabilita per le dimensioni grandi di font per migliorare le prestazioni di rasterizzazione.
È possibile forzare la modalità di posizionamento subpixel su Disabled, One half of a pixel o One quarter of a pixel. One quarter of a pixel offre la qualità migliore, a scapito di tempi di rasterizzazione più lunghi.
Cambiare l'antialiasing, l'hinting e il posizionamento subpixel ha un effetto più notevole con dimensioni più piccole di font.
Avvertimento
I font con un aspetto da pixel art dovrebbero avere la modalità di posizionamento subpixel impostata su Disabled. Altrimenti, il font potrebbe apparire con dimensioni non uniformi di pixel.
Questo passaggio non è necessario per i font bitmap, poiché il posizionamento subpixel è rilevante solo per i font dinamici (che solitamente sono costituiti da elementi vettoriali).
Mipmap
Normalmente, i font non generano mipmap per ridurre l'utilizzo di memoria e velocizzare la rasterizzazione. Tuttavia, ciò può far apparire granulosi i font rimpiccioliti. Può essere particolarmente evidente con Testo 3D che non ha Fixed Size abilitato. Può avvenire anche quando si visualizza testo con un font rasterizzato tradizionale (non MSDF) in un nodo Control con una scala inferiore a (1, 1).
Dopo aver selezionato un font nel pannello FileSystem, è possibile abilitare le Mipmap nel pannello Importazione per migliorare l'aspetto di rendering dei font rimpiccioliti.
Le mipmap si possono abilitare anche sui font MSDF. Ciò può migliorare leggermente la qualità del rendering dei font con dimensioni inferiori a quelle predefinite, ma si noti che i font MSDF sono già di loro resistenti alla granulosità.
Rendering di font MSDF
Il rendering di font MSDF (Multi-channel Signed Distance Field) consente di renderizzare i font in qualsiasi dimensione, senza doverli rasterizzare nuovamente quando ne cambiano le dimensioni.
Il rendering di font MSDF ha due vantaggi rispetto alla rasterizzazione tradizionale dei font, che Godot usa come predefinito:
Il font apparirà sempre nitido, anche con dimensioni enormi.
Avvengono meno scatti quando si renderizzano caratteri in grandi dimensioni di font per la prima volta, poiché nessuna rasterizzazione viene eseguita.
Gli svantaggi del rendering di font MSDF sono:
Costo di base più elevato per renderizzare i font. Questo solitamente non si nota sulle piattaforme desktop, ma può avere un impatto sui dispositivi mobili di fascia bassa.
I font con piccole dimensioni non appariranno chiari come i font rasterizzati, a causa della mancanza di hinting.
Renderizzare nuovi glifi per la prima volta con piccole dimensioni di font potrebbe risultare più costoso rispetto ai tradizionali font rasterizzati. Prerendering di font si può utilizzare per rimediare.
L'ottimizzazione subpixel LCD non può essere abilitata per i font MSDF.
I font con contorni che si intersecano tra loro non saranno visualizzati correttamente in modalità MSDF. Se riscontri problemi di rendering con font scaricati da siti web come Google Fonts, prova a scaricare il font dal sito web ufficiale dell'autore.
Confronto tra i metodi di rasterizzazione dei font. Dall'alto verso il basso: rasterizzazione senza sovracampionamento, rasterizzazione con sovracampionamento, MSDF
Per abilitare il rendering MSDF per un determinato font, selezionalo nel pannello FileSystem, vai al pannello Importazione, abilita Multichannel Signed Distance Field, poi clicca su Reimporta:
Abilitazione di MSDF nelle opzioni di importazione del font
Usare le emoji
Godot supporta in modo limitato i font emoji:
Sono supportati i font CBDT/CBLC (PNG incorporati) e le emoji SVG.
I font emoji COLR/CPAL (formato vettoriale personalizzato) non sono supportati.
La compressione delle immagini bitmap EMJC (usata dal font emoji di sistema di iOS) non è supportata. Significa che per supportare le emoji su iOS, è necessario utilizzare un font personalizzato che usi invece la compressione bitmap SVG o PNG.
Affinché Godot possa visualizzare le emoji, il font utilizzato (o uno dei suoi fallback) deve includerli. Altrimenti, le emoji non saranno visualizzati e al loro posto appariranno i caratteri segnaposto "tofu":
Aspetto predefinito quando si tenta di utilizzare emoji in un'etichetta
Dopo aver aggiunto un font per visualizzare le emoji, ad esempio Noto Color Emoji, si ottiene il risultato previsto:
Aspetto corretto dopo aver aggiunto un font emoji all'etichetta
Per utilizzare un font regolare insieme alle emoji, si consiglia di specificare un font di riserva che punti al font delle emoji nelle opzioni di importazione avanzate del font regolare. Se desideri utilizzare il font predefinito del progetto per visualizzare le emoji, lascia vuota la proprietà Base Font in FontVariation mentre aggiungi un font di riserva che punta al font degli emoji:
Suggerimento
I font emoji sono piuttosto grandi, quindi potresti voler caricare un font di sistema per fornire glifi di emoji invece di includerlo nel progetto. Questo permette di fornire il pieno supporto per le emoji nel progetto senza aumentare le dimensioni del PCK esportato. Lo svantaggio è che le emoji avranno un aspetto diverso a seconda della piattaforma e il caricamento dei font di sistema non è supportato su tutte le piattaforme.
È possibile utilizzare anche un font di sistema come font di riserva.
Utilizzare font icona
Strumenti come Fontello si possono usare per generare file di font contenenti vettori importati da file SVG. Possono servire per visualizzare elementi vettoriali personalizzati come parte del testo o per creare icone 3D estruse con Testo 3D e TextMesh.
Nota
Fontello attualmente non supporta la creazione di font multicolore (che Godot può renderizzare). A novembre 2022, il supporto per i font multicolore negli strumenti di generazione di font icona rimane scarso.
A seconda dei casi d'uso, questo potrebbe portare a risultati migliori rispetto all'utilizzo del tag img in RichTextLabel. A differenza delle immagini bitmap (inclusi gli SVG che sono rasterizzati da Godot durante l'importazione), i veri dati vettoriali si possono ridimensionare a piacere senza perdere qualità.
Dopo aver scaricato il file del font generato, caricalo nel progetto Godot e specificalo come font personalizzato per un nodo Label, RichTextLabel o Label3D. Passa all'interfaccia web di Fontello, poi copia il carattere selezionandolo e premendo Ctrl + C (Cmd + C su macOS). Incolla il carattere nella proprietà Text del nodo Label. Il carattere apparirà come glifo segnaposto nell'ispettore, ma dovrebbe apparire correttamente nella viewport 2D/3D.
Per utilizzare un font icona insieme a un font tradizionale nello stesso Control, è possibile specificarlo come alternativa di riserva. Questo funziona perché i font icona usano l'area di utilizzo privato di Unicode, riservata all'uso dai font personalizzati, e non contiene glifi standard apposta.
Nota
Diversi font icona moderni, come Font Awesome 6, hanno una variazione desktop che utilizza le legature per specificare icone. Questo consente di specificare icone inserendone il nome direttamente nella proprietà Text di qualsiasi nodo che possa visualizzare font. Una volta inserito il nome dell'icona come testo completo (ad esempio house), verrà sostituito dall'icona.
Sebbene sia più semplice, questo approccio non si può usare con i font di riserva, poiché i caratteri del font principale avranno la priorità sulle legature del font di riserva.
Font di riserva
Godot supporta la definizione di una o più alternative quando il font principale non ha un glifo da visualizzare. Esistono due motivi principali per definire i font di riserva:
Usare un font che supporta solo l'insieme di caratteri latini, ma usare un altro font per poter visualizzare il testo in un altro insieme di caratteri, ad esempio il cirillico.
Usare un font per renderizzare testo e un altro font per renderizzare emoji o icone.
Apri la finestra di dialogo Impostazioni di importazione avanzate facendo doppio clic sul file del font nel pannello FileSystem. È possibile anche selezionare il font nel pannello FileSystem, andare al pannello Importazione e scegliere Avanzate… in basso:
Pannello Importazione
Nella finestra di dialogo che appare, cerca la sezione Alternative sulla barra laterale a destra, clicca sul testo Array[Font] (dimensione 0) per espandere la proprietà, poi clicca su Aggiungi elemento:
Aggiungere un font di riserva
Clicca sulla freccia a discesa sul nuovo elemento, poi scegli un file di font tramite le opzioni Carica rapida o Carica:
Caricare font di riserva
È possibile aggiungere font di riserva mentre si utilizza il font predefinito del progetto. Per farlo, lascia vuota la proprietà Base Font mentre aggiungi uno o più font di riserva.
Nota
I font di riserva si possono definire localmente, in modo simile a Funzionalità OpenType di font, ma per motivi di brevità questo argomento non è trattato qui.
Font variabili
Godot supporta pienamente i font variabili, che consentono di utilizzare un singolo file di font per rappresentare diversi pesi e stili (normale, grassetto, corsivo, ecc.). Questa funzionalità deve essere supportata dal file di font utilizzato.
Per utilizzare un font variabile, crea una risorsa FontVariation nel posto in cui intendi utilizzare il font, poi carica un file di font dentro la risorsa FontVariation:
Creare una risorsa FontVariation
Caricamento di un file di font nella risorsa FontVariation
Scorri in basso fino alla sezione Variazione di FontVariation, poi clicca sul testo Coordinate di variazione per espandere l'elenco degli assi che si possono regolare:
Elenco di assi di variazione
L'insieme di assi che è possibile regolare dipende dal font caricato. Alcuni font variabili supportano un solo asse di regolazione (in genere peso o inclinazione), mentre altri possono supportare più assi di regolazione.
Ad esempio, ecco il font Inter V con un peso di 900 e un'inclinazione di -10:
Esempio di font variabile (Inter V)
Suggerimento
Sebbene i nomi e le scale degli assi dei font variabili non siano standardizzati, i designer di font solitamente seguono alcune convenzioni comuni. L'asse weight è standardizzato in OpenType per funzionare come segue:
Valore di asse |
Peso effettivo del font |
|---|---|
|
Sottile (capello) |
|
Extra leggero (Ultra leggero) |
|
Lieve |
|
Regolare (Normale) |
|
Medio |
|
Semigrassetto (Demi-Bold) |
|
Grassetto |
|
Extra grassetto (ultra grassetto) |
|
Nero (Pesante) |
|
Extra nero (Ultra nero) |
È possibile salvare il FontVariation in un file risorsa .tres per riutilizzarlo in altri posti:
Salvataggio di FontVariation in un file risorsa esterno
Grassetto e corsivo simulato
Quando si scrive testo in grassetto o corsivo, utilizzare variazioni di font appositamente progettate per questo scopo ha un aspetto migliore. La spaziatura tra i glifi sarà più uniforme quando si utilizza un font in grassetto, e la forma di alcuni glifi potrebbe cambiare completamente nelle variazioni corsive (confronta "a" e "a").
Tuttavia, i font in grassetto e corsivo richiedono la distribuzione di più file, il che aumenta le dimensioni della distribuzione. È possibile utilizzare anche un singolo file di font variabile, ma questo file sarà più grande di un singolo font non variabile. Sebbene la dimensione dei file non siano solitamente un problema per i progetti desktop, possono esserlo per i progetti mobile/web che si sforzano di mantenere la dimensione della distribuzione il più ridotta possibile.
Per poter visualizzare font in grassetto e corsivo senza dover fornire font aggiuntivi (o utilizzare un font variabile di dimensioni maggiori), Godot supporta il grassetto e il corsivo simulato.
Grassetto/corsivo simulato (in alto), grassetto/corsivo autentico (in basso). Font normale utilizzato: Open Sans SemiBold
Il grassetto e il corsivo simulati sono utilizzati automaticamente nei tag del grassetto e del corsivo di RichTextLabel se non sono forniti font personalizzati per il grassetto e/o il corsivo.
Per utilizzare il grassetto simulato, crea una risorsa FontVariation in una proprietà in cui è prevista una risorsa Font. Imposta Variation > Embolden su un valore positivo per rendere il font più grassetto, o su un valore negativo per renderlo meno grassetto. I valori consigliati sono compresi tra 0.5 e 1.2, a seconda del font.
Il corsivo simulato è creato inclinando il testo, modificando la trasformazione per ogni carattere. Questa funzionalità è disponibile anche in FontVariation tramite la proprietà Variation > Transform. Impostando il componente yx della trasformazione del carattere a un valore positivo, il testo sarà scritto in corsivo. I valori consigliati sono compresi tra 0.2 e 0.4, a seconda del font.
Aggiuntare la spaziatura di font
Per motivi stilistici o per una migliore leggibilità, si potrebbe voler modificare il modo in cui un font è presentato in Godot.
Creare una risorsa FontVariation in una proprietà in cui è prevista una risorsa Font. Sono disponibili 4 proprietà nella sezione Variation > Extra Spacing, che accettano valori positivi e negativi:
Glifo: spaziatura aggiuntiva tra ogni glifo.
Spazio: spaziatura aggiuntiva tra le parole.
Alto: spaziatura aggiuntiva sopra i glifi. È utilizzata per il testo su più righe, ma anche per calcolare la dimensione minima di controlli come Label e Button.
Basso: spaziatura aggiuntiva sotto i glifi. È utilizzata per il testo su più righe, ma anche per calcolare la dimensione minima di controlli come Label e Button.
È anche possibile regolare la proprietà Variation > Transform per stirare i caratteri orizzontalmente o verticalmente. Ciò si ottiene specificamente regolando i componenti xx (scala orizzontale) e yy (scala verticale). Ricordati di regolare la spaziatura dei glifi per tenere conto di eventuali cambiamenti, poiché la trasformazione dei glifi non influisce sullo spazio occupato da ciascun glifo nel testo. Un ridimensionamento non uniforme di questo tipo si dovrebbe usare raramente, poiché i font generalmente non sono progettati per essere visualizzati con stiramenti.
Funzionalità OpenType di font
Godot supporta l'abilitazione delle funzionalità OpenType di font, che sono un metodo standardizzato per definire caratteri alternativi che si possono cambiare senza dover sostituire completamente i file dei font. Pur avendo il nome "funzionalità OpenType", queste sono supportate anche nei file dei font TrueType (.ttf) e WOFF/WOFF2.
Il supporto per le funzionalità OpenType dipende molto dal font utilizzato. Alcuni font non supportano alcuna funzionalità OpenType, mentre altri possono supportare decine di funzionalità attivabili/disattivabili.
Esistono 2 modi per utilizzare le funzionalità OpenType di un font:
Globalmente su un file di font
Apri la finestra di dialogo Impostazioni di importazione avanzate facendo doppio clic sul file del font nel pannello FileSystem. È possibile anche selezionare il font nel pannello FileSystem, andare al pannello Importazione e scegliere Avanzate… in basso:
Pannello Importazione
Nella finestra di dialogo visualizzata, cerca la sezione Metadata Overrides > OpenType Features nella barra laterale a destra, clicca sul testo Features (0 of N set) per espandere la proprietà, quindi clicca su Add Feature:
Sostituzioni delle funzionalità OpenType nelle Impostazioni di importazione avanzate
In un utilizzo specifico del font (FontVariation)
Per utilizzare una funzionalità di un font, creare una risorsa FontVariation come si farebbe per un font variabile, quindi caricare un file font dentro la risorsa FontVariation:
Creare una risorsa FontVariation
Caricamento di un file di font in una risorsa FontVariation
Scorri verso il basso fino alla sezione OpenType Features di FontVariation, clicca sul testo Features (0 of N set) per espandere la proprietà, quindi clicca su Add Feature e seleziona la funzionalità desiderata nel menu a discesa:
Specifica delle funzionalità OpenType in una risorsa FontVariation
Ad esempio, ecco il font Inter senza la funzionalità Slashed Zero (Zero barrato) (in alto), poi con la funzionalità OpenType Slashed Zero abilitata (in basso):
Confronto di funzionalità OpenType (Inter)
È possibile disattivare le legature e/o la crenatura per un font specifico aggiungendo funzionalità OpenType e deselezionandole nell'ispettore:
Disabilitazione delle legature e della crenatura per un font
Font di sistema
Avvertimento
Il caricamento dei font di sistema è supportato solo su Windows, macOS, Linux, Android e iOS.
Tuttavia, caricare i font di sistema su Android non è affidabile in quanto non esiste un'API ufficiale per farlo. Godot deve dipendere dai file di configurazione di sistema, che si possono modificare dai fornitori Android di terze parti. Ciò potrebbe non far funzionare il caricamento dei font di sistema.
I font di sistema sono un tipo di risorsa diverso rispetto ai font importati. Non sono mai realmente importati nel progetto, ma caricati in fase di esecuzione. Ciò offre due vantaggi:
I font non sono inclusi nel file PCK esportato, il che porta a una dimensione più piccola di file per il progetto esportato.
Poiché i font non sono inclusi nel progetto esportato, si evitano problemi di licenza che potrebbero verificarsi se i font di sistema proprietari venissero distribuiti insieme al progetto.
Il motore utilizza automaticamente i font di sistema come font di riserva, il che rende possibile visualizzare i caratteri CJK e gli emoji senza dover caricare un font personalizzato. Esistono tuttavia alcune restrizioni, come indicato nella sezione Usare gli emoji.
Creare una risorsa SystemFont nel posto in cui si desidera utilizzare il font di sistema:
Creare una risorsa SystemFont
Specificare un nome di font da utilizzare in una risorsa SystemFont
È possibile specificare esplicitamente uno o più nomi di font (ad esempio Arial) oppure specificare il nome di un alias di font che corrisponde a un font predefinito "standard" per il sistema:
Alias del font |
Windows |
macOS/iOS |
Linux |
Android |
|---|---|---|---|---|
|
Arial |
Helvetica |
Gestito da fontconfig |
Roboto / Noto Sans |
|
Times New Roman |
Times |
Gestito da fontconfig |
Noto Serif |
|
Courier New |
Courier |
Gestito da fontconfig |
Droid Sans Mono |
|
Comic Sans MS |
Apple Chancery |
Gestito da fontconfig |
Dancing Script |
|
Gabriola |
Papyrus |
Gestito da fontconfig |
Droid Sans Mono |
Su Android, Roboto è utilizzato per i testi in latino/cirillico e Noto Sans per i glifi di altre lingue, come il CJK. Nelle distribuzioni Android di terze parti, la selezione esatta dei font potrebbe differire.
Se si specifica più di un font, sarà utilizzato il primo font trovato nel sistema (dall'alto verso il basso). I nomi dei font e gli alias non distinguono tra maiuscole e minuscole su tutte le piattaforme.
Come per le variazioni dei font, è possibile salvare la disposizione SystemFont in un file di risorsa per riutilizzarla altrove.
Ricorda che i diversi font di sistema hanno metriche diverse, il che significa che un testo potrebbe entrare in un rettangolo su una piattaforma, ma potrebbe non esserne in grado su un'altra. Riserva sempre un po' di spazio aggiuntivo durante lo sviluppo in modo che le etichette si possano estendere di più, se necessario.
Nota
A differenza di Windows e macOS/iOS, l'insieme di font predefiniti fornito su Linux dipende dalla distribuzione. Significa che su diverse distribuzioni Linux potrebbero essere visualizzati font diversi per un determinato nome o alias di font di sistema.
È anche possibile caricare i font in fase di esecuzione, anche se non sono installati sul sistema. Consulta Caricamento e salvataggio in fase di esecuzione per i dettagli.
Prerendering di font
Quando si utilizzano font rasterizzati tradizionali, Godot memorizza nella cache i glifi per ogni font e per ogni dimensione. Questo riduce il problema dello stuttering, ma può avvenire comunque la prima volta che un glifo viene visualizzato durante l'esecuzione del progetto. Si può notare particolarmente con font di dimensioni maggiori o sui dispositivi mobili.
Quando si utilizzano font MSDF, devono essere rasterizzati una sola volta in una speciale texture SDF. Significa che la memorizzazione nella cache si può effettuare puramente per ogni font, senza dover considerare le dimensioni del font stesso. Tuttavia, il rendering iniziale dei font MSDF è più lento rispetto a un font rasterizzato tradizionale di medie dimensioni.
Per evitare problemi di stuttering relativi al rendering dei font, è possibile pre-renderizzare alcuni glifi. Lo si può fare per tutti i glifi che intendi utilizzare (per risultati ottimali) o solo per i glifi più comuni che sono più probabili di comparire durante il gioco (per ridurre le dimensioni dei file). I glifi non pre-renderizzati verranno rasterizzati al momento come al solito.
Nota
In entrambi i casi (tradizionale e MSDF), la rasterizzazione dei font è eseguita dalla CPU. Ciò significa che le prestazioni della GPU non influiscono sul tempo necessario per la rasterizzazione.
Apri la finestra di dialogo Impostazioni di importazione avanzate facendo doppio clic sul file del font nel pannello FileSystem. È possibile anche selezionare il font nel pannello FileSystem, andare al pannello Importazione e scegliere Avanzate… in basso:
Pannello Importazione
Passa alla scheda Configurazioni di pre-rendering della finestra di dialogo Impostazioni di importazione avanzate, poi aggiungi una configurazione cliccando sul simbolo "più":
Aggiunta di una nuova configurazione di pre-rendering nella finestra di dialogo Impostazioni di importazione avanzate
Dopo aver aggiunto una configurazione, assicurati che sia selezionata cliccando una sola volta sul suo nome. Puoi anche rinominare la configurazione con un doppio clic.
Ci sono due modi per aggiungere glifi da pre-renderizzare a una determinata configurazione. È possibile utilizzare entrambi gli approcci in modo cumulativo:
Utilizzo di testo dalle traduzioni
Per la maggior parte dei progetti, questo approccio è il più comodo da usare, poiché estrae automaticamente il testo dalle traduzioni nella tua lingua. Lo svantaggio è che può essere utilizzato solo se il tuo progetto supporta l'internazionalizzazione. Se no, attieniti all'approccio "Utilizzo di testo personalizzato" descritto di seguito.
Dopo aver aggiunto le traduzioni alle Impostazioni del progetto, vai sulla scheda Glifi dalle traduzioni per verificare le traduzioni facendo doppio clic su di esse, poi clicca su Forma tutte le stringhe nelle traduzioni e aggiungi i glifi in basso:
Abilita il prerendering nella finestra Impostazioni di importazione avanzate con la scheda glifi dalle Traduzioni
Nota
L'elenco dei glifi prerenderizzati non viene aggiornato automaticamente quando si aggiornano le traduzioni, quindi bisogna ripetere questo processo se le traduzioni sono cambiate significativamente.
Utilizzo di testo personalizzato
Sebbene richieda di specificare manualmente il testo che apparirà nel gioco, questo è l'approccio più efficiente per i giochi che non prevedono l'inserimento di testo dall'utente. Vale la pena esplorarlo per i giochi per dispositivi mobili al fine di ridurre le dimensioni del file dell'applicazione distribuita.
Per utilizzare un testo esistente come base per il prerendering, vai alla sottoscheda Glifi dal testo della finestra Impostazioni di importazione avanzate, inserisci il testo nella finestra a destra, poi clicca su Forma il testo e aggiungi i glifi in fondo alla finestra:
Abilita il prerendering nella finestra Impostazioni di importazione avanzate con la scheda glifi dal testo
Suggerimento
Se il tuo progetto supporta l'internazionalizzazione, puoi incollare il contenuto dei tuoi file CSV o PO nella casella qui sopra per pre-renderizzare rapidamente tutti i possibili caratteri che potrebbero essere visualizzati durante il gioco (escluse le stringhe fornite dall'utente o non traducibili).
Abilitando gli insiemi di caratteri
Il secondo metodo richiede meno configurazione e meno aggiornamenti se il testo del gioco cambia, ed è più adatto a giochi con molto testo o a giochi multigiocatore con chat. D'altra parte, potrebbe far pre-renderizzare glifi che non saranno mai visualizzati nel gioco, il che è meno efficiente per le dimensioni dei file.
Per utilizzare il testo esistente come base per il prerendering, vai alla sottoscheda Glifi dalla mappa dei caratteri della finestra Impostazioni di importazione avanzate, poi fai doppio clic sull'insieme di caratteri da abilitare sulla destra:
Abilita il prerendering nella finestra Impostazioni di importazione avanzate con la scheda Glifi dalla mappa dei caratteri
Per garantire il prerendering completo, gli insiemi di caratteri da abilitare dipendono dalle lingue supportate dal gioco. Per l'inglese, basta abilitare solo il Basic Latin. Abilitando anche il Latin-1 Supplement è possibile supportare completamente molte altre lingue, come il francese, il tedesco e lo spagnolo. Per il russo, bisogna abilitare il Cyrillic, e così via.
Proprietà del font predefinito di un progetto
Nella sezione GUI > Tema delle Impostazioni avanzate del progetto, è possibile scegliere come si deve renderizzare il font predefinito:
Antialiasing del font predefinito: controlla il metodo di antialiasing utilizzato per il font predefinito del progetto.
Hinting predefinito del font: controlla il metodo di hinting utilizzato per il font predefinito del progetto.
Posizionamento subpixel per il font predefinito : controlla il metodo di posizionamento subpixel per il font predefinito del progetto.
MSDF per il font predefinito: se impostato su
true, il font predefinito del progetto utilizza il rendering MSDF anziché la rasterizzazione tradizionale.Genera mipmap per il font predefinito: se impostato su
true, abilita la generazione e l'utilizzo delle mipmap per il font predefinito del progetto.
Nota
Queste impostazioni del progetto influenzano solo il font predefinito del progetto (quello codificato nel binario del motore).
Le proprietà dei font personalizzati sono invece controllate dalle rispettive opzioni di importazione. È possibile utilizzare la sezione Importa impostazioni predefinite della finestra Impostazioni del progetto per sovrascrivere le opzioni di importazione predefinite per i font personalizzati.