欢迎光临散文网 会员登陆 & 注册

厨圣的高级修养——Alice in Cradle的localization语法

2023-06-26 16:00 作者:AiC玩家服务站  | 我要投稿

"Pitiable does NOT imply Adorable." - BobUnderGrave

1.前言

localization,简写为l10n(l和n之间有10个字母)。直译为"本土化"(不建议译为"本地化",因为本地这个词往往对应的是远程/在线),是包括但不限于文本翻译(往往还涉及到数字/日期/时间的格式调整、民间计量单位的换算等)的一项重要工作。

Alice in Cradle的StreamingAssets文件夹中有一个localization子文件夹,里面放置了游戏每种语言的翻译文本。例如简体中文的负责人之一就是b站官方号的运营者,而玩家社区也流传着粤语和梗体中文这样的补丁包。

@诺艾儿Noel 的022p全程战斗禁咏唱流程就是通过更改了大量汉化文本来呈现出"诺艾儿在两周前的事故中留下了无法在战斗中咏唱魔法的后遗症,伊夏为了寻找治愈她的药材而独自去挑战森之领主"的剧情。

随着我们对哈语言(F7右侧的脚本)的语法分析日趋完善并即将制作出事件编辑器,掌握l10n语法也就成为了剧情编写的重要一环,即便抛开哈语言而仅仅更改文本也很有趣不是么。

2.准备工作

_debug.txt的修改方法

首先请打开StreamingAssets文件夹的_debug.txt,把里面的reloadmtr、announce、timestamp这三项后面的0都改成1,从而启用"F9热重载译文、F7控制台"(左下角看到时间戳说明有效)这两项功能。此后即使您在游戏运行过程中修改了译文文件并保存,也可以随时按下F9立即刷新它们。

重要:所有txt文件编码必须为UTF-8,必须用Unix换行(LF、\n),不能用Windows回车换行(CRLF,\r\n),否则可能变成双倍行距。

Win10以上的记事本可以正确读取LF,但新建的文件默认是CRLF。

(Win8.1以下尤甚)建议使用微软Visual Studio Code编辑器。

3.localization文件夹的结构

该文件夹下有一个__AdditionalFonts子文件夹用于存放中文的高清规范字体,0.22版本从fantia下载是不包括这个文件夹的。

此外有一堆___family_lang.txt(lang为语言代码)用来引导语言设置。

每个lang对应一个同名的子文件夹(日语为_)。

每个子文件夹(如zh-cn)里又有一堆文件,其中icon.png为该语言在标题画面的图标(一般为国旗)。

其他文件分为两大类,一类为lang_tx*.txt,一类为ev_*.txt,前者为UI中的零碎文本,后者为事件中的台词。

4.lang_tx*.txt的语法

这类文件的第一行一定为%FAMILY lang

其他内容有几种写法:

1. 单行写法:&&标识符 内容

此时内容必须写在同一行内(但仍然可以使用\n换行),内容可能含有&1、&2等变量,例如:

&&Depert_from_noon 从第&1天的早上开始 (危险度:&2)

&&Depert_from_evening 从第&1天的黄昏开始 (危险度:&2)

&&Depert_from_night 从第&1天的夜晚开始 (危险度:&2)

2. 多行写法:习惯上最后空一行

/* ___ 标识符 ___ */

第一行

...

最后一行


(下一个词条)

例如:

/* ___ Summoner__descryption ___ */

危险度: &1

可能出现的敌人:

&2

污染体: 最多 &3 单位


(下一个词条)

5.ev_*.txt的语法

这类文件由若干条对话组成,每条对话的语法形如:

*事件id x_dd

第一行

...

至多五行

*

第二页


(下一条对话)

事件id会显示在F7界面右上角,例如s00_0a。它可以被复制下来并且输入到F7菜单的左上角,例如输入evt s00_0a回车后就能再次触发该事件。

同一事件中的所有对话似乎只有第一条需要写明事件id,后面的可以直接以*x_dd开头。

x_dd为MSG指令的参数,dd为两位数字表示对话编号。

