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