前言
这是一期自定义字体专栏,本教程实现的效果是在原版资源包的基础上进行的,但其中仅涉及两个文件,而你需要操作的只有将其中一个JSON文件里面的5个数据修改,然后把另一个文件拖到指定位置就行了。这比上一个整合包教程简洁的多,因此可以放心操作。
其实这个我本来想放进整合包教程里面的,但是我做这段的时候要笑死了,不单出一期对不起这么好玩的效果
封面字体:汉仪智豪天宫篆 繁字体免费下载和在线预览-字体天下 (fonts.net.cn)。不要轻易发布你做出来的字体资源包,要遵守字体作者的协议。
制作资源包
这里就可以先不用压缩包,改用文件夹(有名字和身份证就能识别的),然后调整JSON后重载资源包。
老规矩,放一个pack.mcmeta作为身份证,然后建立assets文件夹,在assets里面创建一个minecraft文件夹,在minecraft里创建font文件夹,在font文件夹里创建JSON文件,名称为default.json,
然后打开,在里面输入这5条内容:
{ "providers": [ { "type": "ttf", "file": "minecraft:zhuan.ttf", "oversample": 20, "size": 18, "shift": [0, -1] } ]}file
你的字体文件的路径,我这里直接放在default旁边并命名为zhuan.ttf就不需要加别的信息。
oversample/size
oversample是字体的分辨率,zize是字体大小,这两个要在游戏里面动态调整,因为字体太小看不清,太大了会出框,分辨率太低会糊,分辨率太高会变成框,就像这样:
当然我这边除了这两个符号以外基本上都是正常的,我就不继续调了,再调就糊了
shift
渲染时的偏移量,一般来说字体在默认11大小的时候是与原版的位置吻合的,但是当你调整完大小后,字体会偏移,那么这时候你就需要调整位置,用中括号括住两个数字,前一个是左偏移量,小于零时向右移;后一个是下偏移量,小于零时向上移。这两个数默认为0,如果你刚调完大小字往下偏了一个像素,那么你就可以像上面那样设置为-1往上挪一个像素。
字体文件文件
最后就是这个.ttf文件的事了,这才是字体的核心,不管你从哪找,只要能找到一个后缀为.ttf的文件即可。这样的内容互联网上其实有很多,比如这里。如果你特别喜欢其他的某个游戏的话,在游戏存放的文件夹里面搜索.ttf也能把该游戏的字体调出来。
当然,玩过手机字体的朋友都知道,其实手机的字体也是这么来的,只要字体文件里面没写某一个字的字体,那么这个字是绝对不可能出现的,会被直接替换成手机默认的unicode字体,电脑也一样,那么出现了这个问题该怎么解决呢?很简单,我们玩的是一个可以改游戏文本的游戏啊,用资源包替换汉化名,把出现失败的字替换成别的字不想动脑筋可以直接用空格即可。
技术知识
其实上面的type一共接受5种值。
bitmap
位图,相当于一个字典,加载字形的时候会在这个字典里查询。原版的字体使用了这个方式进行渲染。此外,这个方式还可以用于加载表情包(但只有白色字才能正常显示)。
ttf
TureType矢量字形支持器,渲染的时候会烘焙成一个位图。
reference
引用其他位置的字体。比如我用了好几个JSON加载位图,但是又不想放在一起,那么我就可以用reference把别的位置的JSON调过来。
space
纯空格。可以自定义空格该是几个像素宽。
unihex
GNU Unifont十六进制字体字形提供器。