《セヴンデイズ あなたとすごす七日間》主机版新增CG的PC移植实现

其它与你共度的七日间资源提取游戏资源移植KiriKiri2
浏览数 - 21发布于 - 2026-06-01 - 00:39

摘要:《セヴンデイズ あなたとすごす七日間》的主机版本包含多张PC版所缺失的CG,导致PC玩家体验不全。目前,该移植工作缺乏现成的技术方案。本研究旨在探索一种可行的移植方法,通过解包主机资源、解析KiriKiri2引擎脚本结构并修改相关指令,成功将NS版新增CG整合至Steam版游戏中。实践表明,即便不具备深入的编程知识,爱好者也可通过利用开源工具与脚本分析完成此项工作。本文完整阐述了移植流程,为同类游戏的内容移植提供了切实参考。通过这些内容,读者可以学习到将七日间主机版CG移植到PC版上的全步骤,并进行实际尝试。

关键词:与你共度的七日间;资源提取;游戏资源移植;KiriKiri2

一、前言

《セヴンデイズ あなたとすごす七日間》(常用译名:7days-与你共度的七日间,下文简称为“七日间”)是以“不忘初心进行创作”(原文“原点を忘れないものづくり”)为理念[1]的合同会社LIFE0(下称LIFE0)创作的“给已逝女主角以幸福结局的超自然恋爱ADV”(原文:“死んでるヒロインを幸せに終わらせるオカルティック恋愛ADV”)[2],在2017年9月29日正式发售,并于2018年7月5日加入PlayStation Vita(下称PSV)平台[3]、于2020年8月26日在steam上架包含额外内容“紫色的信封”篇的完整英日双语版本[4]、于2024年6月6日正式推出Nintendo Switch(下称NS)版。[5]

在PSV版的游戏中,有若干新增的CG内容,这些新增的CG也一并加入到NS版中。然而,PC端的玩家却无法直接在PC端游戏内看到那些CG,只能设法使用相关模拟器,而模拟器的性能始终稍逊一筹。那么还有什么好方法能直接在PC端看到这些CG呢?可行方法之一是等待技术人员实现移植。坏消息是,直到现在为止也还没有技术人员去做,或是已经做好了但不打算发布;好消息是,进行这一步需要的相关知识并不复杂,甚至对KiriKiri2(PC版七日间使用的游戏引擎)语言一窍不通的小白,也可以摸索出CG移植的方法。笔者正是这样的小白,通过最基本的方法慢慢找到了一些可行的方法。那么,我们就从头开始,一步步达成最终目的吧。

二、具体步骤

(一)获得新CG的原图

1.NS版游戏资源文件的解包

显而易见,要进行CG移植,就得首先拿到需要移植的CG的原图,也就是说我们至少得先找到PSV版或NS版的资源文件并尝试解包。这里我们选择NS版,主要是出于以下考虑:

huohua_离民-1762529769288-01png图1.NS版七日间的官方介绍网页(部分)
图片来源:https://www.prot.co.jp/switch/7days/index.html

首先,NS版使用了高清CG,这与steam版的游戏分辨率相符;其次NS版是双语版本,支持语言随时切换,这样我们对脚本进行检索时不必切换到不那么常用日语输入法。

基于这些优势,笔者找到了对应的游戏资源文件。获取游戏资源文件的方法不在本文讨论范围内。笔者的建议是,在二手市场或其他地方找到游戏卡带,然后用工具提取出游戏的xci文件①,这样最能确保安全性。不论如何,总之我们就这样拿到了游戏的xci文件。

xci文件包含了游戏资源文件,也就是游戏脚本、CG、背景、语音等等诸多内容。那么怎么把它们提取出来呢?我们可以直接在GitHub上检索对应的工具,也可以找找有没有相关的贴子。好消息是,Switch毕竟还是个热门平台,所以相关内容检索起来不难。这里我们找到了一个讲解解包xci文件的贴子,如图2所示:

huohua_离民-1762530154125-02png图2.贴吧处找到的XCI文件提取资源流程讲解贴
图片来源:https://tieba.baidu.com/p/7409095483

