骑马与砍杀中文站论坛

 找回密码
 注册(Register!)

QQ登录

只需一步,快速开始

搜索
购买CDKEY 衣谷三国
查看: 1620|回复: 6

[MOD相关] [原创]霸主字体mod制作教程

[复制链接]

3

主题

65

回帖

190

积分

见习骑士

Rank: 3

UID
3132708
第纳尔
1450
精华
1
互助
6
荣誉
4
贡献
10
魅力
401
注册时间
2020-2-1

霸主正版勋章

鲜花(10) 鸡蛋(0)
发表于 2025-6-19 17:44:20 | 显示全部楼层 |阅读模式
本帖最后由 废喵 于 2025-6-22 18:04 编辑

1. 准备工作
1.1 安装Bannerlord Mod开发工具
进入steam库,①勾选工具,②点击搜索栏搜索Bannerlord。安装带有 `- Modding Kit`后缀的开发者工具。
2025-06-19-12-09-48-image.png


1.2 下载并解压工具包
打开Bannerlord游戏根目录,将工具包解压到根目录中。

2025-06-19-12-07-04-image.png


1.3 选择字体
选择你想要使用的字体,字体必须是.ttf格式的,注意字体的字符覆盖范围,如果只包含几千个常用汉字可能会导致使用mod时出现缺字现象。
选择好后注意一下字体的命名,最好只包含英文字母,你也可以自己重命名一下。例如:`LXGWWenKaiRegular.ttf`
将准备好的字体文件放到工具包目录中。

1.4 准备字体mod文件
将工具包中的空白字体mod模板(FontTest文件夹)复制粘贴到Modules文件夹中。
修改粘贴的文件夹的名字,只能包含英文字母,复制修改好的名字
进入文件夹,修改Submodule.xml中的Name和Id的值,Name是启动器中的名字,可以随便改,Id使用之前复制好的名字。
2025-06-19-12-18-52-image.png
进入`..\GUI\Fonts`文件夹中,修改`FontTestLanguages.xml`的文件名为你设置的Id+Languages,例如你的Id设置为LXGWWenKai,则文件名为LXGWWenKaiLanguages。

1.5 Powershell运行环境
工具包附带了一个powershell脚本用来调用官方字体生成工具,使用脚本前要确保你的执行策略允许运行本地脚本。
现在你应该位于工具包目录,在目录空白位置右键能看到在powershell中打开或者在终端中打开,点击以在当前目录中打开powershell。
复制粘贴到powershell中`Set-ExecutionPolicy RemoteSigned -Scope CurrentUser`并回车运行,这条指令使得当前用户允许本地脚本执行。
在powershell复制粘贴`.\PowershellTest.ps1`。回车运行测试脚本,检测是否允许脚本运行。



2. 生成字体资源
2.1 生成字体图集相关文件
工具包内的`GenerateFontAtlas.ps1`脚本文件用于调用官方的工具生成字体图集相关文件,如果你想修改生成参数,需要打开脚本文件修改其中的变量。里面有足够的注释告诉你哪些参数是你应该关注的。
在powershell中复制粘贴`.\GenerateFontAtlas.ps1`,再按一个空格,然后输入你的字体文件名,回车运行。完整指令例子:`.\GenerateFontAtlas.ps1 LXGWWenKaiRegular.ttf`。
如果没有出问题,会弹出一个新的powershell窗口生成字体图集相关文件,如果你有多个字体要生成可以用之前的powershell窗口继续输入指令生成其他字体图集的文件。
新窗口在生成时会将使用的参数列出,在没有生成完之前关闭powershell窗口即可终止生成。生成时间与选择的字符范围相关,在生成完毕前耐心等待。

