9. 控制符分析
控制符分析也是很重要的一步,影响到导出文本的质量,甚至影响到汉化质量。
分析的方式也无非是观察和逆向。很多颜色变化,换行换页都能观察出来,但是复杂一些的就要看源代码了。
这些东西都在指令00对应的函数中,所以也不算难找。
关于分析,我还要说多说一些。首先全脚本都已经能够导出了,那么要多做一些统计和检查。比如说总共有哪些控制符,有哪些控制符组合,这些控制符一般出现在什么字符后面等等。
虽然有些分析我最后也没有用到,但是多进行这些统计是有用的。
【折行】
游戏中折行有3种情况:
1)自动折行,只要一行宽度到了一定的程度就会自动折行。
注意,并不是按照字数来的,是按照宽度(一行0x120),显然每个字符的宽度并一致,假名比汉字窄点。
2)有条件的折行
主要是控制符L和控制符r。
L的作用是指明如果句子已经够长了(一行0x100),那么就在这里折行。
感觉会放到一些助词前面,如“哟。”“吗?”,为了不让句子在标点处折行,于是提前折行。
r的作用也是折行,但是它受到3个东西的影响,文本中的「、『和控制符o
也即是说如果「和『没有闭合,r不会进行换行,o则是专门取消r的,只要前面有o,后面的r就无效。
r一般和p和P组合,这个看下面【等待符号】这部分。
3)强制折行
控制符@
没啥可说的,就是强制折行。
【等待符号】
等待符号有两种,一种是三角形的,另外一种是文件型的。
三角形的控制符有p和P。
大P受到文本中的「、『影响,如果括号没有闭合,P就无效。
小p则只受到控制符o的影响。
另外控制符o的影响力也就到之后第一个P或p为止。只要碰到了P或者p就无法继续往后影响了。
文件型的控制符是g
g一般是和p和P连在一起的,作用就是换页。
注意p和P并不换行,只控制等待。
但一般和r、g组合。
rP或者Pg总是跟在,也只跟在"」"、"?"、"!"这三个符号后面。感觉像是批量查找替换的。
(注:要注意红字标出的话,这包括两个统计,一个是统计所有的rP和Pg,看前面是什么;另一个是统计所有的"」"、"?"、"!",看后面是什么。
这个分析有什么用呢,如果不是有rP和Pg两个组合的话,我在导出的时候完全可以忽略掉这个控制符。导入的时候按照这个规则加进去就行。
分析控制符的一个重要目的就是为了删减控制符,这是为了不让翻译觉得文本过于复杂。)
如果这里本来是能折行的又不打算让他折行,那么前面就加个o取消掉;
如果一定要让他折行,那么后面加个@,强行折行。
rp和pg一般跟在"。"、")"、"…"之类的后面,情况和上面也差不多。
例1:
{#}「反正,比起滑雪还是摔跤更适合我。」{rP}
{rP}都在括号外面,全部起作用,折行加等待按键
例2:
{#}「そういう意味で言ったんじゃないってば{o}。{rp}{#}{@p}
{#}{n1}、{#}上達早いと思うわよ」{rP}
{rp}被{o}取消,同时{o}碰到p,作用也消失。
@强制换行,p等待。
搞这么复杂是因为虽然是一个句号,但是在括号中,r不起作用,只能用o把rp都取消掉,再用@p来代替rp。
其实你看起来不爽,把这里改成
{#}「そういう意味で言ったんじゃないってば。{#}{@p}
也一样。
例3:
{#}「『也』{kP}?{rP}{#} 『也』{kP}是什么意思啊{o}。{rpp}
kP,「没有闭合,P无效。k作用不明,似乎影响g,反正和换行无关。
rP,「没有闭合,rP都无效。
{o}。{rpp},rp在o的作用下无效,但是第二个p有效了,等待按键,但是不换行。
这里改成:
{#}「『也』?{#}『也』是什么意思啊。{p}
也一样。保险点把{k}放上去也可以。
【n】
{n1}是透
{n2}是真理
{n3-5}是犯人名字
【选择】
一个标准的选择是这个样子的:
{#}{v0c1}A
{#}{v1c2}B
{#}{c0}
c0表示选择肢到此结束。
【其他控制符】
C,颜色,但似乎不多见。暂时只在起名字的地方看到。而且就3种颜色
k,不知道
s,不知道
w,不知道
R,不知道