vault backup: 2023-11-08 18:16:49
This commit is contained in:
parent
7641b9750f
commit
df1082fbf3
@ -1,6 +1,8 @@
|
||||
# 动画方案
|
||||
预制开始/等待动画 -> VMC推流动画 -> 预制结束/等待动画
|
||||
## VMC推流
|
||||
[[AnimNode & VMC笔记]]
|
||||
|
||||
|
||||
## 迭代动画状态机方案
|
||||
1. 由ChatGPT模型AI使用之前录制动画素材拼凑出N组排列组合。
|
||||
@ -207,7 +209,7 @@ https://docs.unrealengine.com/5.1/en-US/remote-control-for-unreal-engine/
|
||||
- FAnimNode_ModifyVMC4UEBones
|
||||
- FAnimNode_ModifyVMC4UEMorph
|
||||
|
||||
![[AnimNode]]
|
||||
![[AnimNode & VMC笔记]]
|
||||
|
||||
# VMC APP代码参考
|
||||
- [VirtualMotionCaptureProtocol](https://github.com/sh-akira/VirtualMotionCaptureProtocol)提供了最基础的实现。
|
@ -15,9 +15,18 @@
|
||||
1. 文字 => 声音 => 表情(口型)
|
||||
2. 文字 => 动作
|
||||
|
||||
# 设计思路
|
||||
1. 服务器发送的数据都使用一个基于玩家发送对话生成的UUID作为时间戳。
|
||||
2. 数据采用Stream式发送。
|
||||
# 推流设计思路
|
||||
1. 服务器发送的数据都使用一个基于玩家发送对话生成的UUID作为时间戳(或许还需要一个**用户ID**)。
|
||||
2. 数据采用Stream式发送。动作与口型使用VMC来传输;音频使用RTMP协议来传输。其中推流模式分为2种实现:
|
||||
1. Stream式实时接受所有数据。
|
||||
2. Stream式缓存预读。
|
||||
3. 架构
|
||||
1. 根据上面说得2种模式,在服务端控制时间戳的重置(**数据截断,并且发送给客户端进行截断与时间轴统一操作**)。
|
||||
1. Puerts的Nodejs负责接收数据以及管理状态机,来管理接受的推流数据以及是否播放。(**相关核心函数写在C++中**)
|
||||
2. AIVirtualIdolServer端接受到动作数据之后,发送给AIVirtualIdol。
|
||||
3. RTMP的音频推流,AI端需要部署RTMP推流器;AIVirtualIdolServer部署RTMP Server;AIVirtualIdol接受Server数据后播放。
|
||||
|
||||
UE中的RTMP实现:
|
||||
|
||||
参考RTMP
|
||||
- RTMP协议 01 入门:https://www.jianshu.com/p/715f37b1202f
|
||||
@ -63,6 +72,14 @@ Message被拆分成一个或多个Chunk,然后在网络上发送
|
||||
来源:简书
|
||||
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
|
||||
|
||||
|
||||
# 开发计划
|
||||
1. C++实现RecivedDataManagerComponent管理音频、口型&动作数据、文字。
|
||||
2. Puerts实现数据接收逻辑。
|
||||
3. 实现声音播放逻辑。
|
||||
4. 实现口型&动作动画节点。
|
||||
5. 实现动画状态机结构初版。
|
||||
|
||||
# 声音
|
||||
## Runtime Import Sound
|
||||
使用`RuntimeAudioImporter`插件,里面的解码使用了第三方库https://github.com/mackron/dr_libs。导入Sound使用了`UImportedSoundWave::PopulateAudioDataFromDecodedInfo()`
|
||||
|
Loading…
x
Reference in New Issue
Block a user