2.2 转移文件至mod中
生成完毕后应该包含三个文件,文件名与你的字体名称是一样的:
2025-06-19-14-19-52-image.png
打开一个新的资源管理器窗口/文件夹窗口,进入 1.4 准备的mod文件夹,将.png文件放入`..\GUI\SpriteParts\ui_Mod_fonts`文件夹中,在`..\GUI\Fonts`文件夹中创建一个新的文件夹,然后将.fnt和.bfnt文件放入新建的文件夹中,再将文件夹重命名为你的字体文件名。
在 1.4 提及的`..\GUI\Fonts`文件夹中,在Language.xml文件名前添加一个占位英文字母,因为这个文件是用来指定要替换的游戏语言选项的字体,现在还没有完成字体的导入添加占位符让游戏维持原版字体。例子:`LXGWWenKaiLanguagesA.xml`或`ALXGWWenKaiLanguages.xml`。

在powershell复制粘贴`.\SpriteSheetGenerator.ps1`,回车运行并生成相关的配置文件。
2025-06-19-14-52-35-image.png
看到之前设置的mod里的字体生成完毕就可以退出powershell了。


2.3 导入字体
现在通过steam打开安装的官方mod工具,只选择配置好的字体mod,然后启动。如果在启动过程中遇到报错直接忽略无视跳过即可,T社做的烂工具是这样的。

  •     进入到主页面后,按下`alt + ~`打开控制台,输入`resource.show_resource_browser`打开资源管理器。在资源管理器左边的侧边栏中选择mod文件夹里的`GauntletUI`文件夹.
  •     选好文件夹,在中间的路径那一栏右边有三个按钮,点中间的按钮导入资源。
  •     等待字体导入完毕后,点击字体资源,在右边的属性中选择`Do Not Compress`,不选这项会压缩资源导致字体变得模糊。点击右下角的`save`保存修改,等待结束后退出工具即可进行下一步了。
2025-06-19-16-05-44-image.png


2.4 修改语言模式使用的字体
进入字体mod里的`..\GUI\Fonts`文件夹中,将之前添加的占位符删除。打开xml文件,将字体名字填入空白的双引号中,默认只修改简体中文字体,如果需要修改更多其他语言选项的字体,参考`Modules\Native\GUI\Fonts\NativeLanguages.xml`中的内容。



3. 优化游戏内字体表现(可选)
完成上述步骤以后字体mod已经可以正常使用了,但是还有一些细节可以手动调整进行优化。

3.1 字重区分
打开Language.xml你可能会注意到有三种字重可以分开设置,一般来说只有Regular和Medium是经常能见到的,Light我还没注意到哪里使用过。
以下列设置为例
<Language id="简体中文" DefaultFont="LXGWWenKaiRegular" LineSeperatorChar="-">
    <Map From="FiraSansExtraCondensed-Light" To="LXGWWenKaiLight"/>
    <Map From="FiraSansExtraCondensed-Medium" To="LXGWWenKaiMedium"/>
    <Map From="FiraSansExtraCondensed-Regular" To="LXGWWenKaiRegular"/>
    <Map From="Galahad" To="LXGWWenKaiRegular"/>
    <Map From="Galahad_Numbers_Bold" To="LXGWWenKaiMedium"/>

Regular字体可以设置为默认字体,大部分字体都会使用Regular字体。
而Medium字体则会用于城市名,以及鼠标悬停tips的数值字体,例如装备tips显示的护甲值、类型等都是使用Medium字体。这里对应的是`rom="Galahad_Numbers`
用多个字体的好处在于可以调整不同字体在游戏内的显示大小,以及Regular字体需要做的提高字体间隔不影响Medium字体,这样整体的视觉观感会更好。

3.2 调整字体表现
虽然生成完的字体可以直接使用,但是在游戏内可能会显得太大或者太小,也可能太暗淡或者太亮。这时候可以打开游戏结合之前生成的字体对应的fnt文件,修改其中的变量即可实时查看字体调整的效果。
在加载了字体mod之后,在游戏中使用`alt + ~`打开控制台,输入`ui.set_debug_mode 1`即可打开ui的调试模式,让文件的修改实时显示在游戏内。
2025-06-19-15-34-09-image.png
这里简单说明一下这四个数值的作用,具体用处查看后续小节。
变量名
用途
size
数值越大字越小,数值越小字越大,可以使用下面的代
customScale
按百分比缩放字体
smoothingConstant
调整字体的平滑度,实际使用大于0.5字体变暗变细,小于0.5变粗变亮,修改幅度建议不要超过0.05
base
修改字体上下间隔,值越大间隔越宽

