骑马与砍杀中文站论坛

 找回密码
 注册(Register!)

QQ登录

只需一步,快速开始

搜索
购买霸主CDKEY 购买战帆CDKEY
查看: 3154|回复: 9

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

[复制链接]

3

主题

65

回帖

200

积分

见习骑士

Rank: 3

UID
3132708
第纳尔
1550
精华
1
互助
6
荣誉
5
贡献
10
魅力
411
注册时间
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  送朵鲜花  并说:我非常同意你的观点,送朵鲜花鼓励一下
您需要登录后才可以回帖 登录 | 注册(Register!)

本版积分规则

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

GMT+8, 2025-12-29 03:30 , Processed in 0.100731 second(s), 21 queries , Gzip On, MemCached On.

Powered by Discuz! X3.4 Licensed

© 2001-2023 Discuz! Team.

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