您可以请求从 VTube Studio iPhone 应用程序接收跟踪数据。这些数据包括混合形状、头部旋转、头部位置等。通过 UDP 请求和发送数据。
VSeeFace 和 VBridger 等应用程序使用此功能。
您需要运行 VTube Studio 的 iPhone 或 iPad。确保"3rd Party PC Clients"
选项已打开。它位于第一个设置选项卡的底部。这会在 iPhone 上启动一个UDP 侦听器,并且应用程序现在已准备好在您请求时通过本地网络向您发送数据。
您可以请求获取最多 10 秒的发送跟踪数据。为此,请通过 UDP 将以下字符串有效负载发送到 iPhone(端口21412
或 iOS 应用程序中显示的任何端口):
{
"messageType" : " iOSTrackingDataRequest " ,
"time" : 2.5 ,
"sentBy" : " MyApp " ,
"ports" : [ 11125 , 11126 ]
}
time
字段告诉 iOS 应用程序发送数据需要多长时间。允许的值介于0.5 and 10
秒之间。确保每隔几秒重复发送此请求以继续接收数据。例如,您可以每秒发送一个请求, time
设置为5
这样跟踪数据就会不断出现。完成后,只需停止发送请求即可。
当iOS应用程序收到此请求时,它将向发送请求的IP发送UDP数据包。
数据将发送到您在请求中列出的端口,因此请确保您在这些端口上打开了UDP server
。您必须至少列出 1 个端口,最多可以列出 32 个端口。这样您就可以在一台 PC 上运行多个应用程序,这些应用程序都在不同的端口上接收数据。
sentBy
字段应包含您的应用程序名称,目前仅用于日志记录。它的长度必须在 1 到 64 个字符之间。
您将每帧收到以下数据(通常为 60 FPS,除非 iPhone 应用程序出现延迟):
有关确切有效负载的详细信息可以在此处找到: Payload Definition
将来可能会向此有效负载添加某些字段,因此请确保有效负载的反序列化代码在遇到未知字段时不会失败。
所有混合形状的详细解释可以在这里找到: Apple iOS Blendshape Info
此存储库包含一个示例 Unity 项目,展示如何请求跟踪数据。
确保将VTubeStudioReceiveDataExample
组件中的<YOUR-IPHONE-IP-HERE>
替换为您的 iPhone/iPad 的 IP。如果无法连接,请检查您的防火墙/防病毒设置。
文件 | 描述 |
---|---|
VTSARKitBlendshape.cs | 包含所有 52 个 iOS 混合形状的枚举。 |
VTubeStudioUDPDataRequest.cs | 您必须发送到 iOS 应用程序的请求的有效负载。 |
VTubeStudioRawTrackingData.cs | 您将从 iOS 应用程序收到包含跟踪数据等的有效负载。将来可能会向此有效负载添加某些字段,因此请确保有效负载的反序列化代码在遇到未知字段时不会失败。 |
VTubeStudioBlendshapeDataReceiver.cs | 您可以在应用程序中使用该组件来请求数据,并在 iOS 应用程序收到新数据或按下屏幕热键时收到通知。 |
Example/VTubeStudioReceiveDataExample.cs | 使用VTubeStudioBlendshapeDataReceiver 请求数据然后显示数据的示例组件。 |