逆向:工具

来自歌颂之丘
跳转到导航 跳转到搜索

此处列出 Ar Tonelico 系列汉化过程中使用到的辅助工具及相关内容。

解封装工具

RPK.BINRPKExtractor注意:该链接指向内部Gitlab实例

fpack (*.fp)FPExtractor注意:该链接指向内部Gitlab实例

  • AT1_en 之参数为「30C4E0」及「29F」

LZR (*.lzr) lzr.exe(by 巇岩流云)

中间件格式转换工具

(参考)

TIM (*.tim) / TIM2 (*.tm2)

工具:OPTPiX iMageStudio 3.12 for PS2

  • Decode:导出为带Alpha通道的PNG格式
  • Encode:在菜单中选择「Image - Color Reduction...」功能(或按下快捷键Ctrl+R)将图像减色到与原始图像相同的位深度,然后保存为与原内容相同的格式。
    • 若源TIM文件含有多个调色板时,OPTPiX iMageStudio只能处理其第一个调色板。此时需要利用十六进制编辑将原文件中的调色板复制到新文件中。可能需要在OPTPiX iMageStudio中二次编辑图像以符合原调色板。TIM文件的调色板(CLUT)定义 见此

减色时的注意点/AT 图片的特异处

AT将不透明度Alpha通道128 作为100%不透明,所以,要在其他软件中正常编辑,需要首先将图像的不透明度乘以二才是一般软件认为的,以255作为全不透明。同样的,使用OPTPiX减色时,OPTPiX考虑的也是以255作为全不透明的视觉效果进行减色,如果直接在128为全不透明的图像上减色,减色结果会很差。(通过固定调制好的调色板可以避免这个问题)

要正常地进行编辑,可通过OPTPiX导出bap调色板(Save Palette),然后使用bapdbl.exe提升不透明度,再加载提升后的bap调色板(Load Palette),再行保存,这样就得到了正常透明度的文件。

保存为游戏用文件时,首先将正常图片减色,然后保存bap调色板,使用baphlf.exe降低不透明度,再加载alpha减半后的bap调色板,得到透明度减半的图像,最后再输出为游戏用的tm2文件。

IPU (*.ipu)

Decode:IPUDecoder

  • 命令:IPUDecoder input.ipu output.m2v

Encode:ps2str (Sony Playstation 2 SDK)

  • 命令:ps2str c -o -v input.m2v

单帧ipu处理

Transcode:ffmpeg

  • m2v to bmp:ffmpeg -i in.mpg out.bmp
  • bmp to m2v:ffmpeg -i in.bmp -r 29.97 out.m2v
    • ffmpeg转换后的m2v尾部缺少MPEG视频流终止码「sequence_end_code = '00 00 01 B7'」,需填加该终止码方可被ps2str接受。

CRI Sofdec (*.sfd)

Demux: VGMToolbox

  • 使用菜单中的「Misc. Tools - Stream Tools - Video Demultiplexer」功能,选择格式为「SFD (CRI Sofdec Video)」

Remux:SFD_Muxer

  • 命令:SFD_Muxer -y -v sub.mpg -a origin.sfa (-a origin.ac3) -o output.sfd


字幕制作流程

0、解流SFD。

1、将SFA音频流转换一份WAV副本。使用adx2wavmod3v2

2、将m1v视频流与wav音频流混流为制作字幕用的中间视频。使用mkvtoolnix

3、制作字幕。使用Aegisub
注意:使用Aegisub制作字幕时,由于Aegisub不能识别延迟,且部分视频因编码原因不能正常进行帧跳转,需将源视频转码得到一份帧内编码的代理视频。
   字幕中文字显示会被拉长,请调整样式文字宽高比为109:100/100:91。

4、将字幕压制进m1v视频流。使用ffmpeg等。

  • 使用了Vsfiltermod的字幕需利用小丸工具箱的AVS插件,使用给定的脚本压制字幕,随后转码为m1v。
  • 使用Adobe Premiere Pro制作的字幕需使用Adobe Media Encoder的「H.264 - 高画质-匹配来源」预设压制,随后转码为m1v。

E、将含字幕m1v视频流与音频混流。


附:常用ffmpeg命令

1.压制m1v

ffmpeg -y -i in.mpg -an -c:v mpeg1video -vf "ass=Sub.ass" -b:v 50000k out.m1v

  • -y:强制覆盖
  • -i:输入流
  • -an:无音频流
  • -c:v:视频编码器
  • -vf:参数。"ass=xxx"为导入字幕。
  • -b:v:视频码率。极高码率等价于无码率上限限制。

2.转码为帧内编码

ffmpeg -i output.mp4 -strict -2 -qscale 0 -intra keyoutput.mp4

3.设置显示宽高比(DAR)及分辨率

-vf scale=320:224,setdar=dar=73/56

4.视频转化为帧序列(命令行only)

ffmpeg -i in.mpg %04d.bmp


参见