├── doc ├── ss01.png ├── ss02.png ├── ss03.png ├── ss04.png ├── ss05.png ├── ss06.png └── ss07.png ├── Assets ├── SceneSample.unity ├── bmfont │ ├── yanone.mat │ ├── yanone.png │ ├── m2pbold.mat │ ├── mp2pbold.png │ ├── m2pbold.fontsettings │ ├── yanone.fontsettings │ ├── yanone.txt │ └── mp2pbold.fnt.txt ├── gridfont │ ├── number.mat │ ├── number.png │ └── number.fontsettings └── Editor │ └── ChrRectSet.cs ├── ChrRectSet.unitypackage ├── LICENSE └── readme.md /doc/ss01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mieki256/ChrRectSet/HEAD/doc/ss01.png -------------------------------------------------------------------------------- /doc/ss02.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mieki256/ChrRectSet/HEAD/doc/ss02.png -------------------------------------------------------------------------------- /doc/ss03.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mieki256/ChrRectSet/HEAD/doc/ss03.png -------------------------------------------------------------------------------- /doc/ss04.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mieki256/ChrRectSet/HEAD/doc/ss04.png -------------------------------------------------------------------------------- /doc/ss05.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mieki256/ChrRectSet/HEAD/doc/ss05.png -------------------------------------------------------------------------------- /doc/ss06.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mieki256/ChrRectSet/HEAD/doc/ss06.png -------------------------------------------------------------------------------- /doc/ss07.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mieki256/ChrRectSet/HEAD/doc/ss07.png -------------------------------------------------------------------------------- /Assets/SceneSample.unity: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mieki256/ChrRectSet/HEAD/Assets/SceneSample.unity -------------------------------------------------------------------------------- /Assets/bmfont/yanone.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mieki256/ChrRectSet/HEAD/Assets/bmfont/yanone.mat -------------------------------------------------------------------------------- /Assets/bmfont/yanone.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mieki256/ChrRectSet/HEAD/Assets/bmfont/yanone.png -------------------------------------------------------------------------------- /ChrRectSet.unitypackage: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mieki256/ChrRectSet/HEAD/ChrRectSet.unitypackage -------------------------------------------------------------------------------- /Assets/bmfont/m2pbold.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mieki256/ChrRectSet/HEAD/Assets/bmfont/m2pbold.mat -------------------------------------------------------------------------------- /Assets/bmfont/mp2pbold.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mieki256/ChrRectSet/HEAD/Assets/bmfont/mp2pbold.png -------------------------------------------------------------------------------- /Assets/gridfont/number.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mieki256/ChrRectSet/HEAD/Assets/gridfont/number.mat -------------------------------------------------------------------------------- /Assets/gridfont/number.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mieki256/ChrRectSet/HEAD/Assets/gridfont/number.png -------------------------------------------------------------------------------- /Assets/bmfont/m2pbold.fontsettings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mieki256/ChrRectSet/HEAD/Assets/bmfont/m2pbold.fontsettings -------------------------------------------------------------------------------- /Assets/bmfont/yanone.fontsettings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mieki256/ChrRectSet/HEAD/Assets/bmfont/yanone.fontsettings -------------------------------------------------------------------------------- /Assets/gridfont/number.fontsettings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mieki256/ChrRectSet/HEAD/Assets/gridfont/number.fontsettings -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | This is free and unencumbered software released into the public domain. 2 | 3 | Anyone is free to copy, modify, publish, use, compile, sell, or 4 | distribute this software, either in source code form or as a compiled 5 | binary, for any purpose, commercial or non-commercial, and by any 6 | means. 7 | 8 | In jurisdictions that recognize copyright laws, the author or authors 9 | of this software dedicate any and all copyright interest in the 10 | software to the public domain. We make this dedication for the benefit 11 | of the public at large and to the detriment of our heirs and 12 | successors. We intend this dedication to be an overt act of 13 | relinquishment in perpetuity of all present and future rights to this 14 | software under copyright law. 15 | 16 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 17 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 18 | MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. 19 | IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR 20 | OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, 21 | ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 22 | OTHER DEALINGS IN THE SOFTWARE. 23 | 24 | For more information, please refer to 25 | -------------------------------------------------------------------------------- /readme.md: -------------------------------------------------------------------------------- 1 | ChrRectSet.cs 2 | ================= 3 | 4 | 概要 5 | --------- 6 | 7 | Unity の Custom Font を使うとビットマップフォントが表示できる。 8 | 9 | ![ビットマップフォント使用例](./doc/ss01.png) 10 | 11 | しかし、使用する文字数分、Chracater Rects を設定しないといけない。 12 | この Unity拡張は、その設定作業を自動化する。 13 | 14 | 以下の2種類の設定方法が選べる。 15 | 16 | * BMFontから出力された、fntファイル内容を元にして設定。 17 | * 等間隔で文字が配置されているビットマップフォント画像に対し、等間隔で分割して設定。 18 | 19 | 20 | 導入方法 / Install 21 | ------------------- 22 | 23 | Assets\Editor\ 以下に、ChrRectSet.cs をコピーする。 24 | 25 | 26 | 前準備 27 | ---------- 28 | 29 | ビットマップフォントを使う場合、以下の作業/Assetsの追加をしておく。 30 | 31 | 1. Assets に、ビットマップフォント画像をコピーして、以下を設定。 32 | * Texture Type : GUI 33 | * Filter Mode : Point 34 | ![テクスチャ設定](./doc/ss02.png) 35 | 2. Assets に、Material を追加して、以下を設定。 36 | * Texture に、ビットマップフォント画像をD&D。 37 | * Shader を、Unlit/Transparent にする。(Shader → Unlit → Transparent の順に選択) 38 | ![Material設定](./doc/ss03.png) 39 | 3. Assets に、Custom Font を追加して、以下を設定。 40 | * Material に、先ほど追加した Material をD&D。 41 | ![Custom Font設定](./doc/ss04.png) 42 | 4. BMFontから出力されたfntファイルで設定したい場合は、fntファイルもAssetsにコピーする。その際、拡張子を、.fnt から .txt にリネームしておく。 43 | 5. Hierarchy に GUI Text 等を追加して、Font に、先ほど用意した Custom Font を D&D。 44 | 45 | 46 | 使い方 / Usage 47 | ---------------- 48 | 49 | ChrRectSet.cs が導入されていれば、Unity のメニューに Custom という項目が増えるはず。 50 | 51 | ![メニュー選択](./doc/ss05.png) 52 | 53 | Custom → Custom Font Setting → Chr Rect Set を選択すると、作業ウインドウが開く。 54 | 55 | ### BMFontから出力されたfntファイルを使う場合 56 | 57 | ![設定画面1](./doc/ss06.png) 58 | 59 | 1. Assets から、作業ウインドウに、以下をD&D。 60 | * 設定したい Custom Font 61 | * ビットマップフォント画像 62 | * fntファイル(.txtにリネームしたファイル) 63 | 2. Set Character Rects ボタンを押す。 64 | 3. Custom Font の Ascii Start Offset に、使う文字の一番最初のASCIIコードを入力。 65 | 66 | ### 等間隔に配置されたビットマップフォント画像を使う場合 67 | 68 | ![設定画面2](./doc/ss07.png) 69 | 70 | 1. Assets から、作業ウインドウに、以下をD&D。 71 | * 設定したい Custom Font 72 | * ビットマップフォント画像 73 | 2. Grid Layout 以下の項目を入力。 74 | * Use Texture Area : 画像内でフォント部分が置かれている領域を指定。 75 | * Font Count X : 横方向にいくつ文字があるか。 76 | * Font Count Y : 縦方向にいくつ文字があるか。 77 | * Character Length : 何文字分設定するか。 78 | 3. Set Character Rects ボタンを押す。 79 | 4. Custom Font の Ascii Start Offset に、使う文字の一番最初のASCIIコードを入力。 80 | 81 | ### 注意点 82 | 83 | * 設定後、Custom Font の Character Rects を開いたり閉じたりしないと、Gameビュー(?)に反映されない模様。 84 | * 0~9の数字だけを表示するなら、Ascii Start Offset は 48 (= '0')。 85 | * 記号、数字、アルファベットを表示するなら、Ascii Start Offset は 32 (= ' ' (空白文字))。 86 | * ShoeBox で出力した fnt なら、TAB文字情報も含まれてるので、Ascii Start Offset は 9 (= TAB文字)。 87 | 88 | ライセンス / License 89 | ------------------------- 90 | 91 | Public Domain 92 | 93 | 関連ツール / Tools 94 | ---------------------- 95 | 96 | * [BMFont - AngelCode.com](http://www.angelcode.com/products/bmfont/) - ビットマップフォント画像作成ツール。(Windows用) 97 | * [ShoeBox](http://renderhjs.net/shoebox/) - 2Dゲーム制作に特化した画像編集ツール。Adobe AIR製。BMFont互換のビットマップフォント画像を作成可能。 98 | * [hiero](http://code.google.com/p/libgdx/downloads/detail?name=hiero.jar) - Java製のビットマップフォント画像生成ツール。BMFont互換。 99 | 100 | 101 | 変更履歴 / Change Log 102 | --------------------------- 103 | 104 | * 2014/02/13 Unity 4.3.3f1で動作するように修正。 105 | * 2013/10/07 とりあえず作成 106 | 107 | 108 | -------------------------------------------------------------------------------- /Assets/Editor/ChrRectSet.cs: -------------------------------------------------------------------------------- 1 | using UnityEngine; 2 | using UnityEditor; 3 | using System.Collections.Generic; 4 | 5 | /* 6 | * Unity extension to set a custom font. 7 | * Set by using the information of fnt file bmfont outputs. 8 | * 9 | * Install: 10 | * Copy to Assets\Editor\ , this script. 11 | * 12 | * Use: 13 | * Custom -> Custom Font Setting -> Chr Rect Set. 14 | * 15 | * D&D, "Custom Font", "font texture" and "fnt file(.txt)" 16 | * Push "Set" button. 17 | * 18 | * or split. 19 | * D&D, "Custom Font" and "font texture". 20 | * input, Use Texture Area, Count X, Count Y and Char Length. 21 | * Push "Set" button. 22 | * 23 | * License: 24 | * Public Domain. 25 | */ 26 | public class ChrRectSet : EditorWindow { 27 | public Font customFontObj; 28 | public TextAsset fontPosTbl; 29 | public Texture fontTexture; 30 | public bool xoffsetEnable = true; 31 | public Vector2 scrollPos; 32 | 33 | public Rect useTexRect = new Rect(0, 0, 256, 256); 34 | public int fontCountX = 8; 35 | public int fontCountY = 8; 36 | public int fontLength = 64; 37 | 38 | struct ChrRect { 39 | public int id; 40 | public int x; 41 | public int y; 42 | public int w; 43 | public int h; 44 | public int xofs; 45 | public int yofs; 46 | 47 | public int index; 48 | public float uvX; 49 | public float uvY; 50 | public float uvW; 51 | public float uvH; 52 | public float vertX; 53 | public float vertY; 54 | public float vertW; 55 | public float vertH; 56 | public float width; 57 | } 58 | 59 | // add menu 60 | [MenuItem("Custom/Custom Font Setting/Chr Rect Set")] 61 | static void Init() { 62 | EditorWindow.GetWindow(typeof(ChrRectSet)); 63 | } 64 | 65 | // layout window 66 | void OnGUI() { 67 | EditorGUILayout.BeginScrollView(scrollPos); 68 | 69 | // use .fnt(.txt) 70 | customFontObj = (Font)EditorGUILayout.ObjectField("Custom Font", customFontObj, typeof(Font), false); 71 | fontTexture = (Texture)EditorGUILayout.ObjectField("Font Texture", fontTexture, typeof(Texture), false); 72 | EditorGUILayout.Space(); 73 | EditorGUILayout.LabelField("Use BMFont fnt File", EditorStyles.boldLabel); 74 | fontPosTbl = (TextAsset)EditorGUILayout.ObjectField("BMFont fnt (.txt)", fontPosTbl, typeof(TextAsset), false); 75 | xoffsetEnable = EditorGUILayout.Toggle("xoffset Enable", xoffsetEnable); 76 | if (GUILayout.Button("Set Character Rects")) { 77 | if (customFontObj == null) this.ShowNotification(new GUIContent("No Custom Font selected")); 78 | else if (fontTexture == null) this.ShowNotification(new GUIContent("No Font Texture selected")); 79 | else if (fontPosTbl == null) this.ShowNotification(new GUIContent("No Font Position Table file selected")); 80 | else { 81 | CalcChrRect(customFontObj, fontPosTbl, fontTexture); 82 | } 83 | } 84 | 85 | // split 86 | EditorGUILayout.Space(); 87 | EditorGUILayout.LabelField("Grid Layout", EditorStyles.boldLabel); 88 | useTexRect = EditorGUILayout.RectField("Use Texture Area", useTexRect); 89 | fontCountX = EditorGUILayout.IntField("Font Count X", fontCountX); 90 | fontCountY = EditorGUILayout.IntField("Font Count Y", fontCountY); 91 | fontLength = EditorGUILayout.IntField("Character Length", fontLength); 92 | if (GUILayout.Button("Set Character Rects")) { 93 | if (customFontObj == null) this.ShowNotification(new GUIContent("No Custom Font selected")); 94 | else if (fontTexture == null) this.ShowNotification(new GUIContent("No Font Texture selected")); 95 | else CalcChrRectGrid(customFontObj, fontTexture, useTexRect, fontCountX, fontCountY, fontLength); 96 | } 97 | 98 | EditorGUILayout.EndScrollView(); 99 | } 100 | 101 | void OnInspectorUpdate() { 102 | this.Repaint(); 103 | } 104 | 105 | // set by .fnt(.txt) 106 | void CalcChrRect(Font fontObj, TextAsset posTbl, Texture tex) { 107 | float imgw = (float)tex.width; 108 | float imgh = (float)tex.height; 109 | string txt = posTbl.text; 110 | List tblList = new List(); 111 | int asciiStartOffset = int.MaxValue; 112 | int maxH = 0; 113 | foreach (string line in txt.Split('\n')) { 114 | if (line.IndexOf("char id=") == 0) { 115 | ChrRect d = GetChrRect(line, imgw, imgh); 116 | if (asciiStartOffset > d.id) asciiStartOffset = d.id; 117 | if (maxH < d.h) maxH = d.h; 118 | tblList.Add(d); 119 | } 120 | } 121 | ChrRect[] tbls = tblList.ToArray(); 122 | 123 | // index value 124 | for (int i = 0; i < tbls.Length; i++) { 125 | tbls[i].index = tbls[i].id - asciiStartOffset; 126 | } 127 | 128 | // make new CharacterInfo 129 | SetCharacterInfo(tbls, fontObj); 130 | // fontObj.asciiStartOffset = asciiStartOffset; 131 | 132 | this.ShowNotification(new GUIContent("Complete")); 133 | } 134 | 135 | // set by split 136 | void CalcChrRectGrid(Font fontObj, Texture tex, Rect area, int xc, int yc, int num) { 137 | float imgw = (float)tex.width; 138 | float imgh = (float)tex.height; 139 | int fw = (int)(area.width - area.x) / xc; 140 | int fh = (int)(area.height - area.y) / yc; 141 | List tblList = new List(); 142 | for (int i = 0; i < num; i++) { 143 | int xi = i % xc; 144 | int yi = i / xc; 145 | ChrRect d = new ChrRect(); 146 | d.index = i; 147 | d.uvX = (float)(area.x + (fw * xi)) / imgw; 148 | d.uvY = (float)(imgh - (area.y + (fh * yi) + fh)) / imgh; 149 | d.uvW = (float)fw / imgw; 150 | d.uvH = (float)fh / imgh; 151 | d.vertX = 0; 152 | d.vertY = 0; 153 | d.vertW = fw; 154 | d.vertH = -fh; 155 | d.width = fw; 156 | tblList.Add(d); 157 | } 158 | ChrRect[] tbls = tblList.ToArray(); 159 | SetCharacterInfo(tbls, fontObj); 160 | this.ShowNotification(new GUIContent("Complete")); 161 | } 162 | 163 | // over write custom font by new CharacterInfo 164 | void SetCharacterInfo(ChrRect[] tbls, Font fontObj) { 165 | CharacterInfo[] nci = new CharacterInfo[tbls.Length]; 166 | for (int i = 0; i < tbls.Length; i++) { 167 | nci[i].index = tbls[i].index; 168 | nci[i].width = tbls[i].width; 169 | nci[i].uv.x = tbls[i].uvX; 170 | nci[i].uv.y = tbls[i].uvY; 171 | nci[i].uv.width = tbls[i].uvW; 172 | nci[i].uv.height = tbls[i].uvH; 173 | nci[i].vert.x = tbls[i].vertX; 174 | nci[i].vert.y = tbls[i].vertY; 175 | nci[i].vert.width = tbls[i].vertW; 176 | nci[i].vert.height = tbls[i].vertH; 177 | } 178 | fontObj.characterInfo = nci; 179 | } 180 | 181 | // get font table one line. 182 | ChrRect GetChrRect(string line, float imgw, float imgh) { 183 | ChrRect d = new ChrRect(); 184 | 185 | foreach (string s in line.Split(' ')) { 186 | if (s.IndexOf("id=") >= 0) d.id = GetParamInt(s, "id="); 187 | else if (s.IndexOf("x=") >= 0) d.x = GetParamInt(s, "x="); 188 | else if (s.IndexOf("y=") >= 0) d.y = GetParamInt(s, "y="); 189 | else if (s.IndexOf("width=") >= 0) d.w = GetParamInt(s, "width="); 190 | else if (s.IndexOf("height=") >= 0) d.h = GetParamInt(s, "height="); 191 | else if (s.IndexOf("xoffset=") >= 0) d.xofs = GetParamInt(s, "xoffset="); 192 | else if (s.IndexOf("yoffset=") >= 0) d.yofs = GetParamInt(s, "yoffset="); 193 | else if (s.IndexOf("xadvance=") >= 0) d.width = GetParamInt(s, "xadvance="); 194 | } 195 | 196 | d.uvX = (float)d.x / imgw; 197 | d.uvY = (float)(imgh - d.y - d.h) / imgh; 198 | d.uvW = (float)d.w / imgw; 199 | d.uvH = (float)d.h / imgh; 200 | 201 | d.vertX = (xoffsetEnable) ? (float)d.xofs : 0.0f; 202 | d.vertY = -(float)d.yofs; 203 | d.vertW = d.w; 204 | d.vertH = -d.h; 205 | 206 | return d; 207 | } 208 | 209 | // "wd=int" to int 210 | int GetParamInt(string s, string wd) { 211 | if (s.IndexOf(wd) >= 0) { 212 | int v; 213 | if (int.TryParse(s.Substring(wd.Length), out v)) return v; 214 | } 215 | return int.MaxValue; 216 | } 217 | } 218 | -------------------------------------------------------------------------------- /Assets/bmfont/yanone.txt: -------------------------------------------------------------------------------- 1 | info face="font" size=32 bold=0 italic=0 charset="" unicode=0 stretchH=100 smooth=1 aa=1 padding=0,0,0,0 spacing=1,1 2 | common lineHeight=31 base=26 scaleW=256 scaleH=256 pages=1 packed=0 alphaChnl=1 redChnl=0 greenChnl=0 blueChnl=0 3 | page id=0 file="font.png" 4 | chars count=96 5 | char id=33 x=114 y=0 width=11 height=23 xoffset=0 yoffset=8 xadvance=13 page=0 chnl=0 letter="!" 6 | char id=34 x=50 y=241 width=13 height=12 xoffset=0 yoffset=6 xadvance=15 page=0 chnl=0 letter=""" 7 | char id=35 x=0 y=196 width=16 height=15 xoffset=0 yoffset=13 xadvance=18 page=0 chnl=0 letter="#" 8 | char id=36 x=35 y=146 width=15 height=27 xoffset=0 yoffset=7 xadvance=17 page=0 chnl=0 letter="$" 9 | char id=37 x=0 y=24 width=22 height=23 xoffset=0 yoffset=8 xadvance=24 page=0 chnl=0 letter="%" 10 | char id=38 x=0 y=95 width=19 height=23 xoffset=0 yoffset=8 xadvance=21 page=0 chnl=0 letter="&" 11 | char id=39 x=56 y=24 width=10 height=11 xoffset=0 yoffset=6 xadvance=12 page=0 chnl=0 letter="'" 12 | char id=40 x=123 y=187 width=12 height=30 xoffset=0 yoffset=6 xadvance=14 page=0 chnl=0 letter="(" 13 | char id=41 x=112 y=29 width=12 height=30 xoffset=0 yoffset=6 xadvance=14 page=0 chnl=0 letter=")" 14 | char id=42 x=0 y=143 width=17 height=18 xoffset=0 yoffset=8 xadvance=19 page=0 chnl=0 letter="*" 15 | char id=43 x=0 y=162 width=17 height=14 xoffset=0 yoffset=14 xadvance=19 page=0 chnl=0 letter="+" 16 | char id=44 x=96 y=196 width=9 height=10 xoffset=0 yoffset=23 xadvance=11 page=0 chnl=0 letter="," 17 | char id=45 x=110 y=187 width=12 height=8 xoffset=0 yoffset=17 xadvance=14 page=0 chnl=0 letter="-" 18 | char id=46 x=71 y=48 width=9 height=9 xoffset=0 yoffset=22 xadvance=11 page=0 chnl=0 letter="." 19 | char id=47 x=53 y=68 width=15 height=24 xoffset=0 yoffset=7 xadvance=17 page=0 chnl=0 letter="/" 20 | char id=48 x=37 y=72 width=15 height=20 xoffset=0 yoffset=11 xadvance=17 page=0 chnl=0 letter="0" 21 | char id=49 x=34 y=194 width=16 height=20 xoffset=0 yoffset=11 xadvance=18 page=0 chnl=0 letter="1" 22 | char id=50 x=23 y=0 width=16 height=20 xoffset=0 yoffset=11 xadvance=18 page=0 chnl=0 letter="2" 23 | char id=51 x=39 y=45 width=15 height=22 xoffset=0 yoffset=11 xadvance=17 page=0 chnl=0 letter="3" 24 | char id=52 x=17 y=231 width=16 height=21 xoffset=0 yoffset=10 xadvance=18 page=0 chnl=0 letter="4" 25 | char id=53 x=35 y=99 width=15 height=22 xoffset=0 yoffset=11 xadvance=17 page=0 chnl=0 letter="5" 26 | char id=54 x=34 y=215 width=15 height=23 xoffset=0 yoffset=8 xadvance=17 page=0 chnl=0 letter="6" 27 | char id=55 x=20 y=76 width=16 height=22 xoffset=0 yoffset=11 xadvance=18 page=0 chnl=0 letter="7" 28 | char id=56 x=35 y=122 width=15 height=23 xoffset=0 yoffset=8 xadvance=17 page=0 chnl=0 letter="8" 29 | char id=57 x=17 y=196 width=16 height=22 xoffset=0 yoffset=11 xadvance=18 page=0 chnl=0 letter="9" 30 | char id=58 x=95 y=238 width=9 height=17 xoffset=0 yoffset=14 xadvance=11 page=0 chnl=0 letter=":" 31 | char id=59 x=124 y=116 width=9 height=19 xoffset=0 yoffset=14 xadvance=11 page=0 chnl=0 letter=";" 32 | char id=60 x=34 y=239 width=15 height=16 xoffset=0 yoffset=14 xadvance=17 page=0 chnl=0 letter="<" 33 | char id=61 x=35 y=174 width=15 height=13 xoffset=0 yoffset=15 xadvance=17 page=0 chnl=0 letter="=" 34 | char id=62 x=40 y=25 width=15 height=14 xoffset=0 yoffset=15 xadvance=17 page=0 chnl=0 letter=">" 35 | char id=63 x=110 y=139 width=13 height=23 xoffset=0 yoffset=8 xadvance=15 page=0 chnl=0 letter="?" 36 | char id=64 x=0 y=48 width=21 height=27 xoffset=0 yoffset=9 xadvance=23 page=0 chnl=0 letter="@" 37 | char id=65 x=0 y=119 width=17 height=23 xoffset=0 yoffset=8 xadvance=19 page=0 chnl=0 letter="A" 38 | char id=66 x=84 y=48 width=13 height=23 xoffset=0 yoffset=8 xadvance=15 page=0 chnl=0 letter="B" 39 | char id=67 x=71 y=24 width=14 height=23 xoffset=0 yoffset=8 xadvance=16 page=0 chnl=0 letter="C" 40 | char id=68 x=82 y=155 width=13 height=23 xoffset=0 yoffset=8 xadvance=15 page=0 chnl=0 letter="D" 41 | char id=69 x=82 y=131 width=13 height=23 xoffset=0 yoffset=8 xadvance=15 page=0 chnl=0 letter="E" 42 | char id=70 x=82 y=107 width=13 height=23 xoffset=0 yoffset=8 xadvance=15 page=0 chnl=0 letter="F" 43 | char id=71 x=51 y=93 width=15 height=23 xoffset=0 yoffset=8 xadvance=17 page=0 chnl=0 letter="G" 44 | char id=72 x=69 y=64 width=14 height=23 xoffset=0 yoffset=8 xadvance=16 page=0 chnl=0 letter="H" 45 | char id=73 x=123 y=218 width=9 height=23 xoffset=0 yoffset=8 xadvance=11 page=0 chnl=0 letter="I" 46 | char id=74 x=81 y=232 width=13 height=23 xoffset=0 yoffset=8 xadvance=15 page=0 chnl=0 letter="J" 47 | char id=75 x=66 y=208 width=15 height=23 xoffset=0 yoffset=8 xadvance=17 page=0 chnl=0 letter="K" 48 | char id=76 x=96 y=72 width=13 height=23 xoffset=0 yoffset=8 xadvance=15 page=0 chnl=0 letter="L" 49 | char id=77 x=18 y=170 width=16 height=23 xoffset=0 yoffset=8 xadvance=18 page=0 chnl=0 letter="M" 50 | char id=78 x=55 y=40 width=15 height=23 xoffset=0 yoffset=8 xadvance=17 page=0 chnl=0 letter="N" 51 | char id=79 x=56 y=0 width=15 height=23 xoffset=0 yoffset=8 xadvance=17 page=0 chnl=0 letter="O" 52 | char id=80 x=110 y=163 width=13 height=23 xoffset=0 yoffset=8 xadvance=15 page=0 chnl=0 letter="P" 53 | char id=81 x=18 y=119 width=16 height=26 xoffset=0 yoffset=8 xadvance=18 page=0 chnl=0 letter="Q" 54 | char id=82 x=67 y=180 width=14 height=23 xoffset=0 yoffset=8 xadvance=16 page=0 chnl=0 letter="R" 55 | char id=83 x=66 y=232 width=14 height=23 xoffset=0 yoffset=8 xadvance=16 page=0 chnl=0 letter="S" 56 | char id=84 x=22 y=48 width=16 height=23 xoffset=0 yoffset=8 xadvance=18 page=0 chnl=0 letter="T" 57 | char id=85 x=67 y=118 width=14 height=23 xoffset=0 yoffset=8 xadvance=16 page=0 chnl=0 letter="U" 58 | char id=86 x=23 y=21 width=16 height=23 xoffset=0 yoffset=8 xadvance=18 page=0 chnl=0 letter="V" 59 | char id=87 x=0 y=0 width=22 height=23 xoffset=0 yoffset=8 xadvance=24 page=0 chnl=0 letter="W" 60 | char id=88 x=0 y=222 width=16 height=23 xoffset=0 yoffset=8 xadvance=18 page=0 chnl=0 letter="X" 61 | char id=89 x=51 y=141 width=15 height=23 xoffset=0 yoffset=8 xadvance=17 page=0 chnl=0 letter="Y" 62 | char id=90 x=51 y=117 width=15 height=23 xoffset=0 yoffset=8 xadvance=17 page=0 chnl=0 letter="Z" 63 | char id=91 x=82 y=179 width=13 height=30 xoffset=0 yoffset=6 xadvance=15 page=0 chnl=0 letter="[" 64 | char id=92 x=50 y=215 width=15 height=25 xoffset=0 yoffset=7 xadvance=17 page=0 chnl=0 letter="\" 65 | char id=93 x=96 y=96 width=13 height=30 xoffset=0 yoffset=6 xadvance=15 page=0 chnl=0 letter="]" 66 | char id=94 x=17 y=219 width=16 height=11 xoffset=0 yoffset=15 xadvance=18 page=0 chnl=0 letter="^" 67 | char id=95 x=0 y=246 width=15 height=8 xoffset=0 yoffset=26 xadvance=17 page=0 chnl=0 letter="_" 68 | char id=96 x=84 y=72 width=11 height=11 xoffset=0 yoffset=7 xadvance=13 page=0 chnl=0 letter="`" 69 | char id=97 x=67 y=142 width=14 height=18 xoffset=0 yoffset=13 xadvance=16 page=0 chnl=0 letter="a" 70 | char id=98 x=96 y=127 width=13 height=24 xoffset=0 yoffset=7 xadvance=15 page=0 chnl=0 letter="b" 71 | char id=99 x=86 y=28 width=13 height=18 xoffset=0 yoffset=13 xadvance=15 page=0 chnl=0 letter="c" 72 | char id=100 x=98 y=47 width=13 height=24 xoffset=0 yoffset=7 xadvance=15 page=0 chnl=0 letter="d" 73 | char id=101 x=96 y=152 width=13 height=18 xoffset=0 yoffset=13 xadvance=15 page=0 chnl=0 letter="e" 74 | char id=102 x=40 y=0 width=15 height=24 xoffset=0 yoffset=7 xadvance=17 page=0 chnl=0 letter="f" 75 | char id=103 x=18 y=146 width=16 height=23 xoffset=0 yoffset=13 xadvance=18 page=0 chnl=0 letter="g" 76 | char id=104 x=96 y=171 width=13 height=24 xoffset=0 yoffset=7 xadvance=15 page=0 chnl=0 letter="h" 77 | char id=105 x=124 y=60 width=9 height=23 xoffset=0 yoffset=8 xadvance=11 page=0 chnl=0 letter="i" 78 | char id=106 x=100 y=0 width=13 height=28 xoffset=0 yoffset=8 xadvance=15 page=0 chnl=0 letter="j" 79 | char id=107 x=67 y=93 width=14 height=24 xoffset=0 yoffset=7 xadvance=16 page=0 chnl=0 letter="k" 80 | char id=108 x=124 y=136 width=9 height=24 xoffset=0 yoffset=7 xadvance=11 page=0 chnl=0 letter="l" 81 | char id=109 x=0 y=177 width=17 height=18 xoffset=0 yoffset=13 xadvance=19 page=0 chnl=0 letter="m" 82 | char id=110 x=110 y=72 width=13 height=18 xoffset=0 yoffset=13 xadvance=15 page=0 chnl=0 letter="n" 83 | char id=111 x=67 y=161 width=14 height=18 xoffset=0 yoffset=13 xadvance=16 page=0 chnl=0 letter="o" 84 | char id=112 x=110 y=91 width=13 height=23 xoffset=0 yoffset=13 xadvance=15 page=0 chnl=0 letter="p" 85 | char id=113 x=110 y=115 width=13 height=23 xoffset=0 yoffset=13 xadvance=15 page=0 chnl=0 letter="q" 86 | char id=114 x=82 y=210 width=12 height=18 xoffset=0 yoffset=13 xadvance=14 page=0 chnl=0 letter="r" 87 | char id=115 x=82 y=88 width=13 height=18 xoffset=0 yoffset=13 xadvance=15 page=0 chnl=0 letter="s" 88 | char id=116 x=109 y=215 width=13 height=22 xoffset=0 yoffset=9 xadvance=15 page=0 chnl=0 letter="t" 89 | char id=117 x=109 y=196 width=13 height=18 xoffset=0 yoffset=13 xadvance=15 page=0 chnl=0 letter="u" 90 | char id=118 x=20 y=99 width=14 height=18 xoffset=0 yoffset=13 xadvance=16 page=0 chnl=0 letter="v" 91 | char id=119 x=0 y=76 width=19 height=18 xoffset=0 yoffset=13 xadvance=21 page=0 chnl=0 letter="w" 92 | char id=120 x=51 y=165 width=15 height=18 xoffset=0 yoffset=13 xadvance=17 page=0 chnl=0 letter="x" 93 | char id=121 x=51 y=184 width=15 height=23 xoffset=0 yoffset=13 xadvance=17 page=0 chnl=0 letter="y" 94 | char id=122 x=72 y=0 width=13 height=18 xoffset=0 yoffset=13 xadvance=15 page=0 chnl=0 letter="z" 95 | char id=123 x=86 y=0 width=13 height=27 xoffset=0 yoffset=7 xadvance=15 page=0 chnl=0 letter="{" 96 | char id=124 x=124 y=84 width=9 height=31 xoffset=0 yoffset=5 xadvance=11 page=0 chnl=0 letter="|" 97 | char id=125 x=95 y=210 width=13 height=27 xoffset=0 yoffset=7 xadvance=15 page=0 chnl=0 letter="}" 98 | char id=126 x=0 y=212 width=16 height=9 xoffset=0 yoffset=17 xadvance=18 page=0 chnl=0 letter="~" 99 | char id=32 x=0 y=0 width=0 height=0 xoffset=0 yoffset=0 xadvance=9 page=0 chnl=0 letter=" " 100 | char id=9 x=0 y=0 width=0 height=0 xoffset=0 yoffset=0 xadvance=72 page=0 chnl=0 letter=" " 101 | 102 | kernings count=0 103 | -------------------------------------------------------------------------------- /Assets/bmfont/mp2pbold.fnt.txt: -------------------------------------------------------------------------------- 1 | info face="M+ 2p bold" size=-20 bold=0 italic=0 charset="ANSI" unicode=0 stretchH=100 smooth=1 aa=4 padding=1,1,1,1 spacing=1,1 outline=2 2 | common lineHeight=28 base=22 scaleW=256 scaleH=256 pages=1 packed=0 alphaChnl=1 redChnl=0 greenChnl=0 blueChnl=0 3 | page id=0 file="myfont0_0.png" 4 | chars count=95 5 | char id=32 x=247 y=108 width=7 height=7 xoffset=-3 yoffset=-3 xadvance=6 page=0 chnl=15 6 | char id=33 x=125 y=93 width=10 height=21 xoffset=-1 yoffset=3 xadvance=8 page=0 chnl=15 7 | char id=34 x=0 y=136 width=14 height=12 xoffset=-2 yoffset=3 xadvance=9 page=0 chnl=15 8 | char id=35 x=196 y=46 width=19 height=21 xoffset=-3 yoffset=3 xadvance=13 page=0 chnl=15 9 | char id=36 x=24 y=0 width=17 height=25 xoffset=-3 yoffset=2 xadvance=12 page=0 chnl=15 10 | char id=37 x=152 y=0 width=23 height=22 xoffset=-3 yoffset=3 xadvance=18 page=0 chnl=15 11 | char id=38 x=199 y=0 width=21 height=22 xoffset=-3 yoffset=3 xadvance=15 page=0 chnl=15 12 | char id=39 x=41 y=136 width=10 height=12 xoffset=-2 yoffset=3 xadvance=5 page=0 chnl=15 13 | char id=40 x=73 y=0 width=13 height=25 xoffset=-2 yoffset=3 xadvance=8 page=0 chnl=15 14 | char id=41 x=115 y=0 width=13 height=25 xoffset=-3 yoffset=3 xadvance=8 page=0 chnl=15 15 | char id=42 x=211 y=109 width=16 height=16 xoffset=-3 yoffset=3 xadvance=11 page=0 chnl=15 16 | char id=43 x=148 y=93 width=18 height=18 xoffset=-2 yoffset=6 xadvance=14 page=0 chnl=15 17 | char id=44 x=29 y=136 width=11 height=12 xoffset=-2 yoffset=15 xadvance=7 page=0 chnl=15 18 | char id=45 x=103 y=134 width=13 height=9 xoffset=-2 yoffset=11 xadvance=9 page=0 chnl=15 19 | char id=46 x=72 y=135 width=10 height=10 xoffset=-2 yoffset=15 xadvance=6 page=0 chnl=15 20 | char id=47 x=17 y=51 width=16 height=22 xoffset=-3 yoffset=3 xadvance=11 page=0 chnl=15 21 | char id=48 x=79 y=26 width=18 height=22 xoffset=-3 yoffset=3 xadvance=12 page=0 chnl=15 22 | char id=49 x=99 y=93 width=14 height=21 xoffset=-2 yoffset=3 xadvance=12 page=0 chnl=15 23 | char id=50 x=239 y=68 width=16 height=21 xoffset=-2 yoffset=3 xadvance=12 page=0 chnl=15 24 | char id=51 x=135 y=25 width=17 height=22 xoffset=-2 yoffset=3 xadvance=12 page=0 chnl=15 25 | char id=52 x=236 y=46 width=18 height=21 xoffset=-3 yoffset=3 xadvance=12 page=0 chnl=15 26 | char id=53 x=34 y=96 width=16 height=21 xoffset=-2 yoffset=3 xadvance=12 page=0 chnl=15 27 | char id=54 x=98 y=26 width=18 height=22 xoffset=-3 yoffset=3 xadvance=12 page=0 chnl=15 28 | char id=55 x=186 y=68 width=17 height=21 xoffset=-2 yoffset=3 xadvance=12 page=0 chnl=15 29 | char id=56 x=41 y=26 width=18 height=22 xoffset=-3 yoffset=3 xadvance=12 page=0 chnl=15 30 | char id=57 x=60 y=26 width=18 height=22 xoffset=-3 yoffset=3 xadvance=12 page=0 chnl=15 31 | char id=58 x=203 y=90 width=10 height=18 xoffset=-1 yoffset=7 xadvance=8 page=0 chnl=15 32 | char id=59 x=136 y=93 width=11 height=20 xoffset=-2 yoffset=7 xadvance=8 page=0 chnl=15 33 | char id=60 x=185 y=90 width=17 height=18 xoffset=-2 yoffset=6 xadvance=13 page=0 chnl=15 34 | char id=61 x=228 y=108 width=18 height=14 xoffset=-2 yoffset=9 xadvance=15 page=0 chnl=15 35 | char id=62 x=167 y=93 width=17 height=18 xoffset=-2 yoffset=6 xadvance=13 page=0 chnl=15 36 | char id=63 x=150 y=71 width=17 height=21 xoffset=-2 yoffset=3 xadvance=12 page=0 chnl=15 37 | char id=64 x=176 y=0 width=22 height=22 xoffset=-3 yoffset=5 xadvance=16 page=0 chnl=15 38 | char id=65 x=175 y=46 width=20 height=21 xoffset=-3 yoffset=3 xadvance=14 page=0 chnl=15 39 | char id=66 x=168 y=68 width=17 height=21 xoffset=-2 yoffset=3 xadvance=12 page=0 chnl=15 40 | char id=67 x=21 y=27 width=19 height=22 xoffset=-3 yoffset=3 xadvance=14 page=0 chnl=15 41 | char id=68 x=57 y=72 width=18 height=21 xoffset=-2 yoffset=3 xadvance=14 page=0 chnl=15 42 | char id=69 x=222 y=68 width=16 height=21 xoffset=-2 yoffset=3 xadvance=12 page=0 chnl=15 43 | char id=70 x=51 y=95 width=15 height=21 xoffset=-2 yoffset=3 xadvance=11 page=0 chnl=15 44 | char id=71 x=0 y=28 width=20 height=22 xoffset=-3 yoffset=3 xadvance=15 page=0 chnl=15 45 | char id=72 x=0 y=74 width=18 height=21 xoffset=-2 yoffset=3 xadvance=14 page=0 chnl=15 46 | char id=73 x=114 y=93 width=10 height=21 xoffset=-2 yoffset=3 xadvance=7 page=0 chnl=15 47 | char id=74 x=0 y=96 width=16 height=21 xoffset=-3 yoffset=3 xadvance=11 page=0 chnl=15 48 | char id=75 x=19 y=74 width=18 height=21 xoffset=-2 yoffset=3 xadvance=13 page=0 chnl=15 49 | char id=76 x=17 y=96 width=16 height=21 xoffset=-2 yoffset=3 xadvance=12 page=0 chnl=15 50 | char id=77 x=110 y=49 width=22 height=21 xoffset=-3 yoffset=3 xadvance=17 page=0 chnl=15 51 | char id=78 x=38 y=73 width=18 height=21 xoffset=-2 yoffset=3 xadvance=14 page=0 chnl=15 52 | char id=79 x=221 y=0 width=21 height=22 xoffset=-3 yoffset=3 xadvance=16 page=0 chnl=15 53 | char id=80 x=132 y=71 width=17 height=21 xoffset=-2 yoffset=3 xadvance=12 page=0 chnl=15 54 | char id=81 x=129 y=0 width=22 height=24 xoffset=-3 yoffset=3 xadvance=16 page=0 chnl=15 55 | char id=82 x=114 y=71 width=17 height=21 xoffset=-2 yoffset=3 xadvance=13 page=0 chnl=15 56 | char id=83 x=153 y=23 width=17 height=22 xoffset=-2 yoffset=3 xadvance=12 page=0 chnl=15 57 | char id=84 x=76 y=72 width=18 height=21 xoffset=-2 yoffset=3 xadvance=13 page=0 chnl=15 58 | char id=85 x=95 y=71 width=18 height=21 xoffset=-2 yoffset=3 xadvance=14 page=0 chnl=15 59 | char id=86 x=154 y=46 width=20 height=21 xoffset=-3 yoffset=3 xadvance=14 page=0 chnl=15 60 | char id=87 x=85 y=49 width=24 height=21 xoffset=-3 yoffset=3 xadvance=19 page=0 chnl=15 61 | char id=88 x=216 y=46 width=19 height=21 xoffset=-3 yoffset=3 xadvance=13 page=0 chnl=15 62 | char id=89 x=133 y=49 width=20 height=21 xoffset=-3 yoffset=3 xadvance=14 page=0 chnl=15 63 | char id=90 x=204 y=68 width=17 height=21 xoffset=-2 yoffset=3 xadvance=13 page=0 chnl=15 64 | char id=91 x=87 y=0 width=13 height=25 xoffset=-1 yoffset=3 xadvance=10 page=0 chnl=15 65 | char id=92 x=68 y=49 width=16 height=22 xoffset=-3 yoffset=3 xadvance=11 page=0 chnl=15 66 | char id=93 x=101 y=0 width=13 height=25 xoffset=-2 yoffset=3 xadvance=10 page=0 chnl=15 67 | char id=94 x=191 y=109 width=19 height=16 xoffset=-3 yoffset=3 xadvance=14 page=0 chnl=15 68 | char id=95 x=83 y=134 width=19 height=9 xoffset=-3 yoffset=19 xadvance=12 page=0 chnl=15 69 | char id=96 x=15 y=136 width=13 height=12 xoffset=-3 yoffset=2 xadvance=6 page=0 chnl=15 70 | char id=97 x=127 y=115 width=16 height=17 xoffset=-3 yoffset=7 xadvance=11 page=0 chnl=15 71 | char id=98 x=117 y=26 width=17 height=22 xoffset=-2 yoffset=3 xadvance=12 page=0 chnl=15 72 | char id=99 x=76 y=116 width=16 height=17 xoffset=-3 yoffset=7 xadvance=10 page=0 chnl=15 73 | char id=100 x=51 y=49 width=16 height=22 xoffset=-3 yoffset=3 xadvance=12 page=0 chnl=15 74 | char id=101 x=237 y=90 width=17 height=17 xoffset=-3 yoffset=7 xadvance=11 page=0 chnl=15 75 | char id=102 x=67 y=94 width=15 height=21 xoffset=-3 yoffset=3 xadvance=10 page=0 chnl=15 76 | char id=103 x=189 y=23 width=17 height=22 xoffset=-3 yoffset=7 xadvance=12 page=0 chnl=15 77 | char id=104 x=34 y=50 width=16 height=22 xoffset=-2 yoffset=3 xadvance=12 page=0 chnl=15 78 | char id=105 x=242 y=23 width=9 height=22 xoffset=-2 yoffset=3 xadvance=6 page=0 chnl=15 79 | char id=106 x=10 y=0 width=13 height=26 xoffset=-3 yoffset=3 xadvance=7 page=0 chnl=15 80 | char id=107 x=171 y=23 width=17 height=22 xoffset=-2 yoffset=3 xadvance=12 page=0 chnl=15 81 | char id=108 x=243 y=0 width=9 height=22 xoffset=-2 yoffset=3 xadvance=6 page=0 chnl=15 82 | char id=109 x=0 y=118 width=21 height=17 xoffset=-2 yoffset=7 xadvance=16 page=0 chnl=15 83 | char id=110 x=93 y=116 width=16 height=17 xoffset=-2 yoffset=7 xadvance=12 page=0 chnl=15 84 | char id=111 x=22 y=118 width=17 height=17 xoffset=-3 yoffset=7 xadvance=11 page=0 chnl=15 85 | char id=112 x=225 y=23 width=16 height=22 xoffset=-2 yoffset=7 xadvance=12 page=0 chnl=15 86 | char id=113 x=0 y=51 width=16 height=22 xoffset=-3 yoffset=7 xadvance=12 page=0 chnl=15 87 | char id=114 x=176 y=112 width=14 height=17 xoffset=-2 yoffset=7 xadvance=9 page=0 chnl=15 88 | char id=115 x=144 y=114 width=15 height=17 xoffset=-3 yoffset=7 xadvance=10 page=0 chnl=15 89 | char id=116 x=83 y=94 width=15 height=21 xoffset=-3 yoffset=4 xadvance=10 page=0 chnl=15 90 | char id=117 x=110 y=115 width=16 height=17 xoffset=-2 yoffset=8 xadvance=11 page=0 chnl=15 91 | char id=118 x=40 y=118 width=17 height=17 xoffset=-3 yoffset=8 xadvance=11 page=0 chnl=15 92 | char id=119 x=214 y=90 width=22 height=17 xoffset=-3 yoffset=8 xadvance=16 page=0 chnl=15 93 | char id=120 x=58 y=117 width=17 height=17 xoffset=-3 yoffset=8 xadvance=11 page=0 chnl=15 94 | char id=121 x=207 y=23 width=17 height=22 xoffset=-3 yoffset=8 xadvance=11 page=0 chnl=15 95 | char id=122 x=160 y=112 width=15 height=17 xoffset=-2 yoffset=8 xadvance=11 page=0 chnl=15 96 | char id=123 x=58 y=0 width=14 height=25 xoffset=-2 yoffset=3 xadvance=10 page=0 chnl=15 97 | char id=124 x=0 y=0 width=9 height=27 xoffset=-1 yoffset=2 xadvance=7 page=0 chnl=15 98 | char id=125 x=42 y=0 width=15 height=25 xoffset=-2 yoffset=3 xadvance=10 page=0 chnl=15 99 | char id=126 x=52 y=136 width=19 height=11 xoffset=-3 yoffset=10 xadvance=14 page=0 chnl=15 100 | --------------------------------------------------------------------------------