3.2.1 调整字体上下间隔
我在使用未调整的字体前,注意到战斗日志的最下面一行字会被截断一部分,选项菜单里的标题也略微偏下,超过了UI小部件的边界,所以需要通过增加字体的上下间隔将字体在这些地方抬高一些。
在竞技场观察战斗日志比较适合调整字体的间隔,调整base直到正好让最下面一行不被截断就行了。
之前说过鼠标悬浮的tips里的数值使用的是Medium字体,因为要和Regular字体的base进行隔离,因为调大了Regular字体并且值的字体也使用Regular的字体会导致tips里的词条间隔过大,看着不太美观,这里使用Meduim字体就可以规避这一点,让tips里的词条保持紧凑。

3.2.2 调整字体大小
我使用的霞鹜文楷字体默认的大小我觉得有点太大了,所以我略微缩小了一些Regular的字体大小,整体看着更和谐,这里用的是customScale这个参数,0.01的修改可能看不到什么效果,一般是0.02左右会有明显变化。
同样的,因为修改了Regular字体的大小,在tips中,Meduim的字体就会显得略大,可以同步修改Medium的大小让两种字体差不多大。

3.2.3 调整字体平滑度
我主要用这个来调整字体的粗细。这个要调多少就看个人喜好了,我建议让Medium的值比Regular更低一些,显示出字体的区分度,同时因为Meduim用在了各种数值的字体上,粗一些也更容易阅读。

3.2.4 调整字体间距和阴影大小
就我目前的经验来看,调整两个字之间的间距和阴影只能在生成字体资源时增加size大小,并同步增加range和padding达成。我之前只生成中文字符测试时,使用64size测试,对比32size,阴影明显要更贴近字体边缘而不会显著发散,两字间隔看着也更舒服。
可惜傻逼T社只给中文字体常用字符,导致玩mod缺字不得不弄成全包含字体。

4. 教程相关资源
游客,如果您要查看本帖隐藏内容请回复

评分

参与人数 1荣誉 +1 第纳尔 +100 互助 +2 魅力 +100 收起 理由
sonicliao + 1 + 100 + 2 + 100 感谢发表精华文章!

查看全部评分

鲜花鸡蛋

sonicliao  在2025-6-19 22:26  送朵鲜花  并说:我非常同意你的观点,送朵鲜花鼓励一下

41

主题

719

回帖

488

积分

伯爵[大区版主]

资深商人

自由骑士
联机ID:老六

Rank: 8Rank: 8Rank: 8Rank: 8

UID
117173
第纳尔
7825
精华
0
互助
48
荣誉
2
贡献
435
魅力
389
注册时间
2009-2-25

大航海时代勋章舰长勋章骑砍中文站APP会员勋章骑砍中文百科会员勋章原版正版勋章战团正版勋章火与剑正版勋章拿破仑正版勋章维京征服正版勋章汉匈决战正版勋章霸主正版勋章骑士美德之慷慨勋章骑士美德之奉献勋章杰出贵宾勋章元老骑士勋章丝绸之路勋章同袍勋章衣谷会员勋章衣谷首次众筹勋章

鲜花(121) 鸡蛋(0)
发表于 2025-6-19 22:24:53 | 显示全部楼层
感谢喵大制作的教程,辛苦了
一本正经的胡说八道

233

主题

1万

回帖

6765

积分

侯爵[超级版主]

自由骑士
联机ID:呆呆[Daidai]

Rank: 8Rank: 8Rank: 8Rank: 8

UID
1580737
第纳尔
81017
精华
0
互助
282
荣誉
171
贡献
2139
魅力
3569
注册时间
2013-10-1

