ks2lua 一个将 KiriKiri 脚本翻译成 Lua 脚本的工具及一些和 Galgame ~~脚本制作~~有关的想法

如果你知道 KiriKiri(吉里吉里)这个 AVG、Galgame、视觉小说游戏制作工具的话,那对文件名扩展是 ks 的脚本也不会陌生,ks2lua 是一个逐行分析 ks 脚本文件内容,然后根据语法要求输出 lua 脚本的工具,旨在解决脚本转换问题。

这个工具的原理很简单,就是分析文本文件中的每一行句子,然后根据 KiriKiri 定义好的函数名称进行匹配,提取出需要转换的信息,生成目标需要的行,直到文件全部分析完毕后,将内容写入到目标文件中。

虽说原理很简单,不过自己在写的过程中还是感觉到有些问题的,比如:全都是 if 判断后提取出需要信息 format 后 append 到 mutable string 里,能不能更简单的处理呢?嗯……我还没想到更好的处理方式,所以暂时就这样子啦 w

当然从写这个工具中,自己得到了些什么,那肯定是解决问题的方式啦。只要是具有相似度的重复类型的工作流程,完全可以写一个工具让程序帮自己去做。这个做「重复的工作」本身就是电脑擅长的,所以我们就只负责好写好「解析」「翻译」这一部分的方法就好了。

目前输出的语法是 灵潭社 第九日制作组 社长开发的 RetimeEngine (暂定名称)所定义的。至于输出成 lua 脚本的原因当然是 第九日 要上架 Steam 需要重灌脚本……(将 krkr2 引擎换成了新的自然脚本需要更新。)

不过类比下同类的,如果有一个引擎是全平台支持的,那制作组想获取更多玩家的话,移植是一个不错的选择,而移植过程中程序支持的脚本格式和原引擎的格式不一样的话,这时候就需要一个中间翻译程序来解决脚本转换这个问题,在搞定脚本问题并调试通过后基本上移植这个过程就差不多了。(毕竟如果素材不重制的话,嗯……窝也不是很懂 233)

Galgame 的制作上,程序这部分基本上剧本,细节设定完成后,有一个能把剧本翻译成程序可以读取的脚本的工具的话,基本上就不关程序的事情了,当然修复 bug 这些还是必不可少的。(同时,如果游戏中出现分支选项很多,路线不同的话,从剧本到脚本这个过程中,翻译工具做需要的要求也会更多。)

如果不怎么深入想的话,似乎感觉程序没有那么难?这个,我个人感觉是在有一定的编程经验,对现有工具经过一段时间熟悉后,写一个「从剧本到脚本的工具」,或者「从一个引擎的脚本」到「另一个引擎的脚本」的工具这些是需要精力投入的。而「有一定的编程经验」这句话,对不同的人来说所需要填坑的努力程度不同,窝也不打脸的估量下什么的。

然后「引擎」这个东西,既然制作一部 Galgame 的程序这部分大同小异,那必定有人写「通用引擎」让后来者用,也会有人自己开发引擎供社内用,自己开发的最大好处肯定是想怎么写就怎么写 w,当然出的坑也要自己填……

要说技术上现成能玩的未来能玩的,AR VR Live2D E-mote 这些不管哪个都有实际在使用/开发的,从非 SDK 开发者的角度,也就是 Galgame 程序开发者,周边软件开发者的角度来看,这些技术的集成,特别是国内,迟早要上,不是么。(会日语能看懂日文文档的技术人员,这不,搞这行开坑,填坑不可避免。)

因为不甘只作为一个玩家,其实窝到现在也并没有玩过多少,都是嘴上说要玩要玩,然后有时间都去补番去了,直到 NEW GAME 放映后激起自己也参与游戏制作之魂,于是w 就开始寻找参与的机会,没过几天看到 第九日制作组 在新招募人员 里有 游戏脚本 这个,就去发了一个私信,然后……然后等待了一天没回应,有点……方,开始搜制作组成员的 id,找到了 nerv110pixiv 里有联系方式(这个还是自行寻找吧233),request 发过去之后,后面的就,恩,自行想象,无任何交♂易。于是就从零开始了解美少女游戏脚本制作翻译,其实也不能说从零开始,毕竟自己写的那几个工具时积攒的程序开发经验值还是可观的。

还想再说点其它的东西,不过想了下还是等一等。(潜心研究,日渐消瘦

最后附上一些工具和站点供参考:

  1. EncodingMaster 批量转换文档编码格式到 UTF-8(拿来解决 GBK,UTF-16 编码格式的原始 ks 脚本)
  2. CnGal 中文 Galgame 资料站(大部分国内的 Galgame 都有介绍)
  3. 中国国内目前所有的 GALGAME 制作方有哪些?