Você pode solicitar o recebimento de dados de rastreamento do aplicativo VTube Studio para iPhone. Esses dados incluem formas de mesclagem, rotação da cabeça, posição da cabeça e muito mais. Os dados são solicitados e enviados via UDP.
Aplicativos como VSeeFace e VBridger usam isso.
Você precisa de um iPhone ou iPad executando o VTube Studio. Certifique-se de que a opção "3rd Party PC Clients"
esteja ativada. Está na parte inferior da primeira guia de configurações. Isso inicia um ouvinte UDP no iPhone e o aplicativo agora está pronto para enviar dados pela rede local quando você solicitar.
Você pode solicitar o envio de dados de rastreamento por até 10 segundos. Para fazer isso, envie a seguinte string de carga para o iPhone (porta 21412
ou qualquer outra exibida no aplicativo iOS) via UDP:
{
"messageType" : " iOSTrackingDataRequest " ,
"time" : 2.5 ,
"sentBy" : " MyApp " ,
"ports" : [ 11125 , 11126 ]
}
O campo time
informa ao aplicativo iOS por quanto tempo os dados serão enviados. Os valores permitidos estão entre 0.5 and 10
segundos. Certifique-se de enviar esta solicitação repetidamente a cada poucos segundos para continuar recebendo dados. Por exemplo, você pode enviar uma solicitação por segundo com time
definido como 5
para que os dados de rastreamento continuem chegando. Quando terminar, pare de enviar a solicitação.
Quando o aplicativo iOS receber essa solicitação, ele enviará pacotes de dados UDP para o IP que enviou a solicitação.
Os dados serão enviados para as portas listadas na solicitação, portanto, certifique-se de ter um UDP server
aberto nessas portas. Você deve listar pelo menos uma porta e pode listar até 32. Isso ocorre para que você possa ter vários aplicativos em execução em um PC, todos recebendo os dados em portas diferentes.
O campo sentBy
deve conter o nome do seu aplicativo e atualmente é usado apenas para registro. Deve ter entre 1 e 64 caracteres.
Você receberá os seguintes dados a cada quadro (normalmente a 60 FPS, a menos que haja atraso no aplicativo para iPhone):
Detalhes sobre a carga útil exata podem ser encontrados aqui: Payload Definition
Alguns campos podem ser adicionados a essa carga no futuro, portanto, certifique-se de que seu código de desserialização para a carga não falhe quando campos desconhecidos forem encontrados.
Uma explicação detalhada de todas as blendshapes pode ser encontrada aqui: Apple iOS Blendshape Info
Este repositório contém um exemplo de projeto Unity que mostra como solicitar dados de rastreamento.
Certifique-se de substituir <YOUR-IPHONE-IP-HERE>
no componente VTubeStudioReceiveDataExample
pelo IP do seu iPhone/iPad. Se não conseguir se conectar, verifique as configurações de firewall/antivírus.
Arquivo | Descrição |
---|---|
VTSARKitBlendshape.cs | Enum com todas as 52 formas de mesclagem do iOS. |
VTubeStudioUDPDataRequest.cs | Carga útil da solicitação que você deve enviar ao aplicativo iOS. |
VTubeStudioRawTrackingData.cs | Carga útil que você receberá do aplicativo iOS contendo os dados de rastreamento e muito mais. Alguns campos podem ser adicionados a esta carga no futuro, portanto, certifique-se de que seu código de desserialização para a carga não falhe quando campos desconhecidos forem encontrados. |
VTubeStudioBlendshapeDataReceiver.cs | Componente que você pode usar em seu aplicativo para solicitar dados e ser notificado quando novos dados chegarem do aplicativo iOS ou quando uma tecla de atalho na tela for pressionada. |
Example/VTubeStudioReceiveDataExample.cs | Componente de exemplo que usa VTubeStudioBlendshapeDataReceiver para solicitar dados e depois exibi-los. |