原作分析
本节文档以 LOVEPOTION SIXTYNINE 为例,分析为什么要选择移植,仅供思路参考
# 概述
本作使用的引擎是 Yu-ris (opens new window) ,这个引擎有多个版本而且不同版本内部差异很大,封包的格式是 .ypf
,特效封包格式是 .ymv
,视频不能封包,以 .mpg
格式直接散落在外面
使用 Yu-ris (opens new window) 比较出名的作品是女装山脉,我推过这作的 ONS 移植版
本作只能在 Windows 上运行,且存在较多 Bug
- 程序容易崩溃,失去响应
Windows Server 2019 / Windows 10 / Windows 8.1 多个设备出现过这个情况,最大化后最小化再打开还会直接退出
移植制作中因崩溃产生的大量
.crash.dmp
文件,3月前是在另一台电脑做的,光3月份就崩了11次
程序崩溃时的截图
甚至偶尔还会失去响应
- 原作脚本断行,存在逻辑问题
括号打多了
这里,少打了半句话还被拆成了两行
这里,这句话是莲说的但是少了人物标记
这里,人物和文本框错位(没有显示人物名称)
人物名称位置不对
- 对话框小头像丢失
当时没有存图但是这个问题挺多的
- 特效位置错误
特效跑到边上去了
能回想起来的 Bug 差不多就这些了,总之就是原作程序很拉跨
基于这些原因,加上想让作品在全平台运行,再加上自己 Python 水平还凑合,但是汇编完全不会,顺带借这个机会学习一下 Ren'Py ,体会一下 Galgame 的制作流程,于是决定采用移植的方式来做(当然还有其它一些原因,之前的文档有提过)
# 解包
本作可以使用 Crass 解包,虽然文本和演出脚本加密无法拿到,但是顺利拿到了多媒体文件,特效 pac 文件使用了加密的 jpg 文件,请教了 flandre 大佬,他是这么说的,见这里 (opens new window)
“我看了下,这几个文件里包含了不少完整的 jpg 文件,里面的数据直接保存出来就是文件夹里的帧动画。提取出的文件虽然少但它带有 8 位的掩码文件,这样渲染的时候就能做出透明效果了。想保存的话可以试试写点代码直接把文件夹里那些现成的 jpg 黑色像素当成透明,再存成 png。”
# 写脚本
写脚本之前,最重要是选择一个合适的引擎,可供选择的跨平台引擎很多,除了我在本次选择的 Ren'Py (opens new window) ,还有 ONScript (opens new window) ,krkrz (opens new window) ,Unity (opens new window) 也是不错的选择
因为我会点儿 Python ,Ren'Py 那边的中文文档挺不错,加上推过几部 Ren'Py 做的还可以的 Gal ,所以决定拿 Ren'Py 来做
没有选择 ONS 和 krkrz 的原因是感觉文档不全(krkrz 似乎只有日语文档,中文文档好像有翻译但是补不全)
如果你对 Python 比较熟悉或者目前对编程并不熟悉,我建议你选择 Ren'Py 作为你的移植引擎
说起来,B站那边有人问会不会考虑cow和kot两个前作的汉化,这两天想了一下,这两作的话,如果后面要开坑的话,应该是不会用 Ren'Py 做了,最近打算去学一下 C# ,要学的还行的话打算拿 Unity 做,打算多体验一下不同的引擎,本次 LV69 项目主要不是为了汉化,而是想通过这种方式,用实际项目驱动学习并推广 Ren'Py ,后面如果还做的话,肯定会优先考虑这两作(因为不大有人会来抢坑可以慢慢学引擎慢慢来填),如果做的话大概率应该会用 krkrz 或者 Unity ,还是像这次一样开源,同样会写一份这样的文档来帮助感兴趣的人来入门
也欢迎各位来汉化这两作,如果真的有人用 Ren'Py 做了前两作的汉化的话我会非常开心~
开坑了的话喊我一声~
# 封包
如果用 Ren'Py 的话,封包好封,别人解包也好解,所以这部分没啥问题
# 测试
可以用 CI/CD 工具做自动化测试,很方便