Koishi Navigation Desktop Youkai

Koishi Navigation Desktop Youkai

62 ratings
自定义回复
By EfHm9oLUwMJJQY
自定义恋恋的回复
   
Award
Favorite
Favorited
Unfavorite
0x00 前言
本指南正在修改中,请暂时浏览B站专栏的版本

在本指南,您将学会:
  • 让恋恋说你想让她说的话
  • 让恋恋播放语音,视频
  • 让恋恋做出动作
  • 让恋恋做出表情
  • 调整触发词优先级
  • 更换静/动态立绘

本指南致力于让每个人都能看懂,并轻松地制作自己的自定义对话。
本指南内内容在Windows 10专业版 21H2(内部版本19044.1865)中测试成功,如有看不懂的或与最新版本不符的,请及时反馈,我会尽力改进、修正此指南的。

邮箱:KomeijiIma@outlook.com

已在B站发布视频演示:
https://www.bilibili.com/video/BV1CB4y167zt
0x01 添加基本回复
一、创建您的台词文档
1.打开台词文档所在目录:
台词文档存放在 "游戏目录\Mods\Dialogues" 中
打开此目录,复制目录下的MainDialogue.xlsx文件,粘贴到此目录,然后给它起个你喜欢的名字
文件名不得包含空格
这时"游戏目录\Mods\Dialogues"中应当存有你刚刚创建的副本。
做完以上步骤后打开你创建的新副本
1.为什么不直接编辑MainDialogue文件? 答:MainDialogue文件内已经拥有一些例子了,可以直接照着葫芦画瓢来编辑 并且当应用程序更新时,MainDialogue也会被覆盖。这意味着如果应用程序更新时,你对这个文件所有的更改都将会丢失虽然以后大概率不更新( 2.既然更新要覆盖MainDialogue文件,那为什么不直接编辑You_Can_Add_Dialogue_Here文件? 答:此文件虽然可以使用,但有些内容未更新,使用它也是可以的,但不鼓励使用。 3.我找不到我的游戏所在目录,怎么办? 答:有很多方法,但本指南仅提供两种,按照自己需求选择合适的方法 方法一(此方法适用于几乎所有软件): 1. 打开游戏 2. 按win+x键,点击任务管理器 3. 在任务管理器中找到名为Koishi Navigation的进程。如果没有,请到“详细信息”页找到名为 KoishiNavigationDesktopYoukai.exe的进程。如果还是找不到,请检查你的游戏是否启动。 4. 选中进程后右键,点击打开文件所在位置。这时会自动转到文件资源管理器 方法二(仅适用于Steam内游戏): 1. 进入“库” 2. 在左边的工具栏右击你要查看的游戏 3. 选择管理-浏览本地文件。这时会自动转到文件资源管理器
也可以通过双击恋恋头上的帽子,然后点击"对话调教"
这时会转到文件资源管理器,这里也是台词文档所在目录

2.打开此文档的副本

文档说明:
此文档为Excel表格文件,需要用Microsoft Office、WPS等软件打开。
此文件包含五个表格。分别是Readme、Noun、Verb、Other、Text五个部分.
ReadMe是使用说明,Text是对话部分,其余为台词Key保存部分.
见下图橙色高亮:


二、查看ReadMe
在使用各种软件及功能前,查看使用说明是一好习惯。

Originally posted by ReadMe表格:
在xlsx文档中保留本文档格式【ReadMe, Noun, Verb, Other, Text】五个工作表
Noun, Verb, Other中分别写入名词分词(含同义词)、动词分词(含同义词)、其他分词(含同义词)
Text中按格式写入触发关键字, 条件, 表情, 动作, 语音文件名, 语音延时, 中文内容, 英文内容, 日文内容

任何文件夹中符合格式的台词文档都会被读取并应用在游戏中,每一个文件都会被读入

注意:必须同时拥有分词和触发关键词,否则不会触发成功
分词的汉字字数为1-5个,但是不建议设定1个字的分词,否则会影响效率以及污染关键词库
新增了触发关键词的权重(优先级)
在同优先级的情况下,触发的优先级为:1、动词+名词;2、单名词;3、单动词;
此外 4、其他 的触发会无视表格中的优先级,只在句中无动词和名词时触发
其他的用途是恋恋自言自语时会随机抽取Other表中的关键词进行触发

一般如果是动词+名词的关键词组合,优先级设置为0即可,一般不会误触
新增了语句后必须按一下上传按钮才能应用在游戏内
(PS. 要再次打开帽子先生只需要双击一下恋恋头上的帽子)
(PS2.恋恋如果跑出屏幕或者消失不见了只需要双击任务栏的恋恋头小图标即可归位)

从以上可以总结出编辑台词文档来实现自定义回复的一般步骤:

1.写入台词Key(即触发词)
2.写入台词Key对应的对话
3.保存更改并写入文件
4.上传更改。

顾名思义,关键词的作用就是用于触发恋恋的回复。如果你说的话包含关键词,那么恋恋就会做出关键词所对应的回复。

以下是一些例子:
在关键词是苹果,对应的回复是香蕉的情况下:
你:苹果,恋恋:香蕉
你:苹果好吃吗,恋恋:香蕉
你:苹,恋恋:*不做回复*
你:果,恋恋:*不做回复*
你:天空,恋恋:*不做回复*

让我们从第一步开始做起。
Originally posted by ReadMe表格:
Noun, Verb, Other中分别写入名词分词(含同义词)、动词分词(含同义词)、其他分词(含同义词)
我们参考以上来确定台词Key的写入位置。

我要写入的关键词不属于动词,也不属于名词,我可以写入到Other里吗?
如果你对本程序有一定了解,你会发现恋恋会在空闲时定时回复。回复频率等可以在设置中进行配置。它的原理就是定时触发Other表内的关键词。这也意味着,如果你将关键词录入到Other表内,那么它将会依照你的配置进行定时触发。
同一个词可以同时写入多个表格。
如果你对此感到厌倦,那么可以选择直接写入到Noun部分(为什么这么做下面会讲到)
例子:
苹果属于名词,应当录入到Noun表格。
睡觉属于动词,应当录入到Verb表格。


打开Noun部分后,会出现以下界面



然后填写信息。填写后如以下界面

中文和日文(同义词用英文逗号分割)
英文(同义词用英文逗号分割)
苹果,林檎
apple

至此,台词Key录入完成。


三、设置对话
台词Key录入完成后,进入Text部分。您应当看到以下界面

台词Key(注意!只能写全部同义词中的第一个)
触发优先级
表情
动作
语音编号
语音时长
中文
英文
日文

我们想要在说苹果时,让恋恋回复香蕉。这时我们要在台词Key部分写入苹果。林檎等同义词是不用写的,把第一个词苹果写入就可以了
触发优先级、表情、动作设置为0、语音编号和语音时长暂时留空,这是因为设置表情等后面会进行详细讲解,目前不管。这时还有中文,英文,日文没有填写。这三个就是恋恋在不同语言下的回复。
注:2.1以下版本中第一行第二列位置的内容并非触发优先级,而是条件、设置为0即可。
将信息依次填好后如下:

台词Key(注意!只能写全部同义词中的第一个)
触发优先级
表情
动作
语音编号
语音时长
中文
英文
日文
苹果
0
0
0
香蕉
Banana
バナナ

至此自定义对话添加完毕.保存文档后双击恋恋的帽子,点击上传按钮以同步。完成后在本地频道输入"苹果"
注:2.1以下版本需要重启游戏以完成同步
如果恋恋回复"香蕉",那么恭喜你已经学会了如何添加基本自定义对话.
0x02 添加表情, 动作、语音和视频
一、添加表情和动作
这里是我们之前的表格(text部分)
台词Key(注意!只能写全部同义词中的第一个)
触发优先级
表情
动作
语音编号
语音时长
中文
英文
日文
苹果
0
0
0
香蕉
Banana
バナナ

如果我们想更换表情,只需将表情对应的编号输入即可
如我想在恋恋说香蕉时表情为大喜(编号2)且身体左右晃动(编号3),只需在对应位置输入即可
如:

台词Key(注意!只能写全部同义词中的第一个)
触发优先级
表情
动作
语音编号
语音时长
中文
英文
日文
苹果
0
2
3
香蕉
Banana
バナナ

注:表情、动作对照表位于附录内

此时上传后在本地聊天输入苹果,恋恋应当在回复香蕉时大喜且身体左右晃动


二、添加语音
1.添加游戏内语音
游戏目录\Mods\Audio\Vocal\-1
2.1以下版本中音频文件路径为[游戏目录\Resources\Audio\Vocal\-1]
在上述目录内存放着游戏自带语音。语音编号为音频文件名。(编号不包括扩展名)
如语音文件为-1000001.mp3,那么语音编号就是-1000001。在表格对应位置写入即可。
如:

台词Key(注意!只能写全部同义词中的第一个)
触发优先级
表情
动作
语音编号
语音时长
中文
英文
日文
苹果
0
2
3
-1000001
香蕉
Banana
バナナ

注:语音时长暂时不可用,留空即可。如需限制播放时长,请修改音频本身长度。

2.导入自定义语音,视频
将要导入的音频文件有以下要求:
  • 音频格式为mp3,视频格式为mp4
  • 音频名为-xxxxxxx.mp3,x代表0-9的数字,其它字符不可用。
  • 音频文件必须与自带音频在同一目录下
mp3文件直接按照格式命名即可,mp4文件命名后强改后缀名为mp3即可。
我无法看到扩展名,我该怎么办?
打开文件资源管理器,点击上方的查看,将文件扩展名勾选至启用即可

按照上述要求导入音频后再在表格对应位置输入音频编号即可。
重启软件后输入苹果,应当会有对应音,视频出现。
0x04 表情,动作编号对照表
表情:
1-小喜;
2-大喜;
3-小疑;
4-大疑;
5-敷衍;
6-坏笑;
7-惊讶;
8-悲伤;
9-汗颜;
10-凝视;
11-生气;
12-无语;
13-妖媚;
14-害羞;
15-黑化


动作:
1-晃动手臂
2-晃动手臂
3-晃动手臂,身体左右晃动
4-晃动手臂,身体左右晃动
5-晃动手臂,身体快速左右晃动
6-晃动手臂,身体快速向一侧运动
7-晃动手臂,具有砍手音效
8-晃动手臂,身体快速向一侧运动
9-晃动手臂,向一侧运动
10-晃动手臂,向一侧运动
其余均为摇手
0x05 更换立绘
更换静态立绘:
0x06 注意事项
关于优先级以及录入位置

形容词请全都视为名词处理, 放在Noun部分, 副词和行为全都视为动词, 放在Verb部分.
Other内的词语会在"恋恋在桌面不会捣乱/Koishi Won't Trick"选项关闭时定时随机触发.如想要Noun或Verb中的词语定时触发,请将其复制到Other,而不是移动到Other,否则这会引发优先级置底无法调整的问题
分词的汉字字数为1-5个,但是不建议设定1个字的分词,否则会影响效率以及污染关键词库.
1,动词+名词;2, 单名词;3, 单动词 4, 其它
1, 2, 3同优先级情况下触发优先级依次递减.
4 内容无视优先级置底
优先级设置中优先级取值范围是-10至10

0x07 立绘与十六进制地址对照表
此对照表适用于KoishiNavigationDesktopYoukai 2.1.6.DY


编号 地址范围(A1-A2) 大小
N A1 A2 A3
---------------------------------------------------------------------------
0.gif 00330e2c 006d6193 003a5367
1.gif 006d6199 0089da90 001c7902
2.gif 016d38a5 0189c8f9 001c9054
3.gif 0189c8ff 01a5e6a8 001c1da8
4.gif 01a5e6ad 01c0b37e 001accd1
5.gif 01c0b384 01dd594c 001ca5c8
6.gif 01dd5952 01f82a22 001ad0d0
7.gif 01f82a28 021520d7 001cf6af
8.gif 021520dd 02400323 002ae246
9.gif 02400329 025ca607 001ca2de
10.gif 0089daa0 00b481b0 002aa710
11.gif 00b481b7 00d103be 001c8207
12.gif 00d103c4 00eda576 001ca1b2
13.gif 00eda57c 01180dc4 002a6848
14.gif 01180dca 01431640 002b0876
15.gif 01431646 016d389f 002a2263

图片版:
0x08 扩展:如何查找立绘的16进制地址
注意:已有更好的方法代替此章节内介绍的方法
请移步至"更换立绘"查看(此章节编辑中...)

以下操作需要你对计算机有一定的了解

首先获取dnSpy(64位)
下载地址:https://github.com/dnSpy/dnSpy/releases

在dnSpy中打开exe文件,在程序及资源管理器里展开资源部分,在里面找到立绘文件后左键点击。此时,右侧编辑器就会出现文件相关信息。
//0x********就是文件的起始地址。
0x代表后面的数据为16进制。在一些情况下,也在数字的后面加上H来表示。如21H
如果没有则按<Ctrl+鼠标滚轮>进行缩放
其中0x后面的8个16进制数字便是文件的起始地址。但是,这并不代表我们寻找到了gif的起始地址A1。
我们要寻找到gif文件的确切地址,只需要找到gif的文件头和文件结束块就可以了。
所以,这里先简单地让大家了解一下gif文件的格式。
gif文件数据块可分为控制块,图形描绘块和专用块。
这里重点讲文件头和结束块
gif文件头在控制块中,位于文件最前端,分为标记域和版本号域。标记域用来说明这个地址后面的数据存放的是gif文件,有着固定的内容。
标记域的数据是这样的:
47 49 46
对应到字符也就是GIF
版本号域的数据是这样的:
38 39 61
对应到字符也就是89a。这个内容并不是固定的。也有可能是87a或者更新的版本号。

知道开头了,那到哪里结束呢?敏锐的你或许明白了吧。没错,结束块承担着这个责任。
结束块有着固定的内容,3b,换成字符也就是;

这时,如果我们用16进制编辑器查看到刚刚找到的地址006d6190存放的数据会发现那里存储的内容是这样的:

006d6190 00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f
006d6190 05 04 00 3B 21 03 79 1c 00 47 49 46 38 39 61 d0

刚刚的地址006d6194存放的数据是21,后面的是03和79,和38 39 61并不能对上。这时我们往后看看,找到006d6199。那里存放的数据是47,后面是49和46。所以,006d619c才是gif文件的开始地址A1。至于为什么这样,这里就不细说了。

文件起始地址A1确定了,但是dnSpy并没有结束块的地址。那怎么找呢?数据在文件中是连续存储的。这意味着要找到结束块,只需要找到下个文件的开头就可以了。这时我们点击下一个文件10.gif,它的起始地址是0089da94。我们到十六进制编辑器查看那个地址存放的数据:

006d6190 00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f
006d6190 bf 33 3c c7 b3 3c 87 66 40 00 00 3b 21 11 a7 2a

0089da9c对应的数据是21,与结束块3b不同。这时应当向前寻找,发现3b在0089da9c存储着。所以,0089da9c就是结束地址A2。
文件大小A3就不用多说了,A2-A1即可。

至此,立绘的16进制地址就找出来了。

用找到的地址配合十六进制编辑器更换动态立绘:
在更换前,你需要将你的动态立绘转为gif文件
我使用的软件:
Hex Editor Neo(免费版即可)
链接:https://www.hhdsoftware.com/free-hex-editor

一、为游戏目录下的KoishiNavigationDesktopYoukai.exe(以下简称原exe文件)创建一个副本,名字随意
如: raw.exe
二、用Hex Editor Neo打开原exe文件和gif文件

!警告! 请在执行下面操作前确认已经备份好了原exe文件
严格按照指南中的步骤进行操作,除非你很清楚你现在在做什么
如果操作不当导致程序无法运行,请使用副本文件替换原exe文件
如果还是无法运行,请尝试重新安装游戏


在以下部分中,N为要替换的立绘的编号。
A1, A2对应立绘的十六进制地址,分别表示起始地址,结束地址
A3为文件大小,也是16进制。(A1,A2,A3是我为了方便起的名)
对照表在“立绘与16进制地址对照表”内

三、判断此gif文件是否可以用作替换N立绘
方法一:
打开gif文件,查看文件的A2部分
如果 A2有数据且不为分号(16进制为3b):
此gif文件不能用作替换*这个*立绘
方法二:
1.右键属性,查看大小->字节
2.将A3从16进制换为10进制
如果 文件字节-1 <= A3,则此文件可以替换N立绘
否则此文件不可替换N立绘
四、处理gif
可选处理:
将gif文件长宽比调整到1:1
此步骤不做不会导致程序崩溃或无法运行,但有可能导致立绘拉伸变形
必须处理:
跳转到gif的A2位置
如果 A2为分号(十六进制为3b)且后面没有数据:
不做处理
如果 A2处没有数据
在16进制编辑部分将A2的值编辑为00
五、替换立绘
首先将gif的十六进制数据Ctrl+A全选,Ctrl+C复制
然后到exe的A1地址,Ctrl+V粘贴,并检查A2+1地址内的内容是否被覆盖。如果没有,则操作成功,将修改写入exe即可。
4 Comments
贺一鸣 2 Nov, 2023 @ 2:10pm 
看不懂,根本看不懂
klim870.ru 11 Jan, 2023 @ 6:46am 
пон
y2949 2 Dec, 2022 @ 7:03pm 
6
幽夢観察者  [developer] 10 Aug, 2022 @ 1:04am 
好强