1.X主程序完全中文化教程

文章原地址:https://kfm.ink/index.php/archives/7/


MUGEN1.X FNTV2 TrueType运用实例

界面中文化

新建一个TXT文本,内容如下:

[FNT v2]fntversion = 2,00    ;版本name = ""        ;字体名                author = ""        ;作者[Def]Type = truetype    
;字体类型,这里只用到truetype,即矢量字体Size = 28,28        ;字体大小(宽,高)Spacing = 1,1      ;字间距(宽,高),高只用于truetype类型字体Offset = 0,0       ;绘图偏移量(x,y)File = mini.ttf     
;字体文件Blend = 1          ;是否开启混合模式

字体文件可以设置为中文字体
TrueType字体定义必须伴随一个特定的.ttf或.ttc扩展名的字体文件。如果该TrueType字体文件是位于与定义文件(Def)相同的同一个目录(强烈建议),它将被加载。否则,M.U.G.E.N将尝试从Windows字体目录里加载该字体文件。
写完后,保存为任意名字的以def为后缀的文件,并设置编码为UTF-8。
之后在system.def添加一个Font,指向刚刚创建的中文字体,就能在system.def使用该字体显示中文了:

menu.item.font = 1,0,0,                  
menu.item.active.font = 1,5,0,
menu.itemname.arcade =       "单人通关"menu.itemname.versus =       "双人对战"menu.itemname.teamarcade =   "组队通关"menu.itemname.teamversus =   "组队对战"menu.itemname.teamcoop =     "协作通关"menu.itemname.survival =     "生存模式"menu.itemname.survivalcoop = "协作生存模式"menu.itemname.training =     "练习模式"menu.itemname.watch =        "演武模式"menu.itemname.options =      "游戏设置"menu.itemname.exit =         "退出游戏"p1.teammenu.selftitle.font = 1,3, 1,
p1.teammenu.selftitle.text = "队伍1"p1.teammenu.enemytitle.font = 1,3, 1,
p1.teammenu.enemytitle.text = "队伍2"p2.teammenu.selftitle.font = 1,1, -1,
p2.teammenu.selftitle.text = "队伍1"p2.teammenu.enemytitle.font = 1,1, -1,
p2.teammenu.enemytitle.text = "队伍2"match.text = "第 %i 战"  ;“i%”会自动被替换为场数
match.offset = 320, 460match.font = 1,0,0,

[Continue Screen]
enabled = 1               pos = 320,120            continue.text = "再次挑战?"continue.font = 1,1,0,continue.offset = 0,0yes.text = "是"yes.font = 1,1,0,yes.offset = -40, 60yes.active.text = "是"yes.active.font = 1.3,0yes.active.offset = -40, 60no.text = "否"no.font = 1,1,0,no.offset = 40, 60no.active.text = "否"no.active.font = 1,3,0,no.active.offset = 40, 60[Victory Screen]
enabled = 1time = 300               fadein.time = 30fadeout.time = 30p1.offset = 380,40p1.spr = 9000,2p1.facing = 1p1.scale = 1,1p1.window = 380,0, 620,300p1.name.offset = 620,320p1.name.font = 1,3,-1,
winquote.text = "获胜者"winquote.offset = 20,380winquote.font = 1,1,1,
winquote.window = 0,300, 640,480winquote.textwrap = w

对于人物和场景的displayname,也可以使用中文,但注意:存在中文的Def必须使用UTF-8编码,否则游戏中将无法正常显示

设置界面中文化

MUGEN虽然开放了设置界面的字体定义,即font/options.def,但并没有开放对字体界面文本的定义,所以要显示中文的话只能通过手工修改二进制数据,这里简单说下过程:
首先用十六进制编辑器打开exe找到界面文本字符串,接下来就要修改为中文,但是有一点要注意的是,直接输入修改的话是无法正常显示的,要用UTF-8编码的中文文本二进制数据来修改;
然后将font/options.def定义为中文字体,就能正常显示,由于UTF-8的中文二进制数据是三字节的,所以还要考虑到数据长度的问题,每两个相邻的有效数据之间必须存在一个00数据,否则会导致错误,
在修改过程中,部分动态数据是不能修改的,这些数据大多都是设置项值文本,不影响中文化效果,总之手工修改要极其小心,注意备份,而且也是个体力活。
这里是修改后的补丁(成品):https://pan.baidu.com/s/1skOUrKh ,根据版本替换文件即可。


暂无评论
你,确定要这么做吗?
正在处理中...