vrOS
Docs

Extensions

Ajoutez ce qu'il vous faut. Rien d'autre.

Le cœur de vrOS, ce sont les overlays, l'entrée, les performances et l'espace de jeu. Les outils de créateur sont des extensions que vous activez une par une : chacune déclare les capacités qu'elle utilise et reste à l'arrêt tant que vous n'avez pas décidé.

vrOS 2.0.0 livre d'abord ces fondations. Les fonctions de créateur reviennent sous forme d'extensions, progressivement, et cette page dit lesquelles et quand.

Comment elles fonctionnent

Des programmes distincts, qui tournent avec votre permission.

Supervisées, pas greffées dans l'app

Une extension tierce tourne dans son propre processus. Si elle plante, elle redémarre selon la règle de son propre manifeste, et le reste de vrOS continue. Les extensions intégrées tournent comme des tâches supervisées dans l'app, avec la même discipline.

Le consentement, une capacité à la fois

Avant qu'une extension ne démarre, vrOS énumère en mots clairs ce qu'elle a demandé : overlays, capture, audio, bus d'événements, réseau. Vous accordez chaque élément, et vous pouvez en révoquer n'importe lequel plus tard dans Réglages → Extensions. Une mise à jour qui demande quelque chose de nouveau redemande pour cette seule chose.

Franc sur ce qu'une autorisation veut dire

Les capacités que contrôle l'API vrOS sont appliquées par vrOS. L'accès réseau relève de la déclaration, pas du bac à sable : un programme natif peut ouvrir une socket sans demander à vrOS, alors le manifeste le déclare et vous le voyez avant d'activer quoi que ce soit.

Un état qui survit à un plantage

L'état d'une extension vit dans le stockage de vrOS, pas dans le processus de l'extension. Un plantage, un redémarrage de l'app ou de la machine le ramène là où il en était, et les allers-retours de SteamVR ne le détruisent jamais.

Fonctionne casque enlevé

vrOS est d'abord une application de bureau, et ses extensions aussi. Envoyer un message OSC ou déclencher un pad du soundboard fonctionne avec SteamVR fermé.

Au repos veut dire au repos

Une extension activée mais inoccupée ne fait tourner aucun minuteur, n'interroge rien et ne redessine rien. OBS control n'interroge l'état du stream et de l'enregistrement que tant qu'un panneau qui l'affiche est à l'écran.

Les extensions s'installent depuis un dossier de votre propre machine, et l'écran de consentement arrive avant le premier lancement. La distribution signée viendra plus tard.

Panneaux

L'interface d'une extension, c'est la même interface.

Les extensions livrent leurs panneaux sous forme de fichiers Slint et vrOS les rend lui-même : même moteur de rendu, même thème, aucun moteur web dans les parages.

  • Un panneau peut être un onglet du Dash ou un overlay flottant que vous placez dans votre espace
  • Les panneaux des extensions intégrées existent dans les neuf langues, comme le reste de vrOS
  • Les panneaux overlay s'ancrent au monde, à votre tête ou à l'une de vos mains, et reviennent là où vous les aviez laissés après un redémarrage
  • Le clavier VR écrit dans un panneau d'extension comme il écrit dans un panneau vrOS
  • Un panneau qui ne se charge pas nomme l'extension et l'erreur au lieu de rester vide

La liste

Ce qui arrive, et quand.

Quatre extensions, dans l'ordre où elles sont construites. VRChat OSC, OBS control et le soundboard font partie du lancement de la v2.0.0. Twitch chat vient en dernier et n'a pas encore de date.

VRChat OSC

Au lancement

Toute la surface OSC de VRChat au même endroit : une chatbox avec indicateur de saisie et bascule de son, les paramètres d'avatar dans les deux sens, les changements d'avatar, le namespace d'entrée et celui de la caméra. OSCQuery et mDNS permettent à VRChat de la trouver, ainsi que le port sur lequel elle écoute. Ce port est lié à la boucle locale par défaut, donc rien d'autre sur votre réseau ne peut pousser des paramètres vers votre avatar. Le panneau chatbox s'ancre à votre poignet.

OBS control

Au lancement

Connectez-vous à autant d'instances OBS que vous voulez, locales ou distantes, via obs-websocket. Changez de scène, démarrez et arrêtez le stream ou l'enregistrement, activez et verrouillez des sources, lisez les statistiques. Un panneau de régie compact flotte devant vous avec la grille de scènes, l'état du stream et de l'enregistrement, et le tally.

Soundboard

Au lancement

Des pads avec volume et boucle par entrée, joués par le moteur audio de vrOS. Un son peut atteindre plusieurs sorties à la fois, pour qu'un extrait parte dans votre casque audio et dans un micro virtuel en même temps. Les pads sont des commandes : vous pouvez les assigner à une manette dans SteamVR.

Twitch chat

Pas encore de date

Le chat sur un panneau, à côté de tout le reste. La connexion passe par le flux device code, donc vrOS ne voit jamais votre mot de passe. Elle vient en dernier.

Les extensions intégrées arrivent avec leurs capacités déjà accordées. Vous pouvez en révoquer n'importe laquelle dans Réglages → Extensions, comme pour une extension tierce.

En créer une

L'API qu'utilisent aussi les extensions intégrées.

Les extensions parlent à vrOS via une socket locale — JSON-RPC, un objet par ligne — donc une extension peut s'écrire dans n'importe quel langage. Que les fonctionnalités maison reposent sur cette même API est délibéré : si VRChat OSC ne peut pas être bâtie sur l'API d'extensions, c'est l'API qui est fausse.

Le SDK d'extensions n'est pas encore public.