第九届班霸天下第一武道会冠军勋章【战团】第九届班霸天下第一武道会参赛勋章【霸主】骑砍中文站APP会员勋章骑砍中文百科会员勋章原版正版勋章战团正版勋章火与剑正版勋章拿破仑正版勋章维京征服正版勋章汉匈决战正版勋章霸主正版勋章骑士美德之英勇勋章[杰出会员活跃勋章]骑士美德之仁慈勋章[杰出会员互助勋章]骑士美德之正义勋章[杰出会员荣誉勋章]骑士美德之谦恭勋章[杰出会员财富勋章]骑士美德之荣耀勋章[杰出会员高级荣誉勋章]骑士美德之侠义勋章[杰出会员高级互助勋章]骑士美德之大无畏勋章[杰出会员高级活跃勋章]骑士美德之公正勋章[杰出会员高级财富勋章]骑士精神之武略勋章骑士精神之文韬勋章骑士精神之浪漫勋章骑士美德之奉献勋章骑士美德之高贵勋章杰出版主勋章杰出传媒小组成员勋章元老骑士勋章第七届战团中国联赛亚军勋章第九届战团中国联赛铁骨勋章第十届战团中国联赛铁骨勋章第十届战团中国联赛征战勋章第十一届战团中国联赛征战勋章第十一届战团中国联赛铁骨勋章第二届拿破仑中国刺刀联赛近卫勋章第三届拿破仑中国刺刀联赛冠军勋章天梯匹配S2赛季铜质勋章天梯匹配S3赛季金质勋章第二届梦幻联赛亚军勋章第二届梦幻联赛奉献勋章2023剑盾大赛参与勋章第一届雇佣兵 3V3 锦标赛季军勋章

鲜花(1629) 鸡蛋(2)
发表于 2025-6-23 14:15:59 | 显示全部楼层
支持申精,有开创性作用,帖子质量高
烟花三月下扬州 WhiteDarkness

33

主题

142

回帖

2108

积分

埃米尔[发布小组]

商队头领

Rank: 7Rank: 7Rank: 7

UID
3436517
第纳尔
5584
精华
0
互助
407
荣誉
2
贡献
1543
魅力
983
注册时间
2022-11-3

衣谷首次众筹勋章 骑砍中文站APP会员勋章丝绸之路勋章富甲一方勋章骑士美德之仁慈勋章[杰出会员互助勋章]骑士美德之侠义勋章[杰出会员高级互助勋章]骑士美德之奉献勋章

鲜花(13) 鸡蛋(0)
发表于 2025-6-25 11:52:51 | 显示全部楼层
好贴,感谢分享

0

主题

1

回帖

5

积分

平民

Rank: 1

UID
3760259
第纳尔
0
精华
0
互助
1
荣誉
0
贡献
0
魅力
0
注册时间
2025-5-4
鲜花(0) 鸡蛋(0)
发表于 2025-7-13 10:04:19 | 显示全部楼层
感谢喵大制作的教程,辛苦

2

主题

29

回帖

14

积分

随仆

Rank: 1

UID
1407748
第纳尔
210
精华
0
互助
1
荣誉
0
贡献
0
魅力
0
注册时间
2013-6-11
鲜花(0) 鸡蛋(0)
发表于 2025-8-4 09:02:13 | 显示全部楼层
感謝分享

0

主题

1

回帖

5

积分

平民

Rank: 1

UID
3793853
第纳尔
0
精华
0
互助
1
荣誉
0
贡献
0
魅力
0
注册时间
2025-8-23
鲜花(0) 鸡蛋(0)
发表于 2025-8-24 10:32:59 | 显示全部楼层
感谢喵大制作的教程
您需要登录后才可以回帖 登录 | 注册(Register!)

本版积分规则

Archiver|手机版|小黑屋|骑马与砍杀中文站

GMT+8, 2025-9-4 02:55 , Processed in 0.111563 second(s), 32 queries , Gzip On, MemCached On.

Powered by Discuz! X3.4 Licensed

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表