Nuclear Throne 中文版制作教程及汉化demo版发布

来源:互联网 发布:ipad壁纸软件推荐 编辑:程序博客网 时间:2024/05/21 01:44

介绍

自从YellowAfterLife(以下简称yal)在7月19日发布推文,表示NTT将加入玩家自创翻译功能,已经过去了三个月。最开始笔者对制作汉化版NT跃跃欲试,但详细询问才知道,需要导入字符贴图来实现翻译效果。这对于常用字符至少成千上百的汉字来说,制作贴图就已经是个极为繁重的工作,于是便放弃了。

tweet

但这三个月里,NT在悄然地变化着。从Reddit上得知,原来看似deadgame的NT已经开始了新版的更新开发!当我进入NT的官方Discord时,我感受到了充满生机的NT,尽管Reddit上还是十分冷清,几乎没人提NT的新版更新,但在Discord里却讨论的十分热烈。
而从Discord里我得知了更为重磅的消息,开发新版NT的,就是YellowAfterLife!NTT的开发者!他在NT的Discord开了个专版,告诉大家他已经加入了NT的u99更新开发。并且也发了个视频链接 证明这一点。

rami

视频里NT开发者Rami谈到NT的一个粉丝(也就是yal)对NT进行逆向工程(因为他当初没有NT源码),并重构了整个游戏,不仅如此还加入了mod支持和联机功能,于是有越来越多的人开发新的NT mod。他对yal做的一切感到惊奇,甚至觉得有点受之有愧。于是之后便联系他,雇他加入新版的开发工作。
(然而从Discord里的讨论来看,所有工作几乎都是他一人完成,到现在已经修了上百个bug,发布了17个beta更新)

u99

在yal写的#u99_teasting专版介绍里,他表示NT新版也将加入本地化功能。

这几天恰逢国庆,是在百无聊赖,我又开始了对汉化NT的尝试,于是便有了这篇文章。当然限于时间问题,我只做了这样一个原型,有兴趣的朋友可以慢慢完善。

一些小经验

制作一个本地化版本其实并不复杂,也就是一个lang.ini和两个贴图文件就够了。麻烦也就是麻烦在贴图而已。我先是尝试将字体文件(ttf文件)转换为PNG文件(十分大胆的想法),但没能成功。然后改变思路,直接制作字符贴图。在此期间也联系yal询问了贴图的运作方式,yal的回答是,在lang.ini中,会让你输入贴图所需的字符指代,也就是下面这个样子:

BigFontGlyphs=" .АБВГДЕЄЖЗИІЇЙКЛМНОПРСТУФХЦЧШЩЬЮЯ!:'"

在输入贴图名字和贴图指代字符后,游戏会把贴图按指代字符的数量平均划分,每个部分指代相应的字符。

1 翻译

首先我们对文本进行翻译工作,例如这是主界面的翻译:

img

效果:

main

此时我们便知道需要哪些字符,创建一个空白文本,将所用的字符输入到文本里。
比如这是目前所需要的字符文本:

点击开始确认合作模式设置统计退出开始游戏

可以看出,这里面的“开始”重复了,所以我使用去重工具将重复部分去掉。得到:

点击开始确认合作模式设置统计退出游戏

我将它保存为bold.utf8,用Sublime可以按编码进行保存,由于这些是大字,我将其命名为bold。

第一步:制作字符贴图

使用软件:Image Magick
注意:该软件需要使用命令行来操作,使用命令行前记得先改变工作目录。

命令行代码示例:

magick convert -background transparent -fill white -pointsize 32 -font msyh_b.ttf label:@aaa.utf8 font.png

注释:
-background transparent 将背景变为透明
-fill white 设定字符颜色,目前为
-pointsize 32 设定字符大小,32为大字,10为小字
-font msyh_b.ttf 设定字符字体,字体文件需要在当前工作目录下,在此我使用微软雅黑粗体
label:@aaa.utf8 需要转换的字符文件aaa.uft8,事先编辑好,并以utf-8为编码保存
font.png 生成的字符贴图名字

以下是我用于生成贴图的具体代码:
大字:

magick convert -background transparent -fill white -pointsize 32 -font msyh_b.ttf label:@bold.utf8 bold.png

小字:

magick convert -background transparent -fill white -pointsize 10 -font msyh_b.ttf label:@normal.utf8 normal.png

于是在工作目录下,我们便得到了贴图

第二步:修改lang.ini文件

拷贝字符贴图到NT目录下,修改lang.ini文件,将bold.uft8里的字符复制到BigFontGlyphs属性中。

需要修改的位置:

...FontPath=; Determines the glyphs to load from the said PNG file:FontGlyphs=; Determines whether the font should be proportional (non-monospace):FontProp=0...BigFontPath=bold.pngBigFontGlyphs="点击开始确认合作模式设置统计退出开始游戏"BigFontSpacing=1...[MainMenu]PressStart=点击开始; (shown on character select)DailyTimeLeft="@sTIME LEFT:#%"; (shown on character select)WeeklyTimeLeft="@sTIME LEFT:#%"Confirm=@s确认Coop=合作模式Settings=设置Stats=统计Quit=退出Play=开始游戏

额外:每次更新应检查的文件

由于我已经做了一个demo,有人也许会想要基于我的demo来改,这样一来也会更为方便,所以额外写了这个部分。

我在制作时,发现很痛苦的是,每次更新都会有乱码,要重新检查才知道什么地方出了错。一般来说,本来正常但却出现乱码的原因是没生成正确的贴图文件或是忘记更改lang.ini所致,而没生成正确的贴图文件一般是因为字符文本修改后没保存。

简单来说,每次更新要检查如下操作:
* 首先我们会在lang.ini中添加新的翻译部分,新的翻译部分多数情况下意味着需要新的字符贴图,所以我们需要修改normal.utf8bold.utf8(我用这两个文件存储字符),加入新增翻译部分的新字符。
* 在进行查重后,修改保存。并把字符文件里的文本加入到lang.ini中的FontGlyphs=BigFontGlyphs=里,保存。
* 然后运行上述命令生成相应的字符贴图。

更简单一点,就是我们首先要确保更新后的utf8文件和lang.ini文件保存,然后再生成字符贴图。

附件说明

目前我已经完成了部分角色介绍、变异说明、王冠说明和主界面的汉化,有需要可以在u99版里预览。

附件:https://github.com/victorpan1011/NuclearThroneTogetherCN/blob/master/NTCN/NT%E6%B1%89%E5%8C%96%E6%96%87%E4%BB%B6(%E9%99%84u99b17%E6%9B%B4%E6%96%B0).zip

使用说明:
安装u99b17
lang.ininormal.pngbold.png拷贝到NT根目录下

阅读全文
0 0
原创粉丝点击