逆向:工具
此处列出 Ar Tonelico 系列汉化过程中使用到的辅助工具及相关内容。
解封装工具
RPK.BIN:RPKExtractor
fpack (*.fp):FPExtractor
- AT1_en 之参数为「30C4E0」及「29F」
LZR (*.lzr) :lzr.exe(by 巇岩流云)
- 命令:lzr input.file.lzr
- 运行时要求:VC++ Runtime 2015-2022
- 源码:Media:Lzr-src.7z Linux用户请下载源码编译,需支持C++20之编译器。
中间件格式转换工具
(参考)
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