BMFont工具生成自定义字体
BMFont工具【利用文本文件】/【利用美工提供的字符圖形】來(lái)生成自定義字體
Unity字體制作工具BMFont:
下載官網(wǎng):https://www.softpedia.com/get/Programming/Other-Programming-Files/BMFon.shtml
下載網(wǎng)址:http://www.angelcode.com/products/bmfont/
最新版本下載網(wǎng)址:http://gad.qq.com/tool/detail?id=7
最新版本下載_1.14_:點(diǎn)擊下載install_bmfont_1.14_beta.exe.7z大小:0.35MB
BMFont的基本用法。對(duì)BMFont比較陌生的同學(xué)請(qǐng)點(diǎn)擊這里先去學(xué)習(xí):http://blog.csdn.net/keshuiyun/article/details/9960589。
制作教程網(wǎng)址:https://blog.csdn.net/keshuiyun/article/details/9960667/
本篇講解如何利用美工提供的字符圖形來(lái)生成自定義字體。
美術(shù)提供的字體經(jīng)常是下面這樣的:
或者這樣的:
這時(shí)候我們就要借助BMFont了,首先針對(duì)真彩色的圖形,我們要做一些設(shè)定,點(diǎn)擊"Options"->“Export options”:
在彈出的窗口中,注意紅框中“位深”,設(shè)為32:
然后,點(diǎn)擊"Edit"->"(Un)Select all chars",取消選擇所有字符。因?yàn)槲覀儗⒃诤筮厡?dǎo)入需要的字符。
OK,現(xiàn)在點(diǎn)擊"Edit"->“Open Image Manager”:
彈出圖片管理窗體,如下:
那個(gè)"Image"是菜單,可以點(diǎn)擊。選擇"Image"->“Import image…”:
彈出如下窗體:
點(diǎn)擊"Browse"按鈕,在彈出的“打開(kāi)”窗口中選擇一個(gè)字符圖片,比如"0":
[注意:圖片所在路徑必須是英文路徑]
然后在ID后的文本框中輸入字符"0"的Ascii值:48,點(diǎn)擊"OK"。
這時(shí)返回主窗體,你會(huì)看到字符表中"0"右下角有一個(gè)小亮點(diǎn)標(biāo)記,說(shuō)明該字符的圖形為自定義圖片。如下圖:
按上述方法,依次加入其它字符的圖片,完成后如下:
OK,下面準(zhǔn)備導(dǎo)出。導(dǎo)出前我們可以先點(diǎn)擊"Options"->"Visualize"預(yù)覽一下:
嗯,材質(zhì)稍微有點(diǎn)大。導(dǎo)出fnt:
最后得到如下文件:
作者:keshuiyun
來(lái)源:CSDN
原文:https://blog.csdn.net/keshuiyun/article/details/9960667/
鏈接:http://ascii.911cha.com/?year=0
使用制作成功的字體圖集:
1、根據(jù)C#腳本文件導(dǎo)入U(xiǎn)nity后使用
代碼鏈接:https://blog.csdn.net/u012662020/article/details/79996686
材質(zhì)需要是這個(gè)類型的
Font
有幾張圖片Size就是幾
1、將上面的文件導(dǎo)入進(jìn)Unity【Resources文件夾下】
2、將制作完成的圖集導(dǎo)入進(jìn)Unity
3、更改圖集格式
4、開(kāi)始編輯圖集
(1)切圖集【選擇隨意,能切好就行】
(2)將每一個(gè)圖片按照Ascii碼命名,就是根據(jù)圖片所代表數(shù)字改一下每一個(gè)圖片的名字【圖片5對(duì)應(yīng)名字5】:如下圖5對(duì)應(yīng)的是7,所以要改成5
【注意:改圖片名字不能重復(fù)不然改不過(guò)來(lái),所以先用一個(gè)其他所有圖片沒(méi)使用過(guò)的名字代替,然后一個(gè)個(gè)改成想要改成的名字】
例如:圖片7對(duì)應(yīng)名字Score_0_5 相應(yīng) 圖片5對(duì)應(yīng)名字Score_0_7,那么圖片7的名字先改為Score_0_17 然后 圖片5的名字才能改為Score_0_5,然后圖片7的名字再改為Score_0_7
(3)所有圖片名對(duì)應(yīng)屬于自己數(shù)字后應(yīng)用一下
【注意:圖集有更改應(yīng)用按鈕才可以點(diǎn) 沒(méi)更改不用點(diǎn)相應(yīng)的也不能點(diǎn)】
返回Resources文件夾
(4)創(chuàng)建材質(zhì):選中圖集/右鍵/CreateMyFontSprite
會(huì)彈出下面窗口:點(diǎn)擊導(dǎo)入就行
結(jié)果:
(5)使用:
W:字寬 H:字高
設(shè)置行間距Line Spacing
創(chuàng)建Text文本框/將字體拖進(jìn)Font里就可以正常使用了
2、直接使用Unity自帶的功能Assets/Create/ 材質(zhì)和Font手動(dòng)拖拽一下完成【即圖片添加進(jìn)材質(zhì)中,材質(zhì)添加進(jìn)Font中】
步驟:
首先,要有一張要做的字體的圖:
然后新建一個(gè)字體,叫colorfulFont, 資源面板空白處Resources文件夾右鍵,Create - Custom Font
然后建一個(gè)材質(zhì),shader選擇GUI,圖就是上面的圖:
然后把這個(gè)材質(zhì)賦給這個(gè)字體:
然后選擇字的個(gè)數(shù),我這里邊是11個(gè)數(shù)字,就寫(xiě)入11:
然后以第三個(gè)元素為例,講解每個(gè)元素的設(shè)置:
(1)index值,這個(gè)值是ASCII編碼,可以去這個(gè)網(wǎng)站看對(duì)照表:http://tool.oschina.net/commons?type=4
(3)先說(shuō)3,3是每個(gè)元素的寬度,整體為1,我這里有11個(gè)元素,所以為0.0909
(2)再說(shuō)2, 因?yàn)橐粋€(gè)的寬度是0.0909,所以第三個(gè)元素的起始位置就是0.0909x2 = 0.1818;
(4) -50, 這個(gè)位置的數(shù)字一定是負(fù)的,因?yàn)檎麄€(gè)圖的高度是50,所以這里填-50;
(5) 40,我的圖全寬是440,有十一個(gè)數(shù)字,所以每個(gè)寬度是40;
(6)這里跟5的位置填一樣就行;
圖片原文:https://blog.csdn.net/allenwithno3/article/details/79746891
Custom Font的缺點(diǎn)和不足
Custom Font雖然給了用戶自定義字體的能力,但比起常規(guī)的Dynamic Font還是有很多缺點(diǎn)的:
1、無(wú)法定義中文字體。這點(diǎn)是由于Custom Font使用Ascii字符集導(dǎo)致的,Ascii字符集并不包含漢字。
2、無(wú)法通過(guò)Size改變字體大小。 因?yàn)镃ustom Font本身無(wú)法改變字符大小,不過(guò)依然可以通過(guò)Scale來(lái)變相調(diào)節(jié)
3、無(wú)法得到理想的字體顏色。 當(dāng)改變Color,會(huì)在原圖片的基礎(chǔ)上變化,所以為了得到最好的顯示效果,最好保證 字體顏色是白色,背景為透明。
原文:https://blog.csdn.net/qq_28849871/article/details/77719054
利用文本制作圖集:
不管是Cocos2d-x還是其他的引擎或程序中,我們通常需要用到中文或顯示一些好看華麗的文字效果。一般情況下,最先想到的方法當(dāng)然是讓美術(shù)提供。但作為程序猿的你應(yīng)該知道,這不算是個(gè)很好的方法,而且它也不是唯一的方法。所以今天本嘍嘍將要給大家說(shuō)說(shuō)另一種實(shí)現(xiàn)以上功能的方法——利用位圖字體,當(dāng)然本文的著重在于講解如何制作BMFont位圖字體。
Cocos2d-x中,支持位圖字體創(chuàng)建的類是LabelBMFont類,LabelBMFont是一種紋理地圖集形式的標(biāo)簽類,它支持FNT類型的文件,且它適合于需要頻繁更新的文本內(nèi)容或者顯示好看華麗的文字內(nèi)容。 LabelBMFont使用圖片文件顯示文本內(nèi)容,相當(dāng)于每次只是改變了圖片的坐標(biāo),LabelBMFont中每個(gè)字符都可被看作是一個(gè)精靈,可以單獨(dú)獲取并運(yùn)行動(dòng)作。
所謂位圖字體,其實(shí)是由很多單個(gè)的位圖字符組成的紋理集,其就是說(shuō)它是通過(guò)圖片文件顯示文本內(nèi)容的。
位圖字體可以使用專門的編輯工具制作,如Glyph Designer、Hiero和BMFont等等。這些工具可以幫助我們從字庫(kù)文件中抽取字形,生成我們需要的文字集圖片(png格式)和字體信息文件(fnt格式),其中fnt文件中包含了對(duì)應(yīng)圖片的名字(圖片包含了所有你要繪制的字符)、圖片中的字符對(duì)應(yīng)的unicode編碼、字符在圖片中的坐標(biāo)、寬和高等信息。
下面就讓我們一起來(lái)看看如何制作位圖字體吧。
Glyph Designer
在Mac環(huán)境下,這里我給大家介紹的位圖字體編輯器是Glyph Designer,Cocos2d-x支持許多使用fnt文件格式的位圖字體,Glyph Designer是一款Mac環(huán)境下的字體設(shè)計(jì)器來(lái)創(chuàng)建字體圖集(Windows下可使用Hiero和BMFont):
Glyph Designer是一款Mac環(huán)境下的字體設(shè)計(jì)器,使用它來(lái)創(chuàng)建位圖字體相當(dāng)?shù)妮p松,下面我們先來(lái)對(duì)編輯器整體做一個(gè)認(rèn)識(shí),見(jiàn)下圖。
![jiemian][1]
上圖中,最中間的部分是渲染區(qū)域,也就是我們的畫(huà)布,所有字符編輯結(jié)果都會(huì)在這個(gè)區(qū)域中顯示。
在左邊窗口部分有一個(gè)TrueType字體列表。如果不夠用,可以使用Load Font圖標(biāo)加載任意TTF文件,也就是PS中的筆刷文件,這里可以在網(wǎng)上下載任意喜歡的筆刷。Glyph Designer允許從任何TrueType字體創(chuàng)建位圖字體。
在字體列表下方,可以使用滑動(dòng)條改變字體大小,并應(yīng)用粗體、斜體和其他字體樣式。
在右側(cè)窗口中,Glyph Info項(xiàng)記錄了每個(gè)(選中)字符的基本信息,包括字符、字符ID和Glyph ID。
Texture Atlas項(xiàng)中可以修改紋理圖冊(cè)的設(shè)置,不如背景顏色、字符之間的空格等,不過(guò)其實(shí)在大多數(shù)情況下,這些屬性是沒(méi)有必要修改的。Glyph Designer確保了紋理圖冊(cè)總是足夠大到能夠在單個(gè)紋理中包含所有的筆畫(huà)。
Glyph Fill項(xiàng)中可以修改字符的顏色、填充方式等屬性。
Glyph Outline項(xiàng)中可以修改每個(gè)字符的外輪廓屬性。
Glyph Shadow項(xiàng)中可以為字體創(chuàng)建3D外觀,說(shuō)直白一點(diǎn)就是設(shè)置具有立體視感的陰影。
Included Glyphs項(xiàng)中是你需要的全部字符,你可以在這里輸入紋理圖冊(cè)中所需要包含的預(yù)定義字符。如果十分確定不需要某些字符,那么也可以輸入自己的字符列表來(lái)減小紋理的尺寸。例如,在得分字符串中,只需要數(shù)字和很少的一些字符,所以這么做特別有幫助。
以下是使用Glyph Designer制作位圖字體的一般步驟:
啟動(dòng)Glyph Designer,選擇File->New,在左上的搜索框中鍵入需要的字體集名,如沒(méi)有合適的字體,可自己導(dǎo)入。注意:如需要的字符中有中文,那么選擇字體集時(shí)一定要選擇包含有中文字符的字體集。 ![step1][2]
設(shè)置字體尺寸,默認(rèn)情況下Glyph Designer自動(dòng)調(diào)整字體圖集尺寸為最小可能值以適配所有可能的圖像。
在右邊Glyph Fill里面設(shè)置字體填充方式、顏色等。
在Included Glyph里面點(diǎn)擊NEHE按鈕,在此區(qū)域鍵入你所需要用到的字符,完成后點(diǎn)擊Update更新渲染區(qū)顯示內(nèi)容。
![step2][3]
點(diǎn)擊Export按鈕導(dǎo)出文件,選擇導(dǎo)出文件類型時(shí)選擇默認(rèn)的“.fnt(cocos2d Text)”格式。 ![step3][4]
BMFont
在Windows中,最常用的字庫(kù)圖集制作工具是BMFont,在它的官網(wǎng)中可以找到其下載鏈接。BMFont編輯器相較于Glyph Designer當(dāng)然是沒(méi)有什么優(yōu)勢(shì)的,它也不能實(shí)現(xiàn)很多牛逼的文字特效效果,但起碼地,它可以我們滿足基本的要求。
BMFont編輯器的使用方法如下:
打開(kāi)這款軟件,界面如下,右邊的列表是字體庫(kù):
新建一個(gè)txt文本,在里面輸入要用的文字(一定要保存為UTF-8格式,否則軟件無(wú)法識(shí)別)。
【任意一個(gè)文件夾空白處右鍵/新建/文本文檔】
雙擊打開(kāi)/文件/另存為/UTF-8格式
在BMFont上找到Option菜單,然后選擇Font Setting設(shè)置字體,然后設(shè)置其中的Font(想設(shè)置的字體)和Charset(默認(rèn)的Unicode就可以)。
如txt文本中包含中文,那么Font類型應(yīng)選擇用中文的字體類型,比如宋體,黑體等等,像Arial之類的字體類型中是不可能有中文的。
在BMFont上找到Edit菜單,然后選擇Selects chars from file,載入剛才新建的txt文件,你會(huì)發(fā)現(xiàn)剛才輸入的字符在BMFont中已經(jīng)被選中。
設(shè)置導(dǎo)出選項(xiàng),在BMFont上找到Option菜單,然后選擇Export options,在cocos2d-x中需要按如下設(shè)置:
Width和Height的值,一般都會(huì)自動(dòng)調(diào)節(jié),4096可以說(shuō)是最大了,請(qǐng)不要超過(guò)這個(gè)值,不然做出來(lái)的圖集太大,會(huì)加大drawcall的數(shù)量。
bit depth,這里選用的是8位,很多人可能覺(jué)得不清晰,但它是可以選擇32位的,不過(guò)同樣會(huì)增大負(fù)擔(dān)。
注意以上所說(shuō)的負(fù)擔(dān)都是針對(duì)手機(jī)。
準(zhǔn)備導(dǎo)出字體,在BMFont上找到Options,然后選擇Save bitmap font as,完成后你會(huì)發(fā)現(xiàn)保存的路徑下多出了一個(gè)fnt文件和一個(gè)png文件(這與plist文件保存拼圖信息原理差不多)。
之后導(dǎo)入U(xiǎn)nity同圖片一樣先把圖集編輯一下,圖片名設(shè)置一下就可以用了
Unity3D開(kāi)發(fā)之編輯器統(tǒng)一修改Text字體
https://blog.csdn.net/qq_33994566/article/details/78325768
總結(jié)
以上是生活随笔為你收集整理的BMFont工具生成自定义字体的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: BMFont艺术字库制作
- 下一篇: BMFont 快速入门教程