Sie können den Empfang von Tracking-Daten von der VTube Studio iPhone-App anfordern. Zu diesen Daten gehören Blendshapes, Kopfrotation, Kopfposition und mehr. Die Datenanforderung und der Versand erfolgt über UDP.
Apps wie VSeeFace und VBridger nutzen dies.
Sie benötigen ein iPhone oder iPad, auf dem VTube Studio läuft. Stellen Sie sicher, dass die Option "3rd Party PC Clients"
aktiviert ist. Es befindet sich unten auf der ersten Registerkarte „Einstellungen“. Dadurch wird ein UDP-Listener auf dem iPhone gestartet und die App ist nun bereit, Ihnen auf Anfrage Daten über das lokale Netzwerk zu senden.
Sie können die Zusendung von Tracking-Daten für bis zu 10 Sekunden anfordern. Senden Sie dazu die folgende Zeichenfolgennutzlast per UDP an das iPhone (Port 21412
oder was auch immer in der iOS-App angezeigt wird):
{
"messageType" : " iOSTrackingDataRequest " ,
"time" : 2.5 ,
"sentBy" : " MyApp " ,
"ports" : [ 11125 , 11126 ]
}
Das time
teilt der iOS-App mit, wie lange Daten gesendet werden sollen. Zulässige Werte liegen zwischen 0.5 and 10
Sekunden. Stellen Sie sicher, dass Sie diese Anfrage alle paar Sekunden wiederholt senden, um weiterhin Daten zu empfangen. Sie könnten beispielsweise eine Anfrage pro Sekunde mit time
von 5
senden, damit die Tracking-Daten weiterhin eingehen. Wenn Sie fertig sind, beenden Sie einfach das Senden der Anfrage.
Wenn die iOS-App diese Anfrage erhält, sendet sie UDP-Datenpakete an die IP, die die Anfrage gesendet hat.
Die Daten werden an die Ports gesendet, die Sie in der Anfrage angegeben haben. Stellen Sie daher sicher, dass auf diesen Ports ein UDP server
geöffnet ist. Sie müssen mindestens einen Port auflisten und können bis zu 32 auflisten. Auf diese Weise können Sie mehrere Apps auf einem PC ausführen, die alle die Daten auf unterschiedlichen Ports empfangen.
Das Feld sentBy
sollte Ihren App-Namen enthalten und wird derzeit nur zur Protokollierung verwendet. Es muss zwischen 1 und 64 Zeichen lang sein.
Sie erhalten bei jedem Bild die folgenden Daten (normalerweise mit 60 FPS, es sei denn, es kommt zu Verzögerungen in der iPhone-App):
Details zur genauen Nutzlast finden Sie hier: Payload Definition
Möglicherweise werden dieser Nutzlast in Zukunft einige Felder hinzugefügt . Stellen Sie daher sicher, dass Ihr Deserialisierungscode für die Nutzlast nicht fehlschlägt, wenn unbekannte Felder gefunden werden.
Eine ausführliche Erklärung aller Blendshapes finden Sie hier: Apple iOS Blendshape Info
Dieses Repository enthält ein Unity-Beispielprojekt, das zeigt, wie Tracking-Daten angefordert werden.
Stellen Sie sicher, dass Sie <YOUR-IPHONE-IP-HERE>
in der VTubeStudioReceiveDataExample
Komponente durch die IP Ihres iPhone/iPad ersetzen. Wenn keine Verbindung hergestellt werden kann, überprüfen Sie Ihre Firewall-/Antiviren-Einstellungen.
Datei | Beschreibung |
---|---|
VTSARKitBlendshape.cs | Aufzählung aller 52 iOS-Blendshapes. |
VTubeStudioUDPDataRequest.cs | Nutzlast für die Anfrage, die Sie an die iOS-App senden müssen. |
VTubeStudioRawTrackingData.cs | Die Nutzlast, die Sie von der iOS-App erhalten, enthält die Tracking-Daten und mehr. Möglicherweise werden in Zukunft einige Felder zu dieser Nutzlast hinzugefügt . Stellen Sie daher sicher, dass Ihr Deserialisierungscode für die Nutzlast nicht fehlschlägt, wenn unbekannte Felder gefunden werden. |
VTubeStudioBlendshapeDataReceiver.cs | Komponente, die Sie in Ihrer App verwenden können, um Daten anzufordern und benachrichtigt zu werden, wenn neue Daten von der iOS-App eingehen oder ein Hotkey auf dem Bildschirm gedrückt wird. |
Example/VTubeStudioReceiveDataExample.cs | Beispielkomponente, die VTubeStudioBlendshapeDataReceiver verwendet, um Daten anzufordern und diese dann anzuzeigen. |