BlueRoseNote/02-Note/DAWA/AI/AIVirtualIdel动画方案.md

59 lines
2.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 动画方案
预制开始/等待动画 -> VMC推流动画 -> 预制结束/等待动画
## VMC推流
## 迭代动画状态机方案
1. 由ChatGPT模型AI使用之前录制动画素材拼凑出N组排列组合。
2. 动画资产以及排列数据进行定期热更新。(自动 | 人工)
3. 实时直播时由ChatGPT发送指定排列组合的名称或者ID给客户端之后客户端播放对应的排列组合动画。
# 推流方案
推流视频:
- https://www.bilibili.com/video/BV1ub4y1Y74K/?spm_id_from=333.337.search-card.all.click&vd_source=d47c0bb42f9c72fd7d74562185cee290
- https://www.youtube.com/watch?v=ufU9me5pDYE&t=2s
## VMC
## OSC
一种远程控制协议
- https://docs.unrealengine.com/5.1/en-US/osc-plugin-overview-for-unreal-engine/
- http://openstagecontrol.ammd.net/docs/getting-started/introduction/
- https://www.youtube.com/watch?v=42eDMmvokMM
- https://www.youtube.com/watch?v=9CkKPCBys44
### 协议分析
一种基于UDP的协议传输的数据主要分为Bundle 与 Message。
- https://protocol.vmc.info/specification
- performer-spec:https://protocol.vmc.info/performer-spec
- marionette-spec:https://protocol.vmc.info/marionette-spec
VMC协议基本上实现了开放声音控制OSC单向UDP通信来进行通信。
具体沟通规定如下:
- 通信时使用适当类型的 OSC。
- 字符串采用 UTF-8 编码,可以用日语发送。
- 至于端口号Marionette 将监听端口39539而 Performer 将监听端口39540但从 UX 角度来看,我们建议您更改发送地址
和接收端口。
- 数据包在适当的范围内1500 字节以内)进行捆绑,并且应由接收方进行适当的处​​理。
- 传输周期以发送方的任意间隔执行。并非所有消息都会在每个周期发送。
另外,发送方应该能够调整发送周期的间隔,或者以足够低的频率发送。
- 接收方应丢弃不必要的消息。您不必处理所有消息。
- 发送或接收哪些消息取决于两者的实现。
- 未知地址,应忽略太多参数。
- 如果您发现参数太少或类型与扩展规范中定义的参数不同,请将它们视为错误或忽略它们。
![](https://protocol.vmc.info/flow.gif)
![](https://protocol.vmc.info/layer.png)
### 数据类型
数据以结构体形式进行序列化/反系列化。可携带的数据类型为:
- int32、int64、uint64
- float32
- String
- blob
## UE Remote Control
https://docs.unrealengine.com/5.1/en-US/remote-control-for-unreal-engine/
基于WebSocket