eternum永恒世界吧 关注:30,478贴子:100,489
  • 12回复贴,共1

永恒世界AICHAT模组开发日志 #日更

取消只看楼主收藏回复

在itoch下载游戏时,发现caribdis推荐了两个模组, 一个是Bonus模组,另一个passive-wt模组,惊讶于如此视觉小说游戏都可以开发模组之后,结合以前在星露谷物语玩过的ValleyTalk模组,一个点子在我脑海中萌生,为何不开发一个mod将DeepSeek接入游戏中,实现用短信和我老婆们对话呢?
#本日志目标在于一方面督促我自己日更,坚持把模组开发下来,另一方面给以后的开发者一些借鉴与参考
模组最初的构想:
1.跟游戏中在左上角显示的画廊一样,时刻在左上角显示一个手机图标,点击就可以给AI驱动的女角色发自定义短信,对话
2.将故事线中的事件记录下来,女角色可以记得发生过什么/约定了什么,会在约会前给你发送短信提醒你别忘了,也可以调情。
3.和女角色的聊天风格会随着好感度变化,聊天也可以适当影响好感度(-3 ~ +3)
4.聊天就跟星露谷的《ValleyTalk》模组一样,AI会扮演女角色发送短信给你,同时给你3/4个回答用于选择


图片来自于BV12sf1Y8Edu
在可行性分析过后发现,实际上这种需求并不大,我沉浸在故事中的时候,不会刻意的去打开手机跟女角色聊天,因为故事的发展会吸引玩家很大一部分注意力,使用手机聊天往往是通关后意犹未尽才会点开。而且随着游戏动态发展,每一个事件都记录下来的工作量太大了,我自己难以实现。如果是在《永恒世界》游戏中时,或者和某个人约会时,打开手机和别人聊天,也会破坏沉浸感。
在经过深思熟虑之后,我对需求做出了一些调整:
不再始终显示手机图标,取而代之,会在游戏内的每天晚上睡觉前打开手机和女角色聊天,就跟游戏中的发送短信一样,但是可以一直聊到玩家选择睡觉为止。这种方案也方便把一整天的事件记录下来。
确定需求之后我就去研究如何开发mod了
永恒世界使用renpy游戏引擎开发的,语言相当简洁易学,同时也可以使用python作为编程语言。
首先要做的是参考其他模组,分析游戏文件(因涉及18+内容,这里不再给出参考地址)
下载Bonus模组后得到了Eternum_feature_mod_0.8.6.rpa,文件,将其解包之后得到了

看起来毫无头绪,将游戏也解包,两者解出来的很多东西都重名

翻阅renpy文档发现,renpy在加载时,会按照名称(0~1,a~z)顺序预加载所有脚本文件,mod名Eternum_feature_mod 排在archive之后,所以mod中的脚本文件会在游戏源文件之后加载,对于重名的脚本文件,因为mod是后加载的,所以会覆盖掉源文件(怪不得说不与其他mod兼容,直接修改了源文件,兼容就见鬼了)。
分析一下源文件

分析之后大概知道了每个脚本是干什么的,script1~8是版本0.1~0.8的内容 pax gallery控制着画廊,chat是短信的实现
明日目标 深入解析chat和pax脚本,初步实现短信画面
参考文档
社区:https://www.renpy.cn/
文档:https://doc.renpy.cn/zh-CN/
解包:https://www.renpy.cn/thread-16-1-1.html


