Aller au contenu

VRChat OSC

VRChat OSC relie vrOS à VRChat par OSC. Envoyez des messages de chatbox depuis un panneau posé sur votre poignet, regardez vos paramètres d’avatar changer en direct, pilotez la caméra du jeu, et laissez VRChat trouver vrOS tout seul.

Elle est livrée avec vrOS et pré-autorisée, comme toute extension interne. Voir Comment fonctionnent les extensions pour le modèle de consentement et la façon de la révoquer.

Elle fonctionne sans VR. La chatbox marche avec SteamVR fermé.

vrOS s’annonce comme un service OSCQuery via mDNS et sert un petit arbre OSCQuery décrivant ce qu’il écoute. VRChat le trouve, lit le port annoncé et commence à envoyer. Vous ne tapez de port nulle part.

Cela vous apporte deux choses :

  • vrOS écoute sur un port attribué par le système plutôt que sur un port fixe, il ne peut donc pas entrer en conflit avec l’écoute de VRChat.
  • vrOS sait si VRChat est réellement là. Il sonde le service qu’il a découvert et surveille le trafic entrant. Une seule sonde manquée ne change jamais l’état, mais la fermeture de VRChat est détectée, pas supposée.

L’annonce est active par défaut. Désactivez-la dans les réglages de l’extension si vous préférez pointer VRChat vers vrOS vous-même.

Réglage Défaut Ce que c’est
Cible d’envoi 127.0.0.1:9000 Où vrOS envoie l’OSC. Le port de réception par défaut de VRChat.
Adresse d’écoute 127.0.0.1:0 Où vrOS reçoit. Le port 0 signifie que le système choisit, et OSCQuery annonce ce qu’il a choisi.
Annoncer (OSCQuery/mDNS) Activé Annoncer via mDNS et répondre aux requêtes OSCQuery.
Préfixes de contact Vide Préfixes de paramètres séparés par des virgules, à faire remonter comme événements de contact.

La chatbox existe sur deux surfaces qui partagent un seul état : un panneau d’overlay que vous faites apparaître, et la page CHAT de l’onglet de Dash. Tapez dans l’une ou l’autre. Ancrez le panneau d’overlay à un poignet et il revient à ce poignet après un redémarrage.

Le panneau comporte un champ de texte, ENVOYER, et trois interrupteurs :

  • SAISIE affiche l’indicateur de frappe en jeu pendant que vous tapez. Il s’efface quand vous envoyez, quand vous videz le champ, et quand le focus quitte le panneau.
  • SON détermine si le message joue le son de notification de VRChat à l’arrivée.
  • DIRECT envoie le texte partiel au fil de la frappe, au lieu d’envoyer seulement sur ENVOYER.

La chatbox de VRChat accepte 144 caractères. Un texte plus long est coupé à une limite de caractère et le panneau le signale.

vrOS met en file d’attente au lieu d’inonder. Une courte rafale part directement, puis les envois se stabilisent à une cadence régulière. Les messages distincts s’empilent dans l’ordre. En mode DIRECT, le dernier texte partiel remplace celui en attente au lieu de s’accumuler : ce qui arrive est donc ce que vous avez tapé en dernier.

Si la file déborde, le panneau vous le dit. Les envois perdus sont comptés et affichés, jamais silencieux.

Quatre pages, avec une ligne d’envoi personnalisé en pied de chacune.

Page Ce qu’il y a dessus
CHAT La chatbox, qui partage son état avec le panneau d’overlay
PARAMÈTRES Les paramètres d’avatar en direct : nom, type et valeur actuelle, plus l’avatar chargé
CAMÉRA Le mode, les actions de capture, les interrupteurs documentés et les curseurs
TRACKERS Les envois de trackers et leur interrupteur de cadence

La ligne d’envoi personnalisé prend une adresse et une valeur, pour tout ce que les pages ne couvrent pas.

PARAMÈTRES est une vue en direct, pas un journal. Elle se met à jour tant que la page est à l’écran et cesse de pousser quand elle ne l’est pas, mais l’extension continue d’apprendre les valeurs dans les deux cas : la page est donc juste dès que vous l’ouvrez.

Le mode caméra va de 0 à 6 : Arrêt, Photo, Stream, Emoji, Multicouche, Impression, Drone. Les curseurs (zoom, distance focale, ouverture, teinte, et le reste) sont bornés aux plages documentées de VRChat avant que quoi que ce soit ne parte sur le fil.

Surface Sens Notes
Saisie de chatbox et frappe Sortant Limité en cadence, comme ci-dessus
Paramètres d’avatar Entrant et sortant Paramètres chaîne et multi-arguments compris
Changement d’avatar Entrant et sortant À la fois l’envoi et l’avis que votre avatar est chargé
/input/* Sortant 9 axes en flottants bornés à -1..1, 20 boutons en entiers 0 ou 1
/usercamera/* Sortant Mode, actions, interrupteurs et curseurs
Trackers 1-8 et tête, position et rotation Sortant Cadence régulière, et uniquement tant que la fonction est active
Paramètres de contact et haptiques Entrant Les préfixes que vous configurez arrivent comme événements

Les adresses entrantes qui ne correspondent à rien sont comptées plutôt que jetées en silence : une faute de frappe dans un préfixe est donc visible au lieu d’être mystérieuse.

Cette extension n’envoie pas de suivi oculaire à VRChat. C’est le travail de VRCFaceTracking, et le dupliquer ne ferait que le contrarier.

Là où vrOS consomme lui-même le regard par OSC, il s’agit d’un écouteur dédié à l’intérieur du compositeur vrOS, délibérément pas de cette extension. Le regard brut ne traverse jamais l’API d’extension et n’atteint jamais le bus d’événements. Les extensions reçoivent des événements de focus et de confirmation, jamais un flux de regard, et même ceux-là exigent leur propre capacité accordée.

L’API web de VRChat, son websocket, l’analyse des journaux et le JSON d’avatar sont tous hors périmètre pour cette extension, par choix. Elle fait la mécanique OSC et rien d’autre. C’est cette séparation qui a empêché le code OSC de vrOS 1 de contracter une dépendance envers chaque fonction VRChat qui se trouvait à côté.

  • Vérifiez la ligne d’état de l’extension. Elle dit si VRChat a été trouvé.
  • Vérifiez qu’OSC est activé dans VRChat lui-même. vrOS ne peut pas l’activer à votre place.
  • Si l’annonce est désactivée, VRChat n’a aucun moyen de découvrir le port sur lequel vrOS écoute. Réactivez-la, ou réglez vous-même le port d’envoi de VRChat.

Plus de détails dans Dépannage.