3.7 KiB
3.7 KiB
AI虚拟直播间需求&任务整理
实现目标&内容&工期
拿给EOE老板看的Demo版本
- 控制AI行为以及数据交互的导播台应用(Electron + Server)
- 实现目标
- =>AI服务器
- 能够发送文字、语音数据以及其他指令到AI服务器。
- 能够接收文字、音频、CSV、FBX数据。
- =>渲染机器
- 能够转发音频、CSV、FBX数据到渲染机中。
- =>AI服务器
- 实现内容:基础Electron用户界面以及对应的Server(第一版放在一起后续分离),工期 2周左右。
- 转发数据逻辑
- 用户界面
- 未来TODO:
- 自定VMC协议用来传输音频等其他数据
- 实现目标
- 渲染机(UE插件)
- 导播台应用=>
- 制作角色蓝图、动画蓝图以及状态机,可以播放音频、CSV、FBX。
- 接收导播台(AI服务器的控制指令)
- 实现内容:编写插件实现对应的数据接收节点。
- 导播台应用=>
状态机相关
AI虚拟偶像陪伴
阶段技术需求 & 实现目标
第零阶段(快速简历可供AI迭代的基础程序)
- Express Http服务器。
- 提供静态文件下载服务。
- 建立一个获取所有Uasset文件的url。
- UE客户端
- 动画蓝图中建立多个子AnimGraph,使用动态方式挂载。
第一阶段(建立高可用、迭代性的基础架构)
需求功能(优先&难易度排序):
- 资产 & 逻辑脚本热更新逻辑 => Puerts热更新逻辑。
- 客户端发送文字信息给服务端。=> 构建一个Http聊天服务器。
- 服务端控制虚拟角色行为 =>
RPC事件同步Http服务器WebSocket连接Puerts间接控制方案。后续可能需要改成帧同步方案。 - 客户端在动画蓝图中实时混合新下载的动画资产。
- 客户端在动画蓝图中实时混合实时推流的动画数据,以及播放AI生成语音。
技术细节
- 客户端:
- 使用Puerts控制逻辑。
- 使用Puerts热更新逻辑 & 资产。
- 使用下载Pak,重启后批量读取方案。
- 使用ModuleGameFeature框架进行网络缓存的方案。(堡垒之夜目前使用)
- 使用Puerts宿主环境(Nodejs)构建Http服务,以此与服务端通信。(优点是不会卡住游戏线程)
- IOS得进行测试,是否可以使用这个方案。
-
- 实现 动画数据推流功能。
- 服务端:客户端同步采用事件同步 + 缓存动画数据的方式实现
- Demo期间使用Nodejs进行打底。采用Nodejs + Express搭建,后台管理页面采用VUE3。
- 序列化使用 Protobuf
- RPC协议:gRPC ?
- Http聊天服务器。
- 账号权限判断。
- Pak文件 / ModuleGameFeature缓存方案所用的文件服务器。
- 文件上传功能(语音数据)。
-
- 实现 动画数据推流功能。
使用其他框架?
现阶段问题:
我需要知道:
- 玩家发送文字信息后,虚拟角色是否会发出语音?
- AI如何对虚拟角色行为树进行迭代?仅仅是迭代行为树中的某一个行为么?
- 如何针对某一个演员的指定行为进行迭代?录制一定的演员表演动作动画数据进行迭代?
第二阶段(使用借助AI配合UE动画系统迭代动画效果)
需求功能(优先&难易度排序):
- 构建一个可以不断热更、优化(AI系统迭代动画资产)的动画框架。
- MotionMarching
- Motion匹配。
- 游戏性提升。