Jump to content

Jak streamovat fonty v FiveM / Jak přidat nový font


Isigar

Recommended Posts

Ahoj, část z vás si pamatuje na staré fórum s starým návodem, který nefungoval správně všem tak znova a lépe přece jen 2 roky jsou 2 roky.

Co se zde naučíme?

Naučíme se zde jak přidat do FiveM nový font, jak ho streamovat a jak ho používat ve scriptech.

Příprava

Vytvoříme si jednu složku někde na disku, kde si budeme ukládat všechny naše nástroje. Krom toho, že je to dobré tak pak v tom nemáme bordel. Já si například vytvořím složku na disku C s názvem streamovani_fontu vy si vytvořte, kde co chcete hlavně ať vše dáváš do jednoho.

Stažení vybraného fontu 

Vybraný font potřebujeme stáhnout ve formátu TTF (TrueType) s tím počítá zbytek návodu fonty můžeme najít například na https://www.1001freefonts.com/ 

image.thumb.png.5d7cc883a5206f68e373637f7592d81f.png

Složku rozbalte a najděte si soubor fontu, který chcete používat, může jich tam být více například bold, italic a různé variace. Já si vybral regular a zkontroloval přes vlastnosti (pravé kliknutí na soubor -> vlastnosti), že je to typ soubory, který potřebuji.

image.png.4ad8526d46395a46a54c8cf6320e26e5.png

Stažení swfmill nástroje

Pro streamování fontu potřebujeme stáhnout nástroj swfmill, který nám dovolí změnit TTF (typ souboru pro fonty) soubor do SWF formátu. Otevři webovou stránku https://www.swfmill.org/ a klikni na stáhnout, máš tu dvě verze buď pro linux nebo pro windows, já si vyberu pro windows protože tento návod píšu na windows stroji.

image.thumb.png.db0ac39bd8a8c4c78f749c6d83d72c12.png

Soubor uložím do naší složky a jdeme dál.

Získání GFX exportu

Nemohu vám tu dát soubory, které by jste si mohli stáhnout na to nemám práva ale můžu vás nasměrovat, kde se takový gfx export nachází. GFX export je součástí cry enginu, který si může každý stáhnout. Zde je návod na používání GFX exportu přímo od cry enginu.
https://docs.cryengine.com/display/CEMANUAL/Chapter+2+-+Flash+and+Gfx

1) Stáhneme si CryEngine https://www.cryengine.com/download a nainstalujeme
- po otevření launcheru se zaregistrujte/přihlašte a zmáčkněte na tlačítko download engine

image.thumb.png.104ec0d0319f0c4962b462bf0b2caac6.png

2) Vytvoříme si složku GFXExport v naší složce, do které vložíme pozdější obsah

image.png.070cc6cd6de1431a6d75d89516716cda.png

3) Otevřeme složku, kde se engine nachází - přejděte na položku Engines, klikněte na 3 tečky a stiskněte tlačítko Reveal in explorer.

image.thumb.png.2453e0804855f91bbe35cb0411c89437.png

4) Po otevření najděte složku tools a v ní GFxExport a Scaleform3 (Tools\GFxExport\Scaleform3)
5) Zkopírujte její obsah do naší složku GFXExport, kterou jsme si vytvořili předtím mělo by to vypadat asi taktoimage.png.ff20559947f7402bd1108bbb06d4b6d7.png

 

Vytváření fontu

Vytvoření stuktury složek a kopírování potřebných souborů

1) Vytvoříme si složku fonts v streamovani_fontu
2) Do ní vytvoříme novou složku s názvem našeho fontu osobně budu tyto složky pojmenovávat font_nazevfontu takže v našem případě tvořím font s názvem dancing takže vytvořím složku font_dancing 
image.png.dbb2e1c19758dc199a31f409ea8906dd.png

3) Do této složky vložím náš vybraný font soubor pro mě DancingScript-Regular.ttf
4) Vytvořím nový XML soubor font.xml, můžete použít editor jaký chcete visual studio, notepad++ nebo cokoliv jiného. Pro zjednodušení si klidně otevřete přímo složku v editoru toto nechám na vás. Do tohoto souboru vložíme tento kód

<?xml version="1.0" encoding="iso-8859-1" ?>

<movie version="8" width="320" height="240" framerate="12">
    <frame>
        <library>
            <font id="Dancing" import="DancingScript-Regular.ttf" name="Dancing"/>
        </library>
    </frame>
</movie>

ℹ U každého jiného fontu musíte upravit id a name parametry

 

Konvertování XML to SWF

1) Extrahujeme swfmill zip soubor a vytvořenou složku přejmenuji na swfmill

image.png.da0558d498464c41991e4ed04b4a70fe.png

2) Otevřu si konzoli v editoru nebo cmd ve windows a vložím do něho příkaz 

C:\streamovani_fontu\swfmill\swfmill.exe simple C:\streamovani_fontu\fonty\font_dancing\font.xml C:\streamovani_fontu\fonty\font_dancing\font.swf

Cesty si upravte podle toho, kde jste danou složku vytvořili. Pro vysvětlení parametru:

swfmill.exe simple CESTA_PRO_XML CESTA_PRO_VYSLEDNY_SWF_SOUBOR

Po odeslání příkazu by to nemělo napsat žádné chyby a měl by se vytvořit SWF soubor.

Konvertování SWF do GFX

1) Otevři konzoli a vlož příkaz

C:\streamovani_fontu\GFXExport\gfxexport.exe C:\streamovani_fontu\fonty\font_dancing\font.swf

Jako u i předchozího kroku změn cestu tak, jak potřebuješ. Po odeslání vypíše něco jako image.png.30184b9171960805643fe58cf5b91d35.png

A uvidíme nový GFX soubor v naší složce.

Použití ve FiveM

Vytvoření resourcu

1) Jelikož se jedná o banální věc, připravil jsem vám již preset, který si stáhněte zde

2) Vložte do stream složky náš font.gfx
3) Otevřete fxmanifest.lua a upravte font_name a font_file 

Font name dáme stejný, jako jsme dávali name do XML souboru a font_file je název souboru v stream složce. Pro mě tedy

4) Přejmenujte složku z font_preset na váš název pro mě font_dancing
5) Vložte do složky resources 
6) Do server.cfg spustě pomocí 

ensure font_dancing

🔴 Fonty musíte zapnout vždy před ostatními scripty, které je mají využít!

 

font_name 'Dancing'
font_file 'font.gfx' --font file name in stream folder

Takový resource se dá použít už ve hře. Hodím tedy tento resource do FiveM serveru do složky resources v další části si ukážeme, jak toto využívat ve scriptech.

 

Využití v kódu

Pozornější z vás si všimli, že preset má v sobě i client.lua část, kde se registruje font a zároveň jsem přidal i event, díky kterému se ID fontu bude moci jednoduše načíst v jiném scriptu. Nebudu vám sem popisovat kód pro vypsání 3D textu ale ukážu vám jakým způsobem získat ID a jak ho například v 3D textu používat.

Získání ID

V presetu je zároveň i přidaný event, kterým budeme získávat naše registrované ID fontu. Event nese název NAZEV_RESOURCE:getFontId takže v našem případě je to font_dancing:getFontId, tento event má jeden parametr a to je callback, tento parametr vrací fontId
 

TriggerEvent('font_dancing:getFontId', function(fontId)
    print('Naše font ID: ', fontId)
end)

Pro použití v 3D textu se dá tento font nastavit pomocí nativní funkce

SetTextFont(fontId)

https://docs.fivem.net/natives/?_0x66E0276CC5F6B9DA

  • Like 2
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...