Skip to content

关于字体管理器

基础要求

先尝试回答下面的问题:什么是文本域、文本光标?什么是窗口字符、底层字符?窗口字符分为哪些类型?窗口字符、底层字符有哪些固定格式?需要先了解基础知识哦!

如果你对上述问题有疑问,那么说明你还不了解 窗口字符。

需要去看看:”23.窗口字符 > 关于窗口字符.docx”。

相关插件

核心插件:

◆Drill_CoreOfWindowCharacter 窗口字符 - 窗口字符核心

插件本体:

◆Drill_DialogFontFace 窗口字符 - 字体管理器

该插件专门对游戏中的字体进行管理设置。

字体

1)字体文件夹

所有字体文件都需要放入到fonts文件夹中,

并且字体格式必须是 ttf格式。

2)字体配置

使用记事本打开gamefont.css文件,

可以看到字体配置中:

“@font-face”下有“GameFont”和“杨任东竹石体-Regular.ttf”。

此格式的意思为:

在游戏中定义一个叫“GameFont”名字的字体,

并且这个字体名链接“杨任东竹石体-Regular.ttf”文件。

注意,字体名称,是双击打开字体文件后,显示的字体名称。不是 字体的文件名 。有时候下载来的文件名和字体名可能不一样,需要改成一样,大小写也要一样。

3)添加新字体

接下来,我们添加一个新的字体文件到文件夹中。

打开gamefont.css文件,

复制“@font-face”一模一样的格式。(GameFont的设置不能删)

另外注意,格式中的标点符号都需要一致,不能出现中文冒号或中文括号。

起名为“HappyFont”,并对应“站酷快乐体.ttf”文件。

这里的名字“HappyFont”可以随便定义,可长可短,但是必须要是英文字母。

4)插件配置

添加新字体之后,需要配置插件 字体管理器,

还要在插件配置的“预加载的字体名”中添加新字体的名称。

这样才算字体配置成功了。

5)窗口字符使用

字体相关的窗口字符如下。

窗口字符描述
\ff[xxx]之后的文本使用对应的xxx字体。
\fn[xxx]之后的文本使用对应的xxx字体。
\fr全重置字符,重置之后文本所有设置,包括恢复默认字体。

在对话框中,使用窗口字符“\fn[HappyFont]”即可。

这样就能在游戏中看见字体变化了。

默认字体

1)默认字体原理

第一默认字体: 黑体(SimHei)。

(操作系统自带的通用字体)

第二默认字体: GameFont 。

第三默认字体: 字体管理器插件的 ”所有文本-默认字体类型” 。

该配置默认为GameFont,可以改成其它字体名,所有文本会变。

之所以有三种默认字体,是因为系统架构如下。

游戏打开后,会优先执行 html5系统底层 和 rpg_core.js游戏底层,

这时候 第一默认字体和第二默认字体 会先加载并初始化。

因此即使 第三默认字体 是实际作用于游戏所有文本的字体,

也必须要有前面两个默认字体,不能缺。

如果你添加的字体没有预加载成功,那么系统会使用 第一默认字体,对应问题:部分字体未及时变化 。如果你删掉gamefont.css文件的GameFont定义,那么系统会一直加载第二默认字体,对应问题:配置字体后,一直卡在loading界面

2)全局默认值

插件中提供了 所有文本、对话框 的默认字体设置。

比如 所有文本 的设置,能对游戏里面任何 绘制文本 的地方都有效,全局有效。

默认值为 ”GameFont”,你可以修改为其它 预加载的字体名。

此配置还能通过插件进行临时修改。

详细可以去示例中 窗口字符管理层 去看看 全局默认值 的介绍。

从零开始设计(DIY)

设计一个艺术渐变字体(指向)

主要用到了下列插件:

◆Drill_CoreOfWindowCharacter 窗口字符 - 窗口字符核心

◆Drill_CoreOfColor 窗口字符 - 颜色核心

◆Drill_DialogFontFace 窗口字符 - 字体管理器

窗口字符的 高级渐变色+字体 设计。

你可以去看看文档 ”23.窗口字符 > 关于颜色核心.docx” 。

设计一个外发光文字(指向)

主要用到了下列插件:

◆Drill_CoreOfWindowCharacter 窗口字符 - 窗口字符核心

◆Drill_DialogFontFace 窗口字符 - 字体管理器

◆Drill_DialogCharOuterGlow 窗口字符 - 外发光效果

◆Drill_DialogCharOuterBorder 窗口字符 - 描边效果

窗口字符的多个效果组合设计。

你可以去看看文档 ”23.窗口字符 > 关于字符描边与外发光.docx” 。

常见问题(FAQ)

部分字体未及时变化

问题名称部分字体未及时变化
问题图示
问题描述在配置后,第一次打开游戏,会发现字体使用的并不是指定的字体。再次进入对话后,会发现又能恢复原来的字体。
原理解析有两种情况:1.字体没来得及加载成功。2.字体本身缺字少字。出现任何字体失败情况,系统都会使用 第一默认字体 来补救。根据描述,该问题是第一种情况。
解决方案配置gamefont.css文件后,你还需要在插件里添加预加载字体名。这样就不会出现字体切换延迟的情况了。另外,如果你使用的字体本身缺字少字,那就没法解决了,你只能换其他的字体了。

配置字体后,一直卡在loading界面

问题名称配置字体后,一直卡在loading界面
问题图示
问题描述按照前面章节:2)字体配置 修改了gamefont.css文件,打开游戏后,一直卡在loading界面,没有任何游戏画面。
原理解析很可能是卡在字体加载这一步了。作者我测试的一种情况,就是因为 “GameFont” 的名称定义被删,系统会一直等待 第二默认字体 加载。其它字体如果没加载成功,不会卡loading界面,而是出现问题: 部分字体未及时变化
解决方案检查并恢复 “GameFont” 的定义。

某些字体加载后,出现贴顶、砍头现象

问题名称配置字体后,一直卡在loading界面
问题图示
问题描述部分文本出现头部一点点被切割的痕迹。
出现时机> 换了其他字体后就出现,示例里面不会出现。> 没有修改行高,没加行高控制器插件。
原理解析与字体相关,有些字体本身就很高,体积很大。系统无法直接知道字体多高,所以使用计算公式:字体高度 = 字体大小 * 比率。(比率通常为1.10)某些字体是可能出现高度不够,字体没被包裹的问题。
解决方案【系统 - 字符绘制核心】 插件中,可以调整此比率,一般最大设置1.20就足够了。由于此设置会影响所有文本和字体,需要慎重修改。

贡献者

暂无相关贡献者

页面历史

暂无最近变更历史
最近更新