x为角色占位符,取值范围包括但不限于(括号中的大写字母为辅助记忆):

d:提尔德・柯涅尔(三哥,tilDe)

f:德尔菲尼・柯涅尔(父亲,Father/delFini)

g:梅法・格里亚德(蓝发队长,Gridyard)

i:伊夏・波利斯塔切尔(黄发同学,ixIa)

l:阿尔玛・奥普菲帕姆(戴帽子的同学,aLma)

n:诺艾儿・柯涅尔(自己,Noel)

nb:浴室的诺艾儿(Noel Bath)

p:普莉姆拉老师(Primula)

s:奥斯托利亚(白狗兽人,oStrea)

t:南丁格尔(商人,nighTingale)

v:丽薇歌塔・柯涅尔(二姐,laeVigata)

w:瓦罗斯(黑狼兽人,Walross)

一页对话一般最多可以写五行(第六行会出界),每行最多可以写十六个全角字符(多了会导致整页字号变小),如需分页可以用独占一行的星号。

6.静态文本中的控制序列

lang_tx*.txt这种静态文本中可使用的控制序列并不是很多,不过它们全部可以用于ev_*.txt的台词中。

1. 字号和颜色:

语法为<font k1="v1" k2="v2" ...>文本</font>。

这里的k可以为size(字号)、linespacing(行距)、color(颜色)、alpha(不透明度)等,如:

<font color="#E70B0B">设置将在游戏重启后生效。</font>

2. 字体变种:

语法为<b>粗体</b><i>斜体</i><u>下划线</u><del>删除线</del>。

颜色和字体变种可以直接在markdown编辑器中预览。

3. 按键提示:

语法为<key 键名/>,会显示为该按键的提示图标。

键名的取值范围如下(括号内为默认值):

submit:确定(回车)

cancel:取消(Esc)

la/ra/ta/ba:左右上下

(记忆方法:Left Right Top Bottom Arrow)

z/x/c/a/s/d:普攻/魔法/隐藏对话框/地图/未用到/快速道具

jump:跳跃(Up)

lsh:闪避(左Shift)

run:奔跑(Space)

menu:菜单(Esc)

ltab/rtab:向左/右切换标签(Q/E)

4. 嵌入图标:

语法为<img mesh="图标名"/>,具体有哪些请善用Visual Studio Code的跨文件搜索功能。

7.台词中的控制序列

ev_*.txt中可使用的控制序列就多多了。

1. 对话框样式调整:

语法为<样式>,需要写在一条对话的开头。可用的样式有:

normal:常规

angry:剑山污染体

think:心想

circ:圆形(未用到)

device:法杖无线通信

noise:噪音,一般和device一起使用。

2. 打字速度调整:

语法为<I>或<Wn>(n为1-4)。

前者会立即打完本条对话的剩余字符,后者会暂停相当于打10n个字的时长。

3. 打字特效/颜色调整:

语法为<m 特效>文本<m>或<c 颜色>文本<c>。

可用的特效有:ple,joy,scary,fadein,cry,strong,vib,normal。

可用的颜色有:red,ora,yel,gre,blu,pin,gra,whi,blk,

分别表示:红橙黄绿蓝粉灰白黑。

例如:<m joy><c blue>「可怜就等于可爱」<c><m>

4. 快捷字号调整:

语法为<big>或<small>,会将随后的字号调整到38或12。

5. 上方注音:

语法形如<rb c="Cradle">摇篮</rb>。

它会把双引号里的文字显示在正文上方。

8.后记

建议先从ev_s10.txt的*s10_4c_srng x_00入手改动,这一段是家里那个介绍霰弹的NPC的独白,可以用星号写任意多页哦。

本文由Alice in Cradle二创计算机技术组BobUnderGrave(简称BUG)撰写,转载请注明出处。

AinC事件编辑器绝赞开发中,申请内测资格请加入Q群321655399(AinC拜年纪2024)。

厨圣的高级修养——Alice in Cradle的localization语法的评论 (共 条)

分享到微博请遵守国家法律