GameMaker引擎游戏汉化(二)

前面讲了GameMaker引擎YYC模式下生成的游戏更改文本的基本原理,就是直接替换exe程序中对应文本内容即可。那么汉化是不是直接替换为中文文本就行?答案是不行,来看一下直接替换为中文文本的效果。

汉化文本
  • 尝试把文本改成中文

UltraEdit打开Circadian Dice.exe,用“版本”中文的UTF-8编码 0xE78988 0xE69CAC 替换EXE程序对应文本内容,不足位用0x00填充。

00acc7e0h: E7 89 88 E6 9C AC 00 00 00 00 00 00 00 00 00 00 ; 鐗堟湰..........

保存后重新打开游戏程序,标题界面左下角版本号的文本没有显示。

在这里插入图片描述

  • 汉化文本没有显示跟某些游戏汉化显示乱码的原因是类似的,游戏会把文本显示需要的字体做到资源文件里面,而不是用系统字体。一般来说,没有中文的游戏都不会把中文字体做进去。而游戏文本没有对应的字体就无法显示,所以如果想要显示中文,必须另外添加中文字体到游戏资源中。
添加字体
  • 使用UTMT打开data.win,点开字体列表,发现一共有8个字体。因为游戏里面不同地方文本显示的字体不一样,所以需要多个字体。那刚才替换的文本是使用哪一个字体?一种简单粗暴的方法就是使用同一个中文字体替换掉所有字体。

在这里插入图片描述

打开GameMaker,创建一个空白工程,新建一个字体资源,选择一个中文字体。

在这里插入图片描述

  • 默认中文字体只将英文加入了字体范围。因为汉字太多,如果所有汉字都加入字体中,将导致字体文件过大,所以需要手动将使用到的汉字加入字体范围。偷懒的话就是将常用汉字加入字体范围,但如果游戏文本使用的汉字没有在常用汉字范围里,那一样不会显示。更好的方法就是只将使用到的汉字加入范围,既能最小化字体资源也能保证所有文本都显示。这里我们先只将“版本”两个汉字加入字体范围。
  • 重新生成字体纹理后,打开字体目录,里面两个文件,一个png图片是字体纹理,另外一个文本文件是字体索引。1
  • 将字体文件复制8份并改为对应名称后,使用UTMT重新导入字体,然后保存。
  • 重新打开游戏,可以看到汉化文本已经正常显示,但是某些地方的文本大小不合适,这就是字体大小问题。需要进一步明确哪些地方的文本对应使用的什么字体,然后挑选合适的中文字体进行替换。

在这里插入图片描述

总结
  • 现在完整的汉化流程已经出来
    1. 在exe程序中找到英文文本
    2. 汉化翻译
    3. 替换exe程序里文本数据
    4. 更新字体的汉字范围
    5. 导入字体资源
  • 下一节研究怎么批量获取游戏的所有文本

  1. 不同版本的GameMaker生成的字体索引文件可能格式不一样,GameMaker 2023.1生成的字体索引文件后缀名是csv。如果格式不一样需要转换后才能用UTMT导入。 ↩︎

  • 5
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值