大致总结一下其中内容:可以使用开源工具hactool对xci文件进行解包,解包时需要事先获取keys,然后按步骤操作即可。[6]依照贴子中讲述的方法,我们就得到了游戏资源文件。稍作推理,我们就能知道EVENTCG.PAK里的正是我们需要的CG。那么我们可以把它单独复制出来处理。

 

2.从PAK文件中提取出需要的图片文件

接下来是一个较为困难的点,此处游戏资源文件是以.PAK为后缀的。虽然常用的开源解包工具GARbro能打开看到里面都有什么文件,但无法将其直接转换为png图片,或是从中提取出png:

huohua_离民-1762530447048-03png图3.使用GARbro尝试直接解析内部文件时,出现的失败提示

怎么办呢?注意到在此界面双击打开EVENTCG.PAK时左下角会显示这样的文字:

huohua_离民-1762530426589-04png图4.使用GARbro打开游戏资源文件时,出现的文件类型提示

提示说这个文件属于Key resource archive(Key的游戏资源归档文件),看来这个资源文件被识别成了Key社游戏的资源文件,也就是说,它使用的引擎与Key的游戏(更具体地说,应该是Key的NS版的游戏)用的一致。那么Key的NS版的游戏用的又是什么引擎呢?这时候我们可以直接去VNDB查看相关信息:

huohua_离民-1762530469465-05png图5.VNDB上NS版KANON的详细信息

注意到Engine(游戏引擎)一栏中,显示为Luca System。再找到其他作品的相关信息:

huohua_离民-1762533984160-06png图6.VNDB上NS版AIR的详细信息

Engine一栏处的内容也是Luca System。据此,我们就直接推定NS版的七日间使用的游戏引擎为Luca System。

知道了引擎信息之后,我们就可以再去GitHub找对应的解包工具:

huohua_离民-1762533998699-07png图7.GitHub上对“Luca System”的检索结果(部分)
huohua_离民-1762534010455-08png图8.GitHub上的工具LucaSystemTools

使用该工具,我们就能把我们需要的这些主机版新增的CG提取出来了。当然,这里我们获取到的图片有些只是差分部分,这就需要慢慢用Photoshop或者类似的工具进行拼图了。由于这只是重复性工作,此处略去不讲。

huohua_离民-1762534027154-09png图9.最终获得的主机版新增CG及工程文件

(二)观察原脚本并理解控制CG显示的具体语句

1.认识KiriKiri2

KiriKiri是一款由日本开发者W.Dee(しんぷる)主导设计的开源游戏引擎,其核心是TJS(Text JavaScript)和KS之类的脚本的脚本语言的解释器,而KiriKiri2则是这一引擎的核心升级版本。[7]换言之,实际上是TJS和KS脚本文件在控制游戏演出、资源调用、剧本显示等。那么,我们只需要对游戏的一些TJS或KS文件进行修改,即可达成我们的目的。

 

2.观察了解脚本中控制CG显示隐藏的语句

我们首先了解一个基本事实:对steam版的七日间,其游戏资源文件储存在游戏目录下的若干个xp3文件中,这些xp3文件中的具体内容可以通过开源工具GARbro查看、提取及重封装。我们首先用GARbro打开data.xp3,并在“压缩文件参数”处选择“没有加密。”:

huohua_离民-1762534045974-11png图10.游戏目录下data.xp3包含的文件/文件夹一览

接下来我们找到TJS及KS文件并提取出来,不过在此之前回顾一下一些基本的英语单词[8]:

BGM

是“background music”的缩写,意为“背景音乐”。

scenario

n. a written outline of what happens in a film/movie or play (电影或戏剧的)剧情梗概

(注:此词可理解为记录游戏走向的剧情脚本)

sound

n. someting that you can hear 声音;响声

我们可以大概猜到,scenario文件夹里的KS文件就是控制游戏剧情的脚本,也就是我们需要修改的文件。不过我们还是把其他暂不清楚用途的文件都一起提取。接下来,对已有的文件名稍作观察:

huohua_离民-1762534065233-12png图11.scenario文件夹中KS脚本文件(部分)

“プロローグ”即序幕;“サクラ”是“樱”,也就是第一章的主角。在使用十六进制编辑器wxMEdit打开“00-プロローグ.ks”之前,我们可以发现:

 

huohua_离民-1762534124646-13png图12.00-プロローグ.ks的内容(部分,以UTF-16 Little Endian编码查看)

