俗话说授人以鱼不如授人以渔,写这个是希望留下一些对MO4引擎的研究结果,方便后来人查阅,也能给新手们一个关于移植工作的直观印象。
MO4的移植我只参与了资源提取和脚本解析两部分,下面说一说我的提取过程吧。如果有差错请指正。
MO4 繁体中文PC版(光谱版)使用的引擎和Ever 17、Never 7是一样的,资源包格式是KID早期一直使用的DAT包,脚本指令也大部分和Ever 17兼容。
- bg提取:使用KID Tools GUI V2.1,AyuanX编写。这个工具提取出来的图片是不带alpha通道的,不过bg一般不带alpha所以没问题。
- chara提取:使用WinKiller Studio编写的素材提取工具AE – VN Tools。这是专门提取Ever17的工具,界面很专业的样子,可惜bg提取出来有一些边缘错位。chara提取倒是可以有alpha,但是提取出来是上下颠倒的,白边也很大。我又自己写了一个python脚本chara.py进行二次处理,将上下翻转并且去白边。
- system图片提取:还是AE – VN Tools,但是提取出来的图片都是半透明的,有错位,上下还颠倒……还好数量不多,用photoshop修正之。
- bgm,se,voice提取:KID Tools GUI V2.1,提取出来是wav,用Goldwave转成mp3。
下面是最重要的脚本提取了,MO4脚本解包后扩展名是scr,Ultraedit打开后文件头是SC3(和MO1、MO2一样,不过不知道具体格式一不一样)。格式和Ever17是一样的,属于一种经过编译的二进制脚本,解码难度很大。
好在国外的weeaboo花了几年时间编写过一个Ever 17 VNDS Converter,可以将Ever17脚本转VNDS格式,并附上了Java版本的代码。toktc大大根据这个编写了一个C++版的Ever17脚本转换工具ever17-script-parser,用来将Ever17脚本转成类似ONS的格式。我后来又请他针对MO4做了一些修正,然后我自己也改动了一些代码以输出pymo格式。
由于我用的是繁体中文的脚本,最后又写了个python脚本script_MO4.py进行繁体转简体,同时也进行一些细节上的二次处理,pymo脚本雏形就出来了。我的工作也就到此为止。
但是事情还没有完,toktc的工具对于跳转支持的不是很完善,同时我发现好感度之类的变量完全找不到……这时候就由Smileの寂寞大大出场了,由他对照着攻略手动修复跳转和结局,同时手动添加各种特效、制作开始菜单和鉴赏、制作视频。总之都是一些很耗时间的事情……在下对Smileの寂寞大大的细心和耐心表示无比钦佩!
关于MO4的移植经验就写这么多吧,大家可以看到,移植并非易事,通常需要很多不同领域的前人的积累,需要细心、耐心和恒心,以及对作品的爱。但是正因为不容易,所以我们才能更深刻地体会到移植完成的那种成功与喜悦。
文中提到的所有工具可以在http://pan.baidu.com/share/link?shareid=419816&uk=1577432571下载。