精华内容
下载资源
问答
  • msdf-bmfont, 使用msdfgen生成BMFont纹理和规格 msdf-bmfont 将 .ttf 字体文件转换为多通道有符号距离字段,然后输出包装的spritesheets和 AngelCode BMfont的json表示。符号距离场是从纹理表示中再现向量形状的方法...
  • 写-bmfont-二进制 根据将 JSON BMFont 编码为二进制缓冲区。 可以在 Node 或浏览器中使用(例如使用 browserify)。 var font = require ( 'bmfont-lato' ) var write = require ( 'write-bmfont-binary' ) //...
  • BMFont 工具

    2016-04-16 13:38:37
    BMFont 工具
  • 转换-bmfont 将从一种格式转换为另一种格式的命令行工具。 默认输出以与其他模块组合。 安装: npm install convert-bmfont -g 用法: # convert text to binary convert-bmfont Arial.xml --format bin > ...
  • 解析-bmfont-二进制 根据将二进制缓冲区中的 BMFont 编码为 JSON。 可以在 Node 或浏览器中使用(例如使用 browserify)。 var parse = require ( 'parse-bmfont-binary' ) fs . readFile ( 'fonts/Lato.bin'...
  • 要获得旧版支持(例如3个r69-73,r79-108),请使用版本three-bmfont-text@2.3.0 。 下面是一个使用来通过XHR快速解析BMFont文件的示例: var createGeometry = require ( 'three-bmfont-text' ) var loadFont = ...
  • 解析-bmfont-ascii 解析 ASCII(文本) 。 接受一个字符串或缓冲区: var fs = require ( 'fs' ) var parse = require ( 'parse-bmfont-xml' ) fs . readFileSync ( __dirname + '/Arial.fnt' , function ( err ...
  • bmfont64.zip

    2021-03-23 19:04:31
    bmfont64.zip
  • 位图字体工具BMFont

    2019-04-09 14:11:42
    美工提供的位图字体,经常使用起来比较麻烦,这样就可以用字体工具BMFont,把位图字体做个一个FNT字体来使用啦
  • BMfont字体编辑插件

    2020-12-23 18:23:07
    CocosCrearor引擎插件,用于编辑BMfont字体,实测可用
  • BMFont位图制作工具

    2016-04-08 11:23:57
    BMFont是游戏中常用的字体制作工具,此BMFont下载后可以直接双击使用,省去安装。而且不会崩溃哦~,之前用安装好坑,老崩溃!
  • BMfont OpenGL C实现。 使用此轻量级库集成任何转换为​​位图的TrueType字体。 适合与AngelCode的BMFont工具一起使用。
  • BMFont 1.14 beta源码

    2015-07-23 12:21:33
    BMFont 1.14 beta版本源码
  • BMFont1.13字体制作工具

    2018-12-26 14:05:42
    BMFont1.13字体制作工具。可制作用于Unity、cocos的字体。
  • bmfont自定义字体工具,自己开发时应用的,拿出来大家分享
  • Unity BMFont自定义字体

    2020-04-20 16:59:33
    Unity中,使用位图字体工具BMFont从图片生成自定义字体流程 一、首先下载BMFont工具并安装:http://www.angelcode.com/products/bmfont/ 二、使用BMFont工具制作字体库 1、先做一些设定:"Options"->“Export ...

    Unity中,使用位图字体工具BMFont从图片生成自定义字体流程

    一、首先下载BMFont工具并安装:http://www.angelcode.com/products/bmfont/

    二、使用BMFont工具制作字体库

    1、先做一些设定:"Options"->“Export options”

    宽度设置为所有素材宽度总和,高度为素材的高度(长和宽可以设置得稍微大一点,注意不要大太多),位深设置为32,输出描述为XML格式,输出图片为PNG。

    2、点击"Edit"->"Open Image Manager",打开图片导入界面:

    3、点击"Image"->"Import image...":

    导入图片,填写图片的ID,如这里导入的是0,把鼠标放到0的位置就会显示0的AscII是48。按上述方法,依次加入其它字符的图片,然后关闭Image Manager弹窗。

    4、导出图片,导出之前可以先点击"Options"->"Visualize"预览一下:

    导出之前,点击"Edit"->"(Un)Select all chars",取消选择所有字符,避免将不需要的字符也导出来。最后点击"Options"->"Save bitmap font as..."导出字体。将生成的.fnt及.png复制到项目中,接下来开始制作字体。

    三、制作字体

    工程中添加制作字体的脚本:

    public class BMFont : EditorWindow
    {
        private TextAsset _fontTextAsset;
        private Texture _fontTexture;
        private string _fontsDir;
    
        [MenuItem("FontTools/BMFont", false, 12)]
        private static void BMFontTools()
        {
            BMFont bmFont = new BMFont();
            bmFont.Show();
        }
    
        private string _getAssetPath(string path)
        {
            string pathTemp = path.Replace("\\", "/");
            pathTemp = pathTemp.Replace(Application.dataPath, "Assets");
            return pathTemp;
        }
    
        void OnGUI()
        {
            EditorGUILayout.BeginVertical();
            TextAsset taTemp = EditorGUILayout.ObjectField("选择Font文件:", _fontTextAsset, typeof(TextAsset), true) as TextAsset;
            if (taTemp != _fontTextAsset && taTemp != null)
            {
                string assetDir = Directory.GetParent(AssetDatabase.GetAssetPath(taTemp)).FullName;
                assetDir = _getAssetPath(assetDir);
                string imgPath = string.Format("{0}/{1}_0.png", assetDir, taTemp.name);
                _fontTexture = AssetDatabase.LoadAssetAtPath<Texture>(imgPath);
                _fontsDir = string.Format("{0}.fontsettings", Path.Combine(assetDir, taTemp.name));
                if (_fontTexture == null)
                {
                    _fontsDir = string.Empty;
                    Debug.LogError(string.Format("未发现{0}文件", imgPath));
                }
            }
            _fontTextAsset = taTemp;
    
            _fontTexture = EditorGUILayout.ObjectField("选择Font图片文件:", _fontTexture, typeof(Texture), true) as Texture;
    
            GUI.enabled = false;
            _fontsDir = EditorGUILayout.TextField("字体生成路径:", _fontsDir);
            GUI.enabled = true;
            if (GUILayout.Button("Generate Font"))
            {
                if (!string.IsNullOrEmpty(_fontsDir))
                {
                    Material mat = AssetDatabase.LoadAssetAtPath<Material>(_fontsDir.Replace(".fontsettings", ".mat"));
                    if (mat == null)
                    {
                        mat = new Material(Shader.Find("UI/Default Font"));
                        AssetDatabase.CreateAsset(mat, _fontsDir.Replace(".fontsettings", ".mat"));
                    }
                    if (_fontTexture != null)
                    {
                        mat = AssetDatabase.LoadAssetAtPath<Material>(_fontsDir.Replace(".fontsettings", ".mat"));
                        mat.SetTexture("_MainTex", _fontTexture);
                    }
                    else
                    {
                        Debug.LogError("贴图未做配置,请检查配置");
                        return;
                    }
    
                    Font font = AssetDatabase.LoadAssetAtPath<Font>(_fontsDir);
                    if (font == null)
                    {
                        font = new Font();
                        AssetDatabase.CreateAsset(font, _fontsDir);
                    }
    
                    _setFontInfo(AssetDatabase.LoadAssetAtPath<Font>(_fontsDir),
                        AssetDatabase.GetAssetPath(_fontTextAsset),
                        _fontTexture);
                    font = AssetDatabase.LoadAssetAtPath<Font>(_fontsDir);
                    font.material = mat;
                }
                else
                {
                    Debug.LogError("创建失败,请检查配置");
                }
            }
            EditorGUILayout.EndVertical();
        }
    
        private void _setFontInfo(Font font, string fontConfig, Texture texture)
        {
            XmlDocument xml = new XmlDocument();
            xml.Load(fontConfig);
            List<CharacterInfo> chtInfoList = new List<CharacterInfo>();
            XmlNode node = xml.SelectSingleNode("font/chars");
            foreach (XmlNode nd in node.ChildNodes)
            {
                XmlElement xe = (XmlElement)nd;
                int x = int.Parse(xe.GetAttribute("x"));
                int y = int.Parse(xe.GetAttribute("y"));
                int width = int.Parse(xe.GetAttribute("width"));
                int height = int.Parse(xe.GetAttribute("height"));
                int advance = int.Parse(xe.GetAttribute("xadvance"));
                CharacterInfo info = new CharacterInfo();
                info.glyphHeight = texture.height;
                info.glyphWidth = texture.width;
                info.index = int.Parse(xe.GetAttribute("id"));
                //这里注意下UV坐标系和从BMFont里得到的信息的坐标系是不一样的哦,前者左下角为(0,0),
                //右上角为(1,1)。而后者则是左上角上角为(0,0),右下角为(图宽,图高)
                info.uvTopLeft = new Vector2((float)x / texture.width, 1 - (float)y / texture.height);
                info.uvTopRight = new Vector2((float)(x + width) / texture.width, 1 - (float)y / texture.height);
                info.uvBottomLeft = new Vector2((float)x / texture.width, 1 - (float)(y + height) / texture.height);
                info.uvBottomRight = new Vector2((float)(x + width) / texture.width, 1 - (float)(y + height) / texture.height);
    
                info.minX = 0;
                info.minY = -height;
                info.maxX = width;
                info.maxY = 0;
    
                info.advance = advance;
    
                chtInfoList.Add(info);
            }
            font.characterInfo = chtInfoList.ToArray();
            AssetDatabase.Refresh();
        }
    }

    在FontTools目录下打开BMFont弹窗,选择上面制作好的Font文件,点击"Generate Font"按钮,即可生成:

    如果没有异常的话会生成如下两个文件:

    点击Font文件,可看到如下信息,"Line Spacing"一般设置为1,第一个项目是标点,因为图片的高度只有100,而其它图片高度有244,所以这里设置Y偏移-144,这样才能显示正确,如果图片高度都是一样的话就不用设置了。

    四、使用字体

    新建Text文本,把文本的字体设置成上面制作的字体就可以了。

     

    另外附上了段切割图片的代码(如果数字切在一张图片里,可以使用这个把数字切成单张素材再制作字体)

    public static class ImageSlicer
    {
        [MenuItem("Assets/切割图片/Process to Sprites")]
        static void ProcessToSprite()
        {
            Texture2D image = Selection.activeObject as Texture2D;//获取旋转的对象
            string rootPath = Path.GetDirectoryName(AssetDatabase.GetAssetPath(image));//获取路径名称
            string path = rootPath + "/" + image.name + ".PNG";//图片路径名称
    
    
            TextureImporter texImp = AssetImporter.GetAtPath(path) as TextureImporter;//获取图片入口
    
    
            AssetDatabase.CreateFolder(rootPath, image.name);//创建文件夹
    
    
            foreach (SpriteMetaData metaData in texImp.spritesheet)//遍历小图集
            {
                Texture2D myimage = new Texture2D((int)metaData.rect.width, (int)metaData.rect.height);
    
                for (int y = (int)metaData.rect.y; y < metaData.rect.y + metaData.rect.height; y++)//Y轴像素
                {
                    for (int x = (int)metaData.rect.x; x < metaData.rect.x + metaData.rect.width; x++)
                        myimage.SetPixel(x - (int)metaData.rect.x, y - (int)metaData.rect.y, image.GetPixel(x, y));
                }
    
    
                //转换纹理到EncodeToPNG兼容格式
                if (myimage.format != TextureFormat.ARGB32 && myimage.format != TextureFormat.RGB24)
                {
                    Texture2D newTexture = new Texture2D(myimage.width, myimage.height);
                    newTexture.SetPixels(myimage.GetPixels(0), 0);
                    myimage = newTexture;
                }
                var pngData = myimage.EncodeToPNG();
    
    
                File.WriteAllBytes(rootPath + "/" + image.name + "/" + metaData.name + ".PNG", pngData);
                // 刷新资源窗口界面
                AssetDatabase.Refresh();
            }
        }
    }

     

    展开全文
  • BMFont 快速入门教程

    万次阅读 2018-12-06 10:59:10
    BMFont 快速入门教程 简介 什么是BMFont?这是个软件,全称Bitmap font generator,顾名思义,位图文字生成器。这个工具就是用来生成位图文字字体配置文件的,.fnt文件。 这里介绍是因为游戏开发中经常用到这个,...

    BMFont 快速入门教程

    BMFont软件

    简介

    什么是BMFont?这是个软件,全称Bitmap font generator,顾名思义,位图文字生成器。这个工具就是用来生成位图文字字体配置文件的,.fnt文件。
    这里介绍是因为游戏开发中经常用到这个,主流的各大游戏引擎都支持使用BMFont字体格式,如Cocos、Unity3D等。

    优劣势

    • 较之使用TTF(TrueTypeFont),生成文字的速度更快。
    • 可批渲染,这个很重要,降低DC。
    • 值得注意的是,如果字体文件(配置文件+合图)过大,首次加载的速度较慢,占用内存较大。
    • 可自定义,美术可定制任意字体。

    下载安装

    BMFont是个免费软件,界面简单干净,上手容易。
    http://www.angelcode.com/products/bmfont/

    入门教程(快速导出一个字体文件)

    一、字体设置

    • Options - font settings 进入字体设置界面在这里插入图片描述
    • Font:选择系统已安装的字体库(TTF),这里可以理解为我们可以根据矢量字体画出一张张文字纹理,最后转换保存为我们需要导出的位图字体文件。
    • Add font file:可以选择.ttf字体文件进行加载
    • Charset:字符编码,我们通常选择Unicode
    • Size:位图文字的大小,也就是最后我们保存文字在合图中的大小。
    • Bold,Italic:粗体,斜体。
    • 最后我们点Ok保存。

    二、输出设置

    • Options - export options 进入输出设置界面
      在这里插入图片描述
    • Texture:
      • Width,Height:生成合图的长宽,需要自己调整,太小文字放不下到一张图里,会创建多个分图(filename_0,filename_1…);太大则浪费空间。
      • Bit depth:合图位数,这里我们选32位。
    • File format - Textures:这里我们选择用png格式保存合图。
    • 保存设置。

    三、选择字符

    在这里插入图片描述

    • 现在我们开始选择需要处理的字符了。
    • 界面右侧是各个字符编码集合区域,所有字符按照编码被划分为一个个字符集,我们可以点击某个字符集去挑选里面的字符。
    • 界面左侧就是某个字符集里对应的所有字符了,点击某个字符既可以选择。
    • 红框中的9和右下角的57,表示了“9”这个字符的ID是57,这个ID唯一映射对应的字符。

    四、快速选择字符

    一个个挑实在是太慢了,BMFont提供了快速选择字符的方法。

    • Edit - Select chars from file
    • 选择一个文件,如test_font.txt,注意,文件编码得用utf-8,不然读取到的字符是乱的。
      在这里插入图片描述

    五、使用自定义图片替换某个字符

    • Edit - Open Image Manager
      在这里插入图片描述
    • 点击 Import image 导入图片,这里的Id就是上面我们提高了字符索引ID,相当于我们会用导入的这张图片替换对应ID的字符。
      在这里插入图片描述
      点击OK进行保存。

    六、输出

    • Options - Save bitmap font as …,或者直接Ctrl+S
    • 成功输出后,我们将得到一个{name}.fnt文件和一张{name}.png合图
      在这里插入图片描述
    • 查看.fnt的文件格式,我们可以看到:
      • 第一行定义了字体相关的配置。
      • 第二行定义了合图的相关配置,如长宽、各个通道。
      • 第三行定义了合图的文件路径。
      • 第四行开始,描述了各个字符索引所对应在合图中的位置和偏移。
        在这里插入图片描述
    展开全文
  • BMFont 使用

    2015-07-30 12:05:55
    下载地址http://www.angelcode.com/products/bmfont/install_bmfont_1.13.exe 2 打开软件,选择Opotion->FontSetting,来设定需要导出的字体 我这里用微软雅黑。 Size可以设定字体大小,最好需要多大就设定

    1首先 下载安装windows下免费的位图字体制作工具Bitmap Font Generator

    下载地址http://www.angelcode.com/products/bmfont/install_bmfont_1.13.exe

    2 打开软件,选择Opotion->FontSetting,来设定需要导出的字体

    我这里用微软雅黑。 Size可以设定字体大小,最好需要多大就设定多大,这里是32 Height可以设定字体的拉伸高度,保持默认100%就可以了


    3. 选择菜单 Edit->Clear all chars in font 清空下字符

    4. 选择菜单 Edit->Selecting text from file... 选择一个文件,里面包含你想生成字体的文字

    生成一个*.Txt文本,里面包含你想要生成字体的文件,如下图

    选中刚才创建的txt文件,如果有提示失败,请检查txt文件是不是unicode或者utf-8编码的文件以及字体是否包含文本内的字体
    5.Option->ExportOptions来设定导出的样式等

    这里解释一下几个重要的地方

    Padding,文字的内边框,或者理解为文字的周边留空要多大 做后期样式时这个属性很重要,需要预留空间来给描边、发光等特效使用 比如我预计我的样式要加一个2px的边框,然后加一个右下角2px的投影效果,所以我设定了padding:2px 4px 4px 2px

    BitDepth,必须32位,否则没有透明层

    Presets,字体初始化的预设的颜色通道设定,也就是说字体的初始颜色设定是什么样的,建议都用白色字,可以直接设定为White text with alpha,即白色字透明底。

    Font descript,字体描述文件,可以使用text或者xml 也就是fnt文件格式

    Textures,纹理图片格式,果断png。
    6.option->Save bitmap font as...
    导出成一个文理文件和一个描述文件,如果按照上面的配置,会有一个*.png和一个*.fnt

    这是导出后的png图片,为了看得清楚,我选择了黑色加透明 具体颜色视你的应用情况而定

     


    7.用photoshop处理导出的png文件 后期处理了 视自己的情况定,我这里就没有做处理


    本文转自:http://blog.csdn.net/tspangle/article/details/26942693

    展开全文
  • BMFONT用法

    千次阅读 2016-06-02 14:08:48
     (2)、使用位图字体工具BMFont从图片生成自定义字体 1.BMFont下载地址 http://www.angelcode.com/products/bmfont/ 2.BMFont使用方法 http://momowing.diandian.com/post/2013-01-24/40046

    NGUI制作字体的三种方法

    主要参考两篇博文:

     (1)、NGUI制作字体的三种方法

     (2)、使用位图字体工具BMFont从图片生成自定义字体

    1.BMFont下载地址

    http://www.angelcode.com/products/bmfont/

    2.BMFont使用方法

    http://momowing.diandian.com/post/2013-01-24/40046239211

    首先打开Font Settings,选择要制作的字体。可以从Font列表中选择一种字体,也可以通过Add font files导入一个ttf字体文件。

    Charset字体编码默认为Unicode,当然也可以选择其它的。

    点击OK,字体设置成功。

     

    然后打开Export Settings,进行导出设置

    Width和Height的值,尽量选小,只要能够容纳我们需要用到的所有字就可以了,选大了浪费。

    Bit depth,32位比8位更清晰,不过负担更大。

    Font descriptor选择Text

    Texture选择png

    选择OK,完成导出设置。

     

    接下来我们就可以选择我们所要制作的字,一个一个去找太麻烦了,我们可以先新建一个txt文件,在其中输入我们要制作的字,然后Select chars from file就可以直接选中所有要用到的字了。

    注意

    1.在导入前要先clear all chars in font。

    2.由于txt文件的编码方式不是在上面设置的unicode,所以我们要对这个txt文件另存为unicode方式,并覆盖。否则,在导入时会提示charcters from the file are not available in the font

     

    最后Save bitmap font as就可以导出一个png和一个fnt,将fnt改为txt格式。这就是我们在ngui中制作bitmap字体所用到的两个文件了。

    3.新版NGUI提供的三种创建字体方式

    (1)使用BMFont制作的png文件和txt文件制作bitmap字体。分别将两个文件拖入texture和font Data里面。 缺陷:局限于个别字。不能随意改变。还要用外部工具BMfont来创建字体集。

    (2)动态字体,需要先导入一个ttf字体文件。C/windows/fonts下面就有很多。也可以从网上下载一些独特的字体。

    导入后,拖入Source中,选择size等就可以创建一个字体。

    也可以另外手动创建http://momowing.diandian.com/post/2013-05-07/40051478498

    注意看下面的提示:要使用动态字体,不必创建UIFont,只需要在UIlabel中选择Unity,再将ttf文件拖入font中即可。

    缺点:动态字体不能作为一个atlas的一部分,所以使用动态字体必然要增加至少一个draw call。而且ttf文件一般较大,会大大地增加包大小

     

    (3)可以使用ttf字体文件来创建一个bitmap字体。
    与第二种方法类似,区别只是这种方法创建的字体不需要使用BMFont来创建,直接在Unity内部就可以创建,只要我们导入了相应的ttf文件。
    而且与第二种方法相同的是,打包时只会包含一个png,一个prefab,一个material,而不会把ttf包含进去。
     
     

    本篇讲解如何利用美工提供的字符图形来生成自定义字体。

    美术提供的字体经常是下面这样的:

    或者这样的:

    这时候我们就要借助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"预览一下:

    最后得到如下文件:

    将生成的这两个文件,拖入上面提到的NGUI制作方法(一),的两个框框内,点击create,即可生成需要的UIFont的Prefab。

    展开全文
  • 使用BMFont将编辑图片,生成fnt和png文件导入Unity中。添加UnityEditor工具,生成Font字体。
  • BMFont for Java-开源

    2021-05-27 13:24:08
    BMFont是一个Java类,用于在Java应用程序中使用位图字体(bmf格式)。 BMF字体和其他信息可以在http://bmf.wz.cz/中找到
  • 字体编辑器BMFont

    2017-08-10 16:46:26
    转自:http://blog.csdn.net/wxy15979115440/article/details/51182017BMFont 下载地址:http://www.angelcode.com/products/bmfont/字体编辑器BMFont在使用自定义的字体时候,可以使用BMFont来达到目的。...
  • bmfont-instructions

    2018-12-10 11:53:08
    bmfont的正确使用姿势,解决bmfont使用困惑的一些问题 1:第一步选择字体 话不多说先上图 从Options设置按钮里找到FontSettings的字体设置选项,然后在如图所示的界面选择你需要的字体,系统字体库可能并不包含...
  • bmfont_1.14_beta

    2015-03-09 14:10:15
    bmfont_1.14_beta,自定义/艺术字体制作工具
  • BMFont位图字体制作

    2019-03-25 18:27:06
    我们在制作手游中,经常会用到图片字体,即.fnt格式的字体,这种格式的字体中,如果图片是数字,我们可以很快的...我们通过软件BMfont来制作,这个软件全称是Bitmap font generator,是一款专门用来制作font字体的软件
  • bmfont+使用教程

    2013-04-24 14:55:48
    bmfont是游戏中最常用的字库生成软件,另付简单教程。
  • unity cocos 使用BMFont,生成自定义字体 1.BMFont下载地址 http://www.angelcode.com/products/bmfont/ 2使用步骤 转载至 https://blog.csdn.net/keshuiyun/article/details/9960667
  • install_bmfont_1.13

    2013-11-04 12:07:35
    制作移动端游戏字库的软件install bmfont

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 5,764
精华内容 2,305
关键字:

bmfont