[Gal汉化入门]#4 TyranoScript汉化教程
Dir-A
2021年09月01日 23:20

[Gal汉化入门]#4 TyranoScript汉化教程

#0x0 辨认引擎

首先拿到游戏最主要的是辨认引擎,比如我们这个教程是针对TyranoScript写的那你肯定得是对应的引擎才能用,牛头是对不上马嘴的。

  • Tyrano的基本实现

TyranoScript这个引擎,是 JavaScript+HTML+KAG 实现的其本质就是一个网页一样的东西,也就是说这玩意运行依赖于浏览器框架 所以TyranoScript不管是在 Windows、Mac、Linux、Android、IOS 上运行都是 浏览器+网页文件 这种形式而且这玩意对多平台的支持也只是那个“浏览器”换了一下而已

  • Windows平台

我们主要来关注Windows平台Tyrano在Windows上的运行方式我观察是有三种, 其实也可以说是两种因为另外两种好像就是用  Electron 实现的另外一种其实就是不封包嘛,不过运行好像也是依赖 Electron 具体我就不怎么清楚了

 封入 EXE

这种的很好辨认,exe特别的大

封入 app.asar

这种的 resources 目录下 有个特别大的 app.asar 文件

不封包

这个就很好认了,目录下必有tyrano 、data、node_modules文件夹index.html 、package.json文件

其实上面封包的,解开后也是这样的

  • 注意与其它引擎区分

并不是说目录下有如下的文件就是 tyrano 引擎

这些只是一个浏览器的外壳,拿来运行 tyrano 的脚本的  比如RPG Maker MV 也会有这些文件

最好的是方法是,解包或不封,你能看到 tyrano 这个文件夹,还有data文件夹 并且 data 文件夹里的 scenario 文件夹中有 ks 文件

#0x1 解包方法

对于Tyrano的游戏资源封包分为三种类型(封入 EXE,封入 app.asar,不封包)

  • 封入 EXE

直接把 EXE 后缀改为 zip 并解压当然有一部分 64位 的程序是没办法这样解的

此外这种形式的游戏还会把封包内容释放到 %temp% 目录下文件夹名开头为 nw___   也可以从这直接复制出来

  • 封入 app.asar

app.asar 放在 resource 目录下可通过 WinAsarnodejs 解包

点击 Extract 后会把解包内容放到同目录下的 app.asar.unpackhttps://github.com/aardio/WinAsar

有一些 asar 文件是加密的,这种方法是解不了的。

  • 不封包

没必要说了吧!

#0x2 观察文件目录

我们去掉浏览器的部分,看看这游戏本来啥样

看起来就和网页文件一样, tryano 文件夹里有js css 然后data文件夹里的目录看起来就和krkr引擎一样 scenario里也有ks文件,system文件夹里有个config.tjs

别的文件夹里基本都是 cv bg fg 之类的资源文件

  • 剧本

scenario里面就是存放游戏文本的,而且是Unicode编码的,直接就可以改中文

  • 字体

字体一般放在 other 文件夹里

一般在 tyrano 文件夹里 有个 font.css 里面就是装载字体的

system 文件夹 下的 config.tjs 具体配置 字体的 阴影 大小 粗细等

#0x3 运行与调试

  • 运行

对于 不封包 的这个可以直接改文件,可以直接运行,不必多说 现在我们来讲讲,解包后的运行。

情况1

如果你解包后是这样的,那直接点那个 exe 就可以正常运行游戏了

情况2

如果你解包后是这样的,说明并没有带浏览器的框架,只有脚本, 我们需要手动添加浏览器的框架才能运行

可以去 tyrano 官方下 https://tyrano.jp/dl/v4

下载好后解压,然后把我们解包出来的文件拉过去覆盖即可

当然你也可以通过 别的游戏来获得这个框架,或者用其它的框架,或者用Tyrano官方的开发工具,都行。甚至你也可以直接用chrome运行,只不过需要点别的操作,这里就不说了。

情况3

遇到 app.asar 文件解包后, 我们可以把 app.asar.unpack这个文件夹, 重新命名为 app.asar 移除 app.asar 文件 即可直接运行。

  • 调试

官方是提供了开发调试工具的TyranoRider和TyranoStudio 都是免费的, 功能也够用,我们可以去下载,不过只有日文 https://tyrano.jp/dl/rider https://tyrano.jp/studio

当然你也可以选择用浏览器调试,如果你会用的话。

我们这边演示一下 TyranoRider

点击 プロジェクトを選択 选择游戏的 index.html 文件, 对的,你刚刚甚至可以不用添加浏览器框架用这个玩意运行也可以, 反正它就是个网页脚本,只要有个浏览器就能跑。

1 开始运行 2 这个地方可以选择指定的ks文件 后面那个框可以跳转ks文件里的某一节。

然后还可以查看素材,生成补丁包之类的,这个懂日文的同学可以去看看。

#0x4 补丁包

tyrano 的补丁包一般是以 .tpatch 为后缀的,本质就是个 zip 包

  • 名称规则

名称一般是 [projectid].tpatchprojectid 其实在 system\config.tjs 里有里面有一行projectid=mytyrano 那么补丁的 全名是 mytyrano.tpatch

或者我们也可以直接从存档文件读出来比如 tyranoproject_sf.sav 那么 projectid就是 tyranoproject 那么补丁的 全名是 tyranoproject.tpatch

  • 内部目录结构

我们先来看一个没封包的 tyrano 引擎的游戏 比如我们有个 b_1.png 的文件路径是 .\data\image\button\b_1.png 这告诉我们它是在 data文件夹下的image文件夹内的button文件夹里面

那么我们打包成zip的时候也要严格按照这个 路径/目录 结构 因为游戏运行后会释放这一部分的文件去替换

换句话说,你压缩成 zip 后,也得是,双击打开zip 第一个文件夹 data 里面有个 image文件夹然后里面有个 button 文件夹 ,进去后躺着个 b_1.png

而且不管你是 封入 exe 还是 app.asar 都是这样。

  • 补丁运行方式

虽然都是 .tpatch 后缀的补丁,但是运行的方式稍有不同

对于封入exe的游戏来说因为游戏运行后会释放到 %tmp% 这个路径下 补丁的工作原理就是解压zip,然后覆盖进去, 所以这也就是为什么要求里面的目录结构一致

对于封入app.asar的游戏来说 这个引擎的工作方式就有点奇怪了, 你把补丁放在游戏目录下第一次运行的时候 游戏会提示你 更新包已经整合重新打开游戏, 其实这个玩意,就是把.tpatch的内容整合进app.asar里面 这种方式其实也就不能称之为独立的汉化补丁了, 因为它会改变原来的 app.asar 文件 但是这玩意已经固定就是这样更新了,所以没办法 如果要还原日文我们只能准备一个原来的文件,通过同样的方法导入进去 其实如果这样的话,也可以不发布汉化补丁了, 我们直接解包后可以换成封入exe,或不封包,或别的方式也可以了。