我们回顾一下游戏从头开始时的演出。先是全黑,然后是名为“???”的角色的第一句台词:

huohua_离民-1762534145879-14png图13. 英文版七日间游戏内第一句台词

再之后对话框隐藏,有落水声,接下来显示一个白色的标题logo,暗转后进入下方旁白“7月19日 星期三”。结合上方脚本内容及基本的英语知识,我们大概可以做出判断:

bg相关指令用于设置背景图(BackGround),将背景设定为文件名为“st=”后字符串的图;另有变量time设定进入时长,且其单位应该是毫秒;msg显示对话框,与之相对的是hiademsg,隐藏对话框;se的设定大概是音效;wait的设定则是等待时长……最重要的一点是,这些指令要么以@开头,要么用半角双括号括起。注意到脚本中的非空行里,除去指令和台词部分,还有以半角分号及星号开头的一些内容。这些内容又是什么情况呢?不妨继续观察:

huohua_离民-1762534171189-15png图14.00-プロローグ.ks的内容(部分,以UTF-16 Little Endian编码查看)

此处有一个控制跳转的jump指令,相关参数有storage(存储,可以理解为target所在的脚本文件)与target(目标)。可以推测以星号开头的内容属于“标签”,且有效部分是“|”之前的内容。

接着看半角分号的情况:

huohua_离民-1762534188340-16png图15.00-プロローグ.ks的内容(部分,以UTF-16 Little Endian编码查看)
huohua_离民-1762534202176-17png图16.英文版七日间游戏序章内容(部分)

如果没有半角分号,则按理来说在“Does she actually find school fun, or something?”与“It sounded like she was just introducing herself, but I was too lazy to even bother listening.”之间会有一句带语音的台词,而实际上没有。可见半角分号的作用是“使其后的语句无效”②。

我们可以在voice.xp3里找到名为cha001的语音文件,正好就是此处调用的语音。据此我们可以判断形如“[ps n=’charactername’ v=’voicefilename’]”的结构是用于控制显示的发言角色名及语音的。不过这就与我们的目的有些差异,所以一下不详细说明了。

不过这里还没有我们需要的指令,也就是cg相关的那些。我们直接跳转到第一张CG出现时的场面:

图17.英文版七日间游戏内第一张CG出现时的下一句台词

提示:若出现CG时的那一句仍难以确定位置,则可以考虑下一句或上一句,只要能用于锚定确切位置即可。那么这一句又出现在哪一个脚本文件里呢?一个个找未免太麻烦,我们直接让AI帮忙写一个快捷查找的脚本工具。此处笔者使用python,给DeepSeek输入“设计一个py脚本,要求:遍历当前目录下所有子文件夹及当前文件夹中的ks及tjs文件,用utf16le读取,并检索每一行是否有待检索的字符串。若有,print输出文件相对路径及该行行数”后即可得到所需工具。读者可以根据自己的实际情况调整,或参考文末附录中的示例代码。

借助这个小工具,我们可以找到上图台词所处的位置:“scenario/00-プロローグ4.ks,第1510行”,如下图所示:

图18.七日间游戏内第一张CG前后脚本内容

从图里我们可以看到,控制CG显示的语句格式是这样的:[cg st=’cgimage’ time=n]。那么,要把我们得到的主机版新增CG移植进去,我们首先要确定CG的名字及出现位置,然后照猫画虎即可。在此之前再留意一下[clearsg time=n]的指令作用。clear是清除,sg设定在图里最上方有,根据“私服”“眉”“目”“颊”等关键词,很显然其为立绘图的设定,那么我们就要记得引入CG前最后先设定一步clearsg。同理,如果引入CG的位置之后还有立绘出现,在确定不需要立绘图出现的情况下,最好还是预先将其用半角分号注释掉。

不过我们还要注意一点,CG既要加入也要消除。这一点,我们不妨直接看看游戏里是在哪一处消去CG的:

图19.英文版七日间游戏内第一处CG消除处的台词

然后调出wxMEdit的检索功能,我们就能发现:

图20.检索到的七日间脚本中第一处CG消除处的台词

仔细看看上面用到的指令,“[clearig]”,也就是说,在需要消去CG的时候,加上一个“[clearig]”就好了。

