Skip to content

GTA San Andreas with AI(ASI前端),将大语言模型(GPT)、TTS、SOVITS整合进入圣安地列斯,使用真正的AI控制NPC的行为、语音。

License

Notifications You must be signed in to change notification settings

Katock-Cricket/SAAI.Plugin

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

52 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

GTA San Andreas with AI

GTA San Andreas with AI(SAAI),将大语言模型(GPT)、TTS、SOVITS整合进入圣安地列斯,使用真正的AI控制NPC的行为、语音。

软件架构

开发环境:Windows11 工具链:Cmake + MSVC

前端(Plugin):[SAAI.Plugin] ASI插件

后端(Server):[SAAI.Server] 本地服务器

[细节实现说明] | [开发者文档]

持续迭代中…

v1.5开发计划:

  • 行为管理模块:控制NPC的更多行为和复杂任务
  • 语境生成器Plus:生成更加复杂的语境信息
  • 行为生成器:给NPC的行为接AI,需要至少一个Buffer来消除延迟,可能与内容生成器合并
  • AI行为模型:用操作词的方式约束AI的回答
  • 智能刷新:与行为管理相似,管理NPC的自然刷出
  • 语音输入:接受玩家指令,不知道1.5能不能做这个,可能放到再后面

目前的想法

行为管理

为CPed的AI类书写一切可用的NPC行为API:

  1. 加入主角队伍(已完成)
  2. 说话(已完成)
  3. 离开主角队伍
  4. 逃跑
  5. 追杀某人
  6. 设置血量、死亡等
  7. 去往某地,开车或步行
  8. 开车撞什么,开多快
  9. 上主角的载具
  10. 驾驶载具
  11. 设置武器
  12. 做基本动作,跳、跑、走、蹲等动作
  13. 做复杂动作,支持ped通用动作、cutscene动作、导入自定义ifp,要参考SA Mission Maker Remake?
  14. 各类游逛逻辑
  15. 游泳?
语境生成器Plus

将当前能收集的一切用户输入和游戏内状态集成到统一的Context对象:

  1. 作弊码(已完成)
  2. 语音输入
  3. 主角行为,打了某人,开着什么车,开车到了某处,步行到了某处,撞了某人某物,上了什么车,拿枪指了谁,有没有掉血,有没有吃到吐等…
  4. 要行动的NPC(需要根据其他状态来决定这个值)
  5. 环境行为,天气、附近的事件、发生了枪击爆炸撞车堵车等
  6. 剧情推进度
行为生成器、AI行为模型

根据当前收集到的Context,询问AI目前该做什么,将AI的回答约束为定义好的行为模型指令,一一对应到前述的AI行为API。输出格式化:“谁要干什么”

这一步AI是否能做到合理的决策有待实验,是否设计状态机/状态树有待考虑。

智能刷新

是否单独做成一个模块有待考虑,目的是取消掉过于无脑的作弊码刷人逻辑,可以让主角打个电话叫人开车过来,也可以随机地出现在某个地点自动跟主角打招呼之类,理论上可以根据语境触发,然后接上行为管理,但是肯定需要另外的Spawner来先刷出这个NPC,从而执行行为。

语音输入

再开一个语音转文本的本地服务器,收集用户语音输入。将收集到的文本传给插件这边对应的Client模块,Client需要一个Buffer保存最近的文本指令,每次给语境生成器一个文本指令。


联系开发者:B站_Cyber蝈蝈总

About

GTA San Andreas with AI(ASI前端),将大语言模型(GPT)、TTS、SOVITS整合进入圣安地列斯,使用真正的AI控制NPC的行为、语音。

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages