qwe7989199 / RubyTools

日文字幕注音工具/Generate and add ruby in Aegisub
55 stars 6 forks source link

转换之后字符变少 #3

Closed Hellobaka closed 2 years ago

Hellobaka commented 2 years ago

不懂日语不知道怎么描述这种情况。 使用的是最近更新的V2版本,之后在处理以下文本时出现缺失字符的情况

{\k18}生{\k17}ま{\k17}れ{\k64}変{\k35}わ{\k13}っ{\k28}た{\k20}と{\k20}し{\k33}て{\k66}も {\k22}出{\k16}会{\k15}い{\k62}方{\k51}が{\k30}最{\k30}悪{\k29}で{\k30}も

得到结果

{\k18}生|<う{\k17}ま{\k17}れ{\k64}変|<か{\k35}わ{\k13}っ{\k28}た{\k20}と{\k53}して

以及以下文本

{\k40}た{\k20}っ{\k93}た{\k15}一{\k36}度{\k114}の {\k34}た{\k19}っ{\k87}た{\k15}一{\k46}人{\k46}の

得到结果

{\k40}た{\k20}っ{\k93}た{\k51}一度|<いちどの

但是有些更长或者带有空格的文本都能够转换成功。

关于脚本只是按照教程解压到指定地方,没有改动并可以正常使用

qwe7989199 commented 2 years ago

假名+空格共用一个k值,这种形式在我所在的字幕组是不合法的。 因为后期在计算音节宽度时会空格宽度会被计入导致音节宽度计算结果比实际文字宽度大,进而导致假名标注位置和有关特效的坐标计算出现问题。 文字宽度计算规则是Aegisub自动化底层定义,本着尽量不修改的原则,在前置阶段就所以没对非法k进行考虑和适配。

{\k18}生{\k17}ま{\k17}れ{\k64}変{\k35}わ{\k13}っ{\k28}た{\k20}と{\k20}し{\k33}て{\k66}も{\k0} {\k22}出{\k16}会{\k15}い{\k62}方{\k51}が{\k30}最{\k30}悪{\k29}で{\k30}も

使用上方合法形式,可以返回完整结果