通过以上观察,我们就大致了解了CG显示及隐藏的指令。如有需要,各位读者可前往附录查看部分可用的指令及其基本用法。接下来,我们就能把这些经验用在实际工作中了。

 

3.在合适位置插入CG并更新CG鉴赏功能

要在“合适位置”插入CG,我们就得首先知道哪个位置是“合适”的。所以我们有必要实际体验一下NS版的游戏。笔者没有游戏主机,所以就用了名为“Eden”的NS模拟器。下载安装包并配置好keys(我们之前解包时用到的那个)和固件,导入游戏xci文件即可[9]。我们直接快进到新CG出现的位置:

图21.NS版七日间第一处新增CG出现位置

由于我们已经知道这里是樱的章节,而该章节仅有两个ks脚本文件,所以就不需要动那个检索全体的小工具了。于是我们在“01-サクラ.ks”里找到了那一句:

图22.七日间第一处新增CG在steam版脚本中的出现位置

稍作观察,不难发现这里调用的CG是我们之前解包得到的“ev101_a.png”。那么我们就可以在上方添加这样的一行“[cg st=ev101_a time=200]”,这样就算完成了CG移植工作最重要的一步——毕竟万事开头难嘛。接下来的工作都是类似的,只要找准新CG出现及消去位置,及时添加对应指令即可。

脚本文件编辑好了,但怎么让游戏读取它们呢?不用担心,KiriKiri引擎会优先读取xp3文件中的游戏资源,而且以patch.xp3中的部分为最优先③。那么怎么获得xp3文件呢?实际上GARbro就有这个功能:

图23.GARbro的创建压缩文件功能

我们把我们修改后的脚本文件和图片文件丢到同一个文件夹里,全选后点击“创建压缩文件”,选定压缩文件格式为“xp3”,版本为“2”,加密方式为“没有加密。”,之后按下确定键即可。

且慢,是不是漏掉了什么重要的内容?虽然把CG添加到了游戏内,但我们现在还没有修改过游戏的鉴赏功能。为了确保体验,这一步还是很有必要的。不过接下来的问题是,控制鉴赏功能的脚本文件是哪一个呢?我们可以进行简单的推理:

大前提:在游戏中,所有图片按钮都与其对应功能挂钩,这意味着控制该功能的脚本文件必然会引用图片按钮的图片名。

小前提:如果控制功能的脚本文件引用了图片按钮的图片名,那么通过对所有脚本检索该图片名,就能顺藤摸瓜发现该脚本文件。

结论:因此,只要对所有脚本检索某个图片按钮的图片名,即可顺藤摸瓜发现控制该功能的脚本文件。

那么事情就变得简单了,我们首先看看鉴赏功能对应的图片按钮图片名:

图24.鉴赏功能图片按钮图片名

图片名是“title@extra%button.png”,用上之前那个小工具一键检索,发现这个字符串在“gsys/SystemConfig.tjs”的第68行出现:

 

图25.SystemConfig.tjs中与鉴赏功能有关的句段

按下按钮后,会跳转到脚本文件“extra.ks”中的标签“*to_extra”处。不过直接读extra.ks就不那么基础了,所以直接交给AI分析即可。我们得到的结论是,如果要添加新的CG,则需要修改cglist.txt及额外加入页码图片按钮对应的图片,且把CG预览图裁剪到合适尺寸后一起加入进去。这一步对大家的PS能力有比较基础的要求。如果觉得自己确实欠缺相关知识,则考虑暂且搁置也并无不可。

(三)总结与展望

那么,进行到这一步,我们就基本上把主机版CG移植的工作做完了。不过这只是理论上的完成,实际表现如何,还是需要我们亲自测试一下。

三、运行测试

(一)方便测试特定内容的快捷跳转功能实现

要实现一个新功能,最后的测试步骤必不可少。只有在我们的工作经得住测试的情况下,才可以说“确实完成了”。不过这些新CG的出现位置多少有些偏后,即使是快进也要花不少时间。怎么办呢?我们可以利用前面观察得到的相关知识。

首先,根据SystemConfig.tjs中内容,“新的开始”跳转到“title.ks”脚本里的标签“*to_game”,直接让AI解释脚本具体做了什么。结论是,最后会跳转到“startscenario.ks”这个脚本文件里。那么“startscenario.ks”又做了什么呢?我们直接打开看看:

