游戏中的字体文件处理

5 篇文章 0 订阅
3 篇文章 0 订阅

游戏引擎一般用FreeType库读取字体文件。
引擎通常要求游戏自带的字体文件。

字体选择

黑体的屏幕显示效果比较好,可以使用思源黑体
思源宋体也不错。
它们都采用SIL Open Font License,可以免费使用:

The OFL allows the licensed fonts to be used, studied, modified and redistributed freely as long as they are not sold by themselves. The fonts, including any derivative works, can be bundled, embedded, redistributed and/or sold with any software provided that any reserved names are not used by derivative works.

黑体的字重(Weight,权)用Normal或Regular即可。
宋体的话用Normal或SemiBold比较好看。

字体子集化

如果游戏没有聊天功能,用到的字比较少,可以考虑精简字体。
可以用Python工具包FontTools中的子集化(pyftsubset) 功能来实现。

安装FontTools工具包

假设已安装了Python,在命令提示符窗口执行:

py -m pip install --upgrade pip fonttools[all]

准备文本编码文件

收集游戏中要显示的文本字符编码,集中到文件charlist.txt中:

cd /d D:\prj\GameDir\
type locale\*.po > %TEMP%\charlist.txt
type *.gd >> %TEMP%\charlist.txt

po文件包含了翻译前后的原文和外文文本;gd文件是程序文件,包含了其它无需翻译直接显示的文本。
文件charlist.txt采用UTF-8编码(po文件和gd文件都采用UTF-8编码),包含了所有可能会显示的字符。

子集化(pyftsubset)

假设Python安装在目录D:\Python3,在命令提示符窗口执行:

set PATH=D:\Python3;D:\Python3\Scripts;%PATH%
pyftsubset SourceHanSansSC-Normal.otf --text-file=%TEMP%\charlist.txt --flavor=woff2 --output-file=zh_CN.otf --drop-tables+=vmtx,vhea,VORG

其中选用了思源黑体(简体中文)字体文件SourceHanSansSC-Normal.otf ,字重为Normal。
生成的zh_CN.otf文件相比原字体文件,文件大小和包含字数都极大地减少了。

参考

FontTools
FontForge
GB/T 16964.1-1997 字型信息交换 第1部分 体系结构
GB 18030 中文编码字符集
知乎:字体的字重是什么

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Python,可以使用不同的库来处理字体的显示。一个常用的库是`matplotlib`,它可以用于绘图和数据可视化。如果你想在绘图使用字体,可以按照以下步骤进行设置: 1. 首先,你需要安装字体文件。可以从一些网站上下载字体文件,例如`ttf`格式的字体文件。 2. 将字体文件复制到你的Python环境。你可以将字体文件复制到`/usr/share/fonts/truetype/`目录下(对于Linux系统),或者是将字体文件放在与你的Python脚本相同的目录下。 3. 使用`matplotlib`库来设置字体。下面是一个简单的示例代码: ```python import matplotlib.pyplot as plt from matplotlib.font_manager import FontProperties # 指定字体文件路径 font_path = '/usr/share/fonts/truetype/SimHei.ttf' # 创建字体对象 font = FontProperties(fname=font_path) # 绘制图形 plt.plot([1, 2, 3, 4], [1, 4, 9, 16]) # 设置文标题 plt.title('文标题', fontproperties=font) # 显示图形 plt.show() ``` 在上面的代码,我们使用了`FontProperties`类来指定字体文件路径,并将其应用于标题的显示。这样就能够在图形显示文标题了。 除了`matplotlib`库外,还有其他一些库也可以用于在Python处理字体,例如`Pillow`库用于图像处理,`Pygame`库用于游戏开发等。根据你的具体需求和使用场景,选择适合的库来处理字体即可。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值