IP属地:重庆1楼2025-03-18 01:53回复
    各位,有没有可以解锁快进的方法,没有玩过的内容就无法跳过,因为之前重装过一次,求助


    IP属地:重庆2楼2025-03-18 02:16
    收起回复
      日志 #2
      今天翻了翻chat.rpy和pex.rpy两个, chat.rpy是mod原本实现手机聊天功能的脚本,
      其中的屏幕chat()就是实现滚动的聊天框, chat_answers()就是实现玩家选择信息,回复给npc,用一个循环不断重复,直到一整个对话迭代完

      稍微写了点代码,实现了在第一晚上用手机聊一些自定义内容



      这个手机的背景,我是用的现成的游戏资源,想着以后把他P成微信的聊天画面。
      测试了一下之后,感觉游戏本身写的聊天接口是实现不了无限会话的,所以重构了很多代码,调整成ai的形状了
      这里用丛雨的AI生成了一段,用来测试重构后的代码的内容,但是这个提示词可能有点差,deepseek没有理解的很明白,不管了,先用着再说
      你现在需要扮演游戏《千恋万花》中的丛雨,和我互相发送短信。在生成短信回复我的同时,你需要针对这条短信,生成6条我用来回复你的短信让我选择,每条内容用|隔开:
      你是之前来朝武神社参拜的客人吧?虽然我平时都在神社里帮忙,但偶尔也会偷偷溜出去玩呢~ 你最近过得怎么样|诶嘿~当然记得啦!你可是第一个能看见我的人类呢!最近有好好照顾自己吗?|
      当然记得!你是那个...啊,抱歉,我好像记不太清了...不过能再次见到你真是太好了!|
      当然记得!你可是第一个能看见我的人类呢!最近有好好照顾自己吗?|
      诶?你是...啊!想起来了!是那个能看见我的人类!最近过得还好吗?|
      当然记得啦!你是那个...啊,抱歉,我好像记不太清了...不过能再次见到你真是太好了
      这就是1条短信+五个回复给玩家选择,还没有实际将ai接入到游戏,只是用ai已经生成的内容测试代码有没有bug
      renpy引擎是没有openai和request的库的,没有openai库就无法调用ai,但是他告诉了开发者怎么自己补充库,这个今天没时间了,明天在搞
      不管了,先测试有没有bug再说

      虽然过程有的挫折但还是成功了捏,明天试试怎么把ai正式接入进去
      各位要是有什么想法也可以在帖子下面留言啊


      IP属地:重庆17楼2025-03-19 03:57
      收起回复
        日志#3
        正式将deepseek接入了游戏内,已经可以无限对话了,接下来就是提示词工程了
        我打算将文本数据喂给deepseek,让他帮忙分析人物性格输出提示词
        今晚加更


        IP属地:重庆来自Android客户端18楼2025-03-19 16:37
        回复
          日志 #4
          数据清洗花了很大功夫,别觉得把剧本内容提取出来简单,其实很麻烦,剧本内容混在代码里,还要找对应的中文翻译,花了很久写正则匹配,终于是清洗出来了

          我的目的是把剧本内容喂给AI,看他能不能提取出来人物的性格,背景关键词,结果发现毫无用处
          deepseek会识别到里面含违禁内容

          用腾讯元宝的deepseek,

          他只能提取到前面很短一部分的故事

          如果再深入地问后续发展,他就开始编了

          伊德利尔永恒女士现身为初代测试者亡魂 → 服务器核心实为人类集体潜意识坟墓
          安妮觉醒为"人性防火墙" → 在数据洪流中守护玩家意识碎片

          有点幽默了= =

          使用chatgpt也是同样的情况

          想尝试一下kimi家族据说拥有200万字能力的模型

          但是我快排队半年了也用不了
          目前进度卡在这了,我得好好想想怎么提取人物性格和故事发展
          毕竟游戏文本有5W行,自己人脑提取容易烧


          IP属地:重庆20楼2025-03-20 02:39
          回复
            各位有什么想法吗?
            目前测试来看 deepseek和chatgpt支持128k(token)的上下文 kimi,智谱清言,通义千问可以用20w字的上下文,
            反正是达不到要求的,游戏从0.1到0.8大概每章有个12.5W字左右,我觉得一章一章提取人物性格可能是个好点子。


            IP属地:重庆22楼2025-03-20 03:24
            收起回复
              日志#5
              今天把安妮的角色性格写出来了,大概知道怎么搞了
              我把安妮的所有台词喂给了deepseek,他分析的性格还挺到位的,但是因为只有安妮的台词,安妮的人际关系提取的不是很好。
              明天试着多搞几个角色的


              IP属地:重庆来自Android客户端24楼2025-03-21 05:33
              回复
                腾讯元宝帮大忙了,官网的deepseek老是挂,元宝就很稳


                IP属地:重庆来自Android客户端25楼2025-03-21 05:35
                回复
                  日志#5
                  还在继续写,只不过帖子没人看就没怎么写日志了。目前在用ai写每天发生的场景和事件,不知道是不是文本太长了,ai经常犯错和偷懒,有些事件写不全,或者我不满意,要自己改好多东西,花了不少时间。目前完成度50%
                  每个人的角色性格都做出来了,但是性格是用这个人单人的台词喂出来的,效果只能说普通,也没别的什么办法,如果用全体的台词文本太长了,输入不进ai。 打算先凑活着用,以后再将全体的台词分段喂一下,接着微调。


                  IP属地:重庆来自Android客户端27楼2025-03-23 05:40
                  收起回复
                    附一张和安妮在第一天的聊天图


                    IP属地:重庆来自Android客户端28楼2025-03-23 05:41
                    收起回复
                      这个提示词还有点问题,有时候安妮回你会带点心理描写或者动作描写,写在短信里就很出戏,还得加点限制词


                      IP属地:重庆来自Android客户端29楼2025-03-23 05:44
                      回复
                        楼主要断更一阵子了,因为到成都实习,每天搞数据分析很累,而且不是学校那样的上床下桌,隐私性不好,不是很方便搞黄油,所以断更一阵子了但不会太监的


                        IP属地:重庆来自Android客户端31楼2025-03-26 02:07
                        收起回复
                          楼主周六项目答辩完了就可以继续开更了,也是最近大模型新出现了MCP知识库技术,很火,这个技术很适配我的想法。楼主要研究一下MCP技术再继续写mod


                          IP属地:重庆来自Android客户端34楼2025-04-18 12:29
                          回复