图26.startscenario.ks中内容(以UTF-16 Little Endian编码查看)

开头是半角分号的行是无效行。简言之这个脚本总共就干了这些工作:初始化场景,预设全局变量“体验版”为0(即告诉主程序,现在运行的是正式版),调试模式下该怎么做,跳转到“00-プロローグ.ks”。对我们来说最重要的是最后一个跳转,只要把这一行改成我们需要跳转的那些标签,也就是新增CG出现时或之前的任意一个标签(实际上我建议跳转到bg和bgm都设定好了的标签),就能快速测试新增的CG是否安排合理、是否有意料之外的异常了。

为了确保BGM、背景图之类的都没问题,同时为了快速跳转到需要测试的位置,首先,检索我们新增的内容,这里直接检索CG名“ev101_a”即可;然后,在该处输入“bg”并点击“查找上一个”,直到找到bgm和bg都设定过的标签。以修改后的“01-サクラ.ks”为例:

图27.修改后的01-サクラ.ks内容(部分,以UTF-16 Little Endian编码查看)

确定我们要跳转的标签是“*寄り道”。然后我们修改一下startscenario.ks,去掉无用行,大概改成这样即可:

图28.修改后的startscenario.ks(以UTF-16 Little Endian编码查看)

然后把startscenario.ks单独打包成patch2.xp3,放到游戏根目录,之后打开游戏点击新的开始:

图29.第一次运行测试

可以看到,我们很快就跳转到需要测试的内容,而且现在在steam版上也可以看到主机版新增的CG了。

(二)预期外问题的遭遇与解决

1.预设变量相关问题

但接下来我们就遇到了一个问题,按理来说这段剧情之后应该是还有一处选项【马上放开--揉揉看】才对,为什么这里无法显示呢?回到脚本里一探究竟:

图30.01-サクラ.ks内容(部分,以UTF-16 Little Endian编码查看)

原来这里有一个if语句,如果变量“f.変態”为0,则直接默认我们选择了“马上放开”。那么这个变量又是怎么回事呢?往上再找找,原来是这样:

图31.01-サクラ.ks内容(部分,以UTF-16 Little Endian编码查看)

在上方有一个选项【想一些色情的事--脑中想「我喜欢千夜子」】,该处选择“想一些色情的事”后,变量“f.変態”会被设为1,然后在刚才的位置就能出现我们需要的那一个选项了。也就是说,关键在于进行到那一段之前,先执行一次“[好感度設定 name="変態" flag=1]”

题外话:此处的“好感度設定”指令是自定义指令,具体作用是这样:

图32.macro.ks内容(部分,以UTF-16 Little Endian编码查看)

自定义指令“好感度設定”,输入参数为字符串name及整数flag,具体作用是为“f.name”这个变量增加flag点。在原内容处,指令“[好感度設定 name="変態" flag=1]”的功效相当于“[eval exp="f.変態 = f.変態 + 1"]”。

我们把这一句也复制到startscnario.ks里的jump指令上方,然后再打包并启动。这回可以了:

图33.第二次运行测试

 

2.ig与CG冲突的解决

选择下方选项继续进行,然后很快就遇到了新的问题,如图所示:

图34.第二次运行测试时选择“Try squeezing”后的情况

这里我们用NS版的同一句做个对比:

图35.NS版七日间在选择“Try squeezing”后的情况

可见,NS版在选择之后仍保留CG,而我们修改脚本后该处却只显示了上下黑边。仍然回到脚本中看看什么情况:  

图36.修改后的01-サクラ.ks内容(部分,以UTF-16 Little Endian编码查看)

唯一的线索是该处的“[ig st="frame"]”,结合之前隐去CG使用的语句是“[clearig]”,我们不妨就先假定ig图和CG的图层是同一个。问题随之而来,要实现NS版中的效果,可以怎么做?我们注意到,ig图和bg图是不冲突的,所以这里只要把这张cg设定为背景图,即可达到同样的效果。不过我们还要记得隐去CG之前,先把背景图的设定改回去。

图37.修改后的01-サクラ.ks内容(部分,以UTF-16 Little Endian编码查看)
图38.修改后的01-サクラ.ks内容(部分,以UTF-16 Little Endian编码查看)
图39.第三次运行测试

