Вы можете запросить получение данных отслеживания из приложения VTube Studio для iPhone. Эти данные включают в себя blendshaps, вращение головы, положение головы и многое другое. Данные запрашиваются и отправляются через UDP.
Это используют такие приложения, как VSeeFace и VBridger.
Вам понадобится iPhone или iPad с установленной программой VTube Studio. Убедитесь, что опция "3rd Party PC Clients"
включена. Эта опция находится внизу первой вкладки настроек. Это запустит прослушиватель UDP на iPhone, и теперь приложение готово отправлять вам данные по локальной сети, когда вы их запрашиваете.
Вы можете запросить получение отправленных данных отслеживания на срок до 10 секунд. Для этого отправьте следующую полезную строку на iPhone (порт 21412
или любой другой, который отображается в приложении iOS) через UDP:
{
"messageType" : " iOSTrackingDataRequest " ,
"time" : 2.5 ,
"sentBy" : " MyApp " ,
"ports" : [ 11125 , 11126 ]
}
Поле time
сообщает приложению iOS, как долго отправлять данные. Допустимые значения: от 0.5 and 10
секунд. Обязательно отправляйте этот запрос каждые несколько секунд, чтобы продолжать получать данные. Например, вы можете отправлять один запрос в секунду со time
, равным 5
чтобы данные отслеживания продолжали поступать. Когда вы закончите, просто прекратите отправку запроса.
Когда приложение iOS получит этот запрос, оно отправит пакеты данных UDP на IP-адрес, отправивший запрос.
Данные будут отправлены на порты, которые вы указали в запросе, поэтому убедитесь, что на этих портах открыт UDP server
. Вам необходимо указать хотя бы один порт, но их можно указать до 32. Это сделано для того, чтобы на одном компьютере было запущено несколько приложений, которые получали данные через разные порты.
Поле sentBy
должно содержать имя вашего приложения и в настоящее время используется только для регистрации. Его длина должна быть от 1 до 64 символов.
Вы будете получать следующие данные в каждом кадре (обычно со скоростью 60 кадров в секунду, если в приложении iPhone нет задержки):
Подробную информацию о точной полезной нагрузке можно найти здесь: Payload Definition
Некоторые поля могут быть добавлены к этим полезным данным в будущем, поэтому убедитесь, что ваш код десериализации для полезных данных не дает сбоя при обнаружении неизвестных полей.
Подробное объяснение всех blendshapes можно найти здесь: Apple iOS Blendshape Info
Этот репозиторий содержит пример проекта Unity, показывающий, как запрашивать данные отслеживания.
Обязательно замените <YOUR-IPHONE-IP-HERE>
в компоненте VTubeStudioReceiveDataExample
на IP-адрес вашего iPhone/iPad. Если он не может подключиться, проверьте настройки брандмауэра/антивируса.
Файл | Описание |
---|---|
VTSARKitBlendshape.cs | Enum со всеми 52 блендшейпами iOS. |
VTubeStudioUDPDataRequest.cs | Полезная нагрузка для запроса, который необходимо отправить в приложение iOS. |
VTubeStudioRawTrackingData.cs | Полезную нагрузку, которую вы получите от приложения iOS, содержащую данные отслеживания и многое другое. Некоторые поля могут быть добавлены к этим полезным данным в будущем, поэтому убедитесь, что ваш код десериализации для полезных данных не дает сбоя при обнаружении неизвестных полей. |
VTubeStudioBlendshapeDataReceiver.cs | Компонент, который вы можете использовать в своем приложении для запроса данных и получения уведомлений при поступлении новых данных из приложения iOS или при нажатии горячей клавиши на экране. |
Example/VTubeStudioReceiveDataExample.cs | Пример компонента, который использует VTubeStudioBlendshapeDataReceiver для запроса данных, а затем отображает их. |