任何人不要和我说话,我不想跟任何人说话,因为我对现实世界的人类不感兴趣。谁跟我说话,我都不会理睬的。
(一)游戏简介
三维虚拟世界的人工智能对话。
完全免费、完全开源、完整详细、通俗易懂。
我把游戏、游戏源码、教程(三合一)放到了夸克网盘:
链接:https://pan.quark.cn/s/65e22d51c1bb
游戏性质:单机游戏(不联网),高清全屏游戏,最低配置的电脑也可流畅运行(已做优化)。
编程语言(游戏和人工智能):C#。编辑器:Unity。
数据库:单机数据库sqlite,不联网,不用配置,直接就可以用。
即便没有安装unity编辑器的情况下,play文件夹里DreamStart.exe可以直接运行此游戏。
(二)2024年9月17日中秋节,游戏做了更新
新增功能1:
提问第二动词,用“干啥”。
教:张三喜欢玩
问:张三喜欢干啥
答:玩
其中,第一动词是“喜欢”而第二动词是“玩”。
此前没有提问第二动词的功能,而且有两个相连的动词,却没有宾语的句子,会报错。
新增功能2:
男主角可以和女主角面对面说话了。按G键,使男女主角分离,然后面对面说话。此外,男女主角一起走路时,也能说话。
(三)游戏界面
小区:
输入:狼吃羊,女主角通过人工智能程序,分析这句话的意思,并进行自动学习。
输入:狼吃什么,女主角通过人工智能程序,回答羊。
小区的夜晚:
家:
市街道:
郊区:
学校:
走廊:
教室(图中的绿圈是传送点,用于切换到下一个场景,每个场景都有传送点):
巷子:
(四)基本操作
人物移动:
W键(长按):向前走。
S键(长按):向后走。
A键(长按):向左转。
D键(长按):向右转。
视角:
鼠标左右上下移动来控制摄像机视角(屏幕视角),人物前进方向自动朝向摄像机视角。
键盘右边的方向键:上:抬高摄像机视角,下:降低摄像机视角,左:拉近摄像机视角,右:拉远摄像机视角。
F键(单击):第三人称视角和第一人称视角的切换。第三人称视角适合用在街上,第一人称视角适合用在家里。
上楼梯:
楼梯上不动的时候,把屏幕视角向上仰,就可以上楼梯了。
进教学楼后,一楼走廊的尽头是楼梯。家里的楼梯是自动上楼梯。
输入输出:
空格键(单击):显示或关闭文字的输入输出框(默认不显示,需要点击空格键才显示)。输入完文字后,按回车键发送。
空格键适用于:室外场景。
改变:
J键(单击):女主角更换形态。
K键(单击):每点击一次,就变换一次天色。小区场景:浅夜→夜晚→白天→傍晚→夜晚→清晨→白天→阴天。市街道场景:傍晚→晚上→白天。
K键适用于:小区场景和市街道场景。
L键(单击):正常景色和雪景的切换。
L键适用于:小区场景、市街道场景、郊区场景。
男女主角分离:
G键(单击):第一次按G键,男主角和女主角分开,女主角停留在原地。第二次按G键,女主角来到男主角身边。
在小区场景中,女主角是自动寻路方式来到男主角身边。而其它室外场景中,女主角直接来到男主角身边。
H键(单击):在小区场景中,第一次按H键,女主角回到自己的房间,和男主角分开。第二次按H键,女主角回到男主角身边。
音乐:
M键(单击):背景音乐,继续按,是下一首好听的背景音乐。
退出:
Esc键(单击):退出游戏。
场景切换:
男主角家是小区场景里的一栋二层小楼。进小区后,右边第一栋楼的后面,就是男主角家,可以进去。此外,小区居民楼里,还有两套房可以进去。
绿圈是传送点,男主角走进绿圈,就可以切换地图场景,到下一个地图场景。
小区→市街道。
市街道→市中心、郊区。
郊区→学校、小镇、巷子。
学校→教学楼走廊入口1、教学楼走廊入口2、食堂、体育馆、游泳池。
教学楼走廊→教室(二楼)、图书馆(三楼)、医务室(一楼)。
(五)人工智能的话语分析,以及自动学习而形成智能回答
话语分析是有用的,假如游戏中,你是队长,带着NPC队友张三和李四,路上遇到蛇,你可以说“张三打蛇,李四保护张三。”这就需要先分析出主语、谓语、宾语,程序才能处理。
按空格键显示输入框,输入完成后,按回车键发送。
示例:
输入:猫吃鼠
显示:主语:猫,谓语动词:吃,宾语:鼠
输入:白色的猫吃黑色的鼠
显示:主语:猫,谓语动词:吃,宾语:鼠,主语的形容词:白色的,宾语的形容词:黑色的
输入:两只猫吃3只鼠
显示:主语:猫,谓语动词:吃,宾语:鼠,主语的数词:2只,宾语的数词:3只
输入:张三的猫吃李四的鼠
显示:主语:猫,谓语动词:吃,宾语:鼠,主语的名词所有格:张三,宾语的名词所有格:李四
输入:张三给李四苹果
显示:主语:张三,谓语动词:给,间接宾语:李四,直接宾语:苹果
输入:张三让李四打扫教室
显示:主语:张三,谓语动词:让,宾语:李四,宾语补足语动词:打扫,宾语补足语名词:教室
输入:2024年张三在学校吃饭
显示:主语:张三,谓语动词:吃饭,时间:2024年,地点:学校
自动学习而形成智能回答:
注意1:教知识和问知识,分开两次发送,不能写到一起。
注意2:数据库没有知识,所以要先教知识,然后才能提问(问教过的知识)。教过的知识会一直存储在数据库里,下次再提问,就不用再教了。
注意3:如果不能回答,可能输入的名词不在名词词库里,或输入的动词不在动词词库里。
提问名词:主语、宾语、间接宾语、直接宾语,用“谁”或“什么”。
提问谓语动词,用“怎么”。
提问第二动词,用“干啥”。
提问宾语补足语,用“干嘛”。
提问形容词,用“啥样的”。
提问数词,用“多少”。
提问名词所有格,用“啥的”。
实测:
教:猫吃鼠
问:猫吃什么
答:鼠
问:猫吃谁
答:鼠
问:谁吃鼠
答:猫
问:什么吃鼠
答:猫
问:猫怎么鼠
答:吃
教:猫吃鸟
问:猫吃什么
答:鼠、鸟
问:鼠吃什么
答:我不知道
教:张三喜欢玩
问:张三喜欢干啥
答:玩
教:张三给李四苹果
问:张三给李四什么
答:苹果
问:谁给李四苹果
答:张三
问:张三给谁苹果
答:李四
教:李四让王五跳舞
问:李四让王五干嘛
答:跳舞
教:黑色的狼吃羊
问:啥样的狼吃羊
答:黑色的
教:狼吃白色的羊
问:狼吃啥样的羊
答:白色的
教:两只老虎吃马
问:多少老虎吃马
答:2只
教:狮子吃3只羚羊
问:狮子吃多少羚羊
答:3只
教:阿哲的兔吃胡萝卜
问:啥的兔吃胡萝卜
答:阿哲
教:兔吃阿玉的胡萝卜
问:兔吃啥的胡萝卜
答:阿玉
教:小明给张三2个梨
问:小明给张三多少梨
答:2个
教:李四让小明打扫蓝色的房子
问:李四让小明打扫啥样的房子
答:蓝色的
教:我爱猫
问:谁爱猫
答:你
(六)一些说明
如果分析显示不了,可能词语不在词库里。先找动词分割句子,再找名词,所以如果动词不在词库里,即便名词在词库里,也没用。
连接的单机数据库是garden.db,是sqlite单机数据库,就是在用户电脑的游戏文件里的,不联网的、不用安装服务的、不用配置的,直接就可以用的数据库。
此外,如果把gram(语法分析记录表)清空了,要在第一行第一列(id_col列的第一行值)加个数字0,因为是从0开始计算的,不是从无开始计算的。
数据库的词库词语增加了,sqlitecon脚本的数组最大值也要随之增加,否则会溢出。
有两个一样的garden.db,根目录下的是编辑器用的,play文件夹里的是生成游戏后用的,把根目录的garden.db复制过去即可。
unity的一份源码,只能适配一个编辑器版本,这个源码适配的是2022.3.38,其它版本打开此源码,会故障。
unity导入此项目时,不是导入哪个具体启动文件,而是用unity Hub(unity启动器)直接打开(导入)DreamStart文件夹。
如果unity编辑器没有显示场景,就在编辑器里手动打开park文件夹里的Scenes文件夹里的park场景文件即可。
在unity编辑器界面,不要把窗口最大化后再运行游戏,那样运行不了。但可以在游戏后,再最大化窗口。
在游戏编辑器里,通过传送点切换场景,会卡顿。但是生成游戏后,就流畅和正常了。
有时人物抖动,是因为男主角的脚本zou里的摄像机(用户画面视角)程序造成的,这个以后再改进。
(七)声明
根据《著作权保护法》,仅用于个人学习、研究、交流的,不用于商业的非盈利程序,可以使用他人的素材,例如三维模型和音乐。
我的这个程序,就是完全免费的,仅用于个人学习、研究、交流,不用于商业,不用于盈利。
小区场景的三维模型来自于UnityStore的unity包:Low Poly Japanese Housing Complex。很多人在用,所以我的游戏和其他人的游戏出现这个相同场景,不是抄袭。而且那只是个三维模型,程序要自己写,每个人写的程序是不同的。
市中心、市街道、郊区场景,来自UnityStore的unity包:258316_Anime_Tokyo_(Japanese_City),也有很多游戏开发者在用这个场景三维模型。
小镇场景来自unity包:Idyllic Anime Japan。
男主角新家场景来自unity包:Low Poly Cartoon House Interiors。
巷子场景来自unity包:Japanese Street。
学校场景,来自unity包:Japanese_School_Buildings_Kit。
学校楼道场景,来自unity包:Japanese School Corridor 2.0。
教室场景,来自unity包:Japanese Classroom Set。
图书馆场景,来自unity包:Japanese School Library Set。
食堂场景,来自unity包:Japanese School Cafeteria。
体育馆场景,来自unity包:Japanese School Gym。
游泳池场景,来自unity包:Japanese School Pool Clean Dirty Set。
医务室场景,来自unity包:Japanese School Infirmary Set。
雪景程序来自于unity包:Global Snow。
天空盒来自于unity包:AllSky。
人物三维模型来自于网络上大家常见、常用的三维人物模型,我做了骨骼绑定、蒙皮、走路动画。
我的所有三维人物模型,都取得了使用授权。根据三维人物模型的版权方要求,我使用这些模型,需要写借物表:
男主角:
头部:https://www.aplaybox.com/details/model/5dOnK3GQAlLc
衣服:https://3d.3d66.com/reshtmla/model/items/qr/qrN4LEVs50LgEOTOE5g3.html
女主角:
形态1:https://www.aplaybox.com/details/model/tefItfbgcMsy
形态2:https://www.aplaybox.com/details/model/8shhNfYE5DOm
街上的路人:
https://www.aplaybox.com/details/model/Ijn46B411K3I
https://www.aplaybox.com/details/model/GDCx0SO2gQF9
https://www.aplaybox.com/details/model/oHyQfqL3GH2z
https://www.aplaybox.com/details/model/W1YXk7s2IpZt
https://www.aplaybox.com/details/model/wtOaZEqb1JZp
屋内人:
头部:https://www.aplaybox.com/details/model/mE9nUPAb06Af
衣服:https://www.aplaybox.com/details/model/F38wY36WRd3D