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