字体应用于界面中的文本元素。所有字体都放置在 /Europa Universalis IV/gfx/fonts/文件夹中。
创建一个新字体
创建新字体,您需要下载一个名为BMFont的程序,该程序用于从字体生成字体页和描述符文件。
安装BMFont之后,将其打开并导入字体。 为此,请单击选项菜单按钮,然后单击字体设置按钮。 在“字体设置”菜单中,添加您的字体文件。
这将使用所选字体支持的所有符号填充字体画布。 所有符号都应突出显示,以使其包含在字体文件中,因此,可以通过不突出显示它们来选择不包括某些符号,无论是通过侧边栏还是手动选择它们。 除非需要将字体设置为特定大小,否则这不是必需的。
字体设置
导入字体之后,就可以设置字体的外观了。为此,再次打开字体设置菜单。下面是你需要更改的字段:
- Charset:设置为OEM-ANSI。
- Size:这是字体的大小,将其设置为所需的大小。
- Match char height:勾选此项,以便每个字符都具有相同的高度。
- Font smoothing:如果字体在游戏中看起来过于清晰,请勾选此项。
- Outline thickness:如果希望字体具有轮廓,请在此处设置所需的粗细。
导出选项
设置字体后,现在该设置如何导出字体了。 为此,请打开“导出选项”菜单。 以下是可能要更改的字段:
Padding:控制字体图像中每个字符之间的填充。 仅当你手动编辑字体文件并且不希望字符靠得太近时才需要。
Spacing:控制字体图像中字符之间的最小间距。 将此设置为1-1或更高(如果您遇到字符间出血)。
Width:控制字体图像的宽度。 如果所有字符都不适合一张图像,请提高此值。
Height:控制字体图像的高度。 如果所有字符都不适合一张图像,请提高此值。
Channels:控制字符的合成方式。 除非已指定轮廓,否则将它们全部设置为glyph,然后将Alpha通道设置为outline,其余部分设置为glyph。
Font descriptor:需要设置为text。
Textures:应设置为.tga或.dds
保存字体
根据需要设置字体后,单击“选项”菜单中的“可视化”按钮,检查字符是否全部适合一个页面。如果没有,则需要增加字体的大小:图像的宽度和高度。
最后保存字体。
使用新字体
保存新字体后,现在应该有两个文件,一个字体图像文件(即my_font.tga)和一个字体描述符(即my_font.fnt)。 打开字体描述符文件,因为需要进行编辑以与欧陆风云4兼容。
打开后,需要更改以下几行:
- size:将值设为正数。
- unicode:删除键和值。
- outline:如果您的字体不使用轮廓,则删除键和值。
- pages = 1:删除键和值。
- packed = 0:删除键和值。
- alphaChnl = 0:删除键和值。
- redChnl = 0:删除键和值。
- greenChnl = 0:删除键和值。
- blueChnl = 0:删除键和值。
- page id = 0:删除键和值。
- file =“ x.tga”:删除键和值。
- 字符数= 216:删除键和值。
- chnl = 15:删除每个字符的键和值。
完成此操作后,保存字体描述符文件。 现在可以在《欧陆风云4》中使用它了。
要使新字体可用,需要在 mod 文件中为其添加 .gfx 定义。下面是一个示例:
bitmapfonts = { bitmapfont = { name = "monofonto_tooltip" path = "gfx/fonts/monofonto_tooltip" color = 0xffffffff } }
注意,可以通过在字体中加入文本颜色范围来更改本地化颜色符号效果:
bitmapfonts = { bitmapfont = { name = "monofonto_tooltip" path = "gfx/fonts/monofonto_tooltip" color = 0xffffffff textcolors = { G = { 86 172 91 } R = { 222 86 70 } Y = { 238 201 35 } H = { 238 203 35 } T = { 255 255 255 } } } }
如果要更改地图字体,则需要使用自己的字体覆盖 tahoma_60 字体定义。
字距调整
许多字体不会在导出字体描述符文件中包含的字距调整信息时显示。这可能会导致游戏中的文字重叠。要解决此问题,需要将字距调整信息添加到字体描述符文件中。
为此,请打开字体描述符文件,并为每个字偶间距调整对添加以下格式的新行:
kerning first=<symbol position> second=<symbol position> amount=<pixel width>
将鼠标悬停在字体画布中的元件上时,通过查看状态栏的右下角,可以在 BMFont 中查看元件在字体中的位置。
像素量是第一个和第二个元件之间的间距。
手动创建每个字偶间距调整对不可行。最好使用编程语言(如 Python)生成字偶间距调整线。以下是可以在 Python 3.x 或更高版本中使用的示例脚本:
file = open( "kerning.txt", "wt" ) # Add the symbol positions of the blank symbol slots here. exclude = [ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14 , 15, 16, 17, 18, 19, 20, 21, 22, 23, 25, 26, 27, 28, 29, 30, 31, 127, 129, 141, 143, 144, 156, 173, 181] for x in range( 1, 255 ): for y in range(1, 255): if x not in exclude: if y not in exclude: file.write( "kerning first={0} second={1} amount=1\n".format( x, y ) ) file.close()
文档 | 效果指令 • 触发条件 • 修正 • 作用域 • 变量 • 本地化 • 可定制的本地化 |
脚本 | 顾问 • 时代 • 书签 • 建筑 • 宣战理由 • 殖民区域 • 新建国家 • 文化 • 决议 • 定义 • 外交行动 • 灾难 • 阶层• 事件 • 派系 • 政府 • 政府互动(1.35) • 伟大工程 • 历史 • 理念组 • 思潮 • 任务树 • 修正 • 自定义国家 • 政策 • 宗教 • 叛军 • 附属国类型 • 科技 • 贸易公司 • 商品 • 单位 • 旗舰 |
地图 | 地图 • Map Modding Quick Reference• 随机新世界 • 贸易节点 |
图形 | 3D模型 • 界面 • 贴图库 • 字体 • 粒子特效 • 着色器 • 兵模 |
音频 | 音乐 • 音效 |
其它 | 控制台指令 • 校验码 • JoroDox模组制作工具 • Mod文件结构 • Mod错误调试 • 验证器 • 运行文件 |
教程 | 添加省份 • 成就修改 • On actions • 模组制作 |