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

 Cannot retrieve latest commit at this time.

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