可以看到,最终的效果虽不能说百分百复刻原场景,但也八九不离十了。接下来的几处CG的插入也是同理,此处不再赘述。

(三)总结

至此,我们经过测试,确定了我们进行的工作是可行的。虽然就现有情况而言不能算“完美”,但至少是“可用”的。

四、结语

综上所述,本文详细介绍了将七日间主机版新增CG移植至Steam版的全过程,涵盖从资源提取、脚本解析到实际修改与测试的完整流程。通过利用开源工具、观察脚本结构、理解游戏引擎的基本逻辑,即使是缺乏编程基础的爱好者,也能逐步实现CG的移植与功能完善。这一过程不仅体现了对游戏内容的热爱与执着,也展示了普通玩家通过自主学习与实践,突破技术壁垒的可能性。

尽管最终的实现方案在细节上仍有优化空间,例如图层控制的精细化、鉴赏功能的完整适配等,但整体上已达成“可用”与“可体验”的基本目标。希望本文能为有志于进行类似修改的玩家提供参考,也期待未来有更多爱好者参与到游戏内容的二次创作与优化中,共同丰富游戏的可玩性与艺术价值。

五、参考文献及注释

(一)参考文献

[1]LIFE0.会社情報[EB/OL].[2025-11-05].https://life0.info/company/infomation

[2]life0info.【ついに明日!】死んでるヒロインを幸せに終わらせるオカルティック恋愛ADV 「セヴンデイズ あなたとすごす七日間」[EB/OL].(2017-07-20)[2025-11-05]https://x.com/life0info/status/888020655903350784

[3]PS Vita.セヴンデイズ あなたとすごす七日間[EB/OL].[2025-11-05].https://www.prot.co.jp/psv/7days/index.html

[4]VNDB.セヴンデイズ あなたとすごす七日間[EB/OL].(2025-09-07)[2025-11-05]https://vndb.org/v19654

[5]Nintendo.SEVEN DAYS[EB/OL].[2025-11-05]https://www.nintendo.com/us/store/products/seven-days-switch/

[6]lwyx2014.【教程】XCI和NSP提取资源简单流程[EB/OL].(2021-06-17)[2025-11-04].https://tieba.baidu.com/p/7409095483

[7]Dir-A.[Gal汉化入门教程]#1 基础知识部分[EB/OL].(2021-07-29)[2025-11-05].https://www.bilibili.com/opus/552429542701336284

[8]huohua_离民.Galgame游玩前必学的英语(v1.1版本)[EB/OL].(2025-08-28)[2025-11-05].https://tieba.baidu.com/p/9991418573

[9]一花の一界.最新最强Eden switch模拟器安装使用说明 windows 安卓 mac[EB/OL].(2025-09-15)[2025-11-05].https://www.bilibili.com/opus/1112527221244821506

(二)注释

