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
に設定して 1 秒あたり 1 つのリクエストを送信すると、追跡データが受信され続けるようになります。完了したら、リクエストの送信を停止します。
iOS アプリがこのリクエストを受信すると、リクエストを送信した IP に UDP データ パケットを送信します。
データはリクエストにリストしたポートに送信されるため、これらのポートでUDP server
開いていることを確認してください。少なくとも 1 つのポートをリストする必要があり、最大 32 個のポートをリストすることができます。これは、1 台の PC 上で複数のアプリを実行し、すべてが異なるポートでデータを受信できるようにするためです。
sentBy
フィールドにはアプリ名を含める必要があり、現在はログ記録のみに使用されます。長さは 1 ~ 64 文字にする必要があります。
次のデータをフレームごとに受信します (iPhone アプリに遅延がない限り、通常は 60 FPS)。
正確なペイロードの詳細については、 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 を使用してデータを要求し、それを表示するサンプル コンポーネント。 |