①XCI的全称是 NX Card Image(NX是Switch开发时的代号),是Switch游戏卡带(Game Card)的镜像文件。相关信息,可参考科技数码阿伟的文章《XCI是什么文件格式?Switch玩家必看,一文读懂游戏ROM的秘密!》。(https://www.sohu.com/a/892562722_100262162)

②实际上,半角分号的作用是添加注释,在一个语句前添加半角分号可称为“将其注释”。注释是给编辑人员而非游戏引擎看的,所以游戏会自动忽略这些注释内容。

③KiriKiri引擎具体会优先读取的xp3文件名通常写在Initialize.tjs中,虽然大部分时候是以patch系列xp3文件中序号最大的那个为最优先,但也可能要使用其它文件名,譬如同样使用KiriKiri引擎的《月下之煌》(https://vndb.org/v12724)最优先读取的xp3文件名是“gekka_patch.xp3”而非“patch.xp3”。

六、附录

(一)相关工具

1.游戏资源提取工具

hactool: 用于解包NS的XCI/NSP文件。相关链接:https://github.com/SciresM/hactool

LucaSystemTools: 用于解包Luca System引擎的.PAK文件并从CZ4文件提取png图片。相关链接:https://github.com/wetor/LucaSystemTools

GARbro: 用于查看、提取和打包KiriKiri2的.xp3文件。相关链接:https://github.com/morkt/GARbro

2.脚本编辑工具

wxMEdit : 支持多种编码(特别是UTF-16 LE)的文本编辑器。相关链接:https://wxmedit.github.io/

3.图像处理工具

Adobe Photoshop: 商业软件,用于拼接CG差分。

4.模拟器

Eden: 用于运行NS版游戏以确定CG出现位置。相关链接:https://github.com/eden-emulator/Releases/releases

5.相关网站

VNDB: 查询游戏引擎等信息。相关链接:https://vndb.org

GitHub: 寻找开源工具。相关链接:https://github.com/

(二)适用于七日间的相关KiriKiri2指令及作用

指令 语法示例 功能说明 备注
cg [cg st="ev02b" time=100] 在100毫秒内显示CG“ev02b.png” 图片需放入游戏路径
clearig [clearig] 清除当前显示的ig图层
bg [bg st="bg_黒" time=1500] 在1500毫秒内显示背景图“bg_黒.png”
msg [msg] 显示对话框
hidemsg [hidemsg] 隐藏对话框
se [se st=自動ドア] 播放音效文件 可添加loop以循环播放
jump [jump storage="01-サクラ.ks" target="*寄り道"] 跳转到指定脚本的指定标签
* *寄り道 定义一个跳转目标
; ;[ps n=千夜子/実習生 v="cha10001"] 游戏引擎会忽略这行 用于临时禁用指令或做笔记
eval [eval exp="f.変態 = 1"] 执行TJS表达式,用于设置变量
ig [ig st="frame"] 设定ig图层为图片“frame.png” ig图层与CG图层实际上是同一个图层
ps [ps n=??? v="cha001"] 对话框显示人名“???”,同时播放语音“cha001.ogg” 若存在n=a/b的结构,则实际显示为b
sg [sg st=c/サクラ/A/私服/基本/眉悲しい/目閉じ(哀)/口笑顔/頬赤面/汗/なし/] 控制立绘图具体使用的差分
if [if exp="f.変態==0"][c][jump target="*すぐ離す"][endif] 若变量“f.変態”满足“f.変態==0”,则执行跳转指令 [endif]用于中止条件判断,此处的“[c]”多余。if与具体执行的指令及endif及else(若有)不必出现在同一行
macro @macro name="好感度設定" @eval exp="f[mp.name] += +mp.flag" @endmacro 自定义指令名“好感度設定”,具体作用是将f.name视为整数变量并加上flag点 需要使用@endmacro声明结束自定义指令的定义
setsel [setsel text="Let go immediately" storage="01-サクラ.ks" target="*すぐ離す"] 新建一个选项,其文本为“Let go immediately”,选择该选项后跳转到脚本"01-サクラ.ks"的标签"*すぐ離す" 需要在所有选项定义语句之后加入[select],否则选项显示异常
@ @wait time="2000" 执行指令“wait time="2000"” 效果等同于用半角中括号括起整个指令行,在ks脚本里可混用

表1.适用于七日间的部分KiriKiri2指令及其作用说明

(三)基于Python的检索脚本完整代码(来自DeepSeek,供参考)

Python
import os
import sys
#输入待查找字符串
str_to_be_found=''''


def search_in_file(file_path):
try:
	with open(file_path, 'r', encoding='utf-16-le') as file:
	content=file.readlines()
	for line_num, line in enumerate(content):
		if str_to_be_found in line:
		print(f"在 {os.path.basename(file_path)} 中第 {line_num+1} 行发现 {str_to_be_found}")
		#return  # 找到后立即返回(如需查找多次出现,注释此return)
except UnicodeError:
	print(f"警告: 文件 {os.path.basename(file_path)} 解码失败(非UTF-16-LE编码)", file=sys.stderr)
except Exception as e:
	print(f"处理文件 {os.path.basename(file_path)} 时出错: {str(e)}", file=sys.stderr)

def main():
script_dir = os.path.dirname(os.path.abspath(__file__))
for root, _, files in os.walk(script_dir):
	for file in files: 
	if file.lower().endswith(('.ks', '.tjs')):
		file_path = os.path.join(root, file)
		search_in_file(file_path)

if __name__ == "__main__":
main()

本文版权遵循 CC BY-NC 协议 本站版权政策

(。>︿<。) 已经一滴回复都不剩了哦~