vrOS
Docs

Extensiones

Agrega lo que necesitas. Nada más.

El núcleo de vrOS son los overlays, la entrada, el rendimiento y el espacio de juego. Las herramientas de creador son extensiones que activas de a una: cada una declara las capacidades que usa y sigue detenida hasta que decidas.

vrOS 2.0.0 entrega primero esa base. Las funciones de creador vuelven como extensiones, de a poco, y esta página dice cuáles y cuándo.

Cómo funcionan

Programas aparte, que corren con tu permiso.

Supervisadas, no cosidas al núcleo

Una extensión de terceros corre en su propio proceso. Si falla, se reinicia según la política de su propio manifiesto, y el resto de vrOS sigue andando. Las extensiones integradas corren como tareas supervisadas dentro de la app, con la misma disciplina.

Consentimiento, una capacidad a la vez

Antes de que una extensión corra, vrOS enumera en palabras claras lo que pidió: overlays, captura, audio, el bus de eventos, la red. Otorgas cada una y puedes revocar cualquiera después en Configuración → Extensiones. Una actualización que pida algo nuevo vuelve a preguntar solo por eso.

Honesto sobre lo que significa otorgar

Las capacidades que controla la API de vrOS las hace cumplir vrOS. El acceso a la red es una declaración, no un sandbox: un programa nativo puede abrir un socket sin preguntarle a vrOS, así que el manifiesto lo declara y tú lo ves antes de activar nada.

Un estado que sobrevive a una caída

El estado de una extensión vive en el almacén de vrOS, no en el proceso de la extensión. Una caída, un reinicio de la app o del equipo lo trae de vuelta donde estaba, y que SteamVR entre y salga nunca lo desarma.

Funciona sin el visor puesto

vrOS es ante todo una app de escritorio, y sus extensiones también. Enviar un mensaje OSC o disparar un pad del soundboard funciona con SteamVR cerrado.

Inactiva quiere decir inactiva

Una extensión activada que no está haciendo nada no corre temporizadores, no consulta nada y no vuelve a dibujar nada. OBS control consulta el estado del stream y de la grabación solo mientras hay en pantalla un panel que lo muestra.

Las extensiones se instalan desde una carpeta de tu propia máquina, y la pantalla de consentimiento aparece antes de la primera ejecución. La distribución firmada es un paso posterior.

Paneles

La interfaz de una extensión es la misma interfaz.

Las extensiones entregan sus paneles como archivos Slint y vrOS los renderiza él mismo: mismo renderizador, mismo tema, sin ningún motor web cerca.

  • Un panel puede ser una pestaña del Dash o un overlay flotante que ubicas en tu espacio
  • Los paneles de las extensiones integradas vienen en los nueve idiomas, como el resto de vrOS
  • Los paneles overlay se anclan al mundo, a tu cabeza o a cualquiera de tus manos, y vuelven donde los dejaste después de reiniciar
  • El teclado VR escribe en un panel de extensión igual que en uno de vrOS
  • Un panel que no carga nombra la extensión y el error en lugar de quedar en blanco

La lista

Qué llega, y cuándo.

Cuatro extensiones, en el orden en que se están construyendo. VRChat OSC, OBS control y el soundboard entran en el lanzamiento de v2.0.0. Twitch chat va al final y todavía no tiene fecha.

VRChat OSC

En el lanzamiento

Toda la superficie OSC de VRChat en un solo lugar: una chatbox con indicador de escritura e interruptor de sonido, parámetros de avatar de ida y de vuelta, cambios de avatar, el namespace de entrada y el de cámara. OSCQuery y mDNS hacen que VRChat la encuentre junto con el puerto en el que escucha. Ese puerto queda enlazado a loopback por defecto, así nada más en tu red puede empujar parámetros a tu avatar. El panel de la chatbox se ancla a tu muñeca.

OBS control

En el lanzamiento

Conéctate a todas las instancias de OBS que quieras, locales o remotas, por obs-websocket. Cambia de escena, inicia y detén el stream o la grabación, activa y bloquea fuentes, y lee las estadísticas. Un panel de dirección compacto flota frente a ti con la grilla de escenas, el estado del stream y de la grabación, y el tally.

Soundboard

En el lanzamiento

Pads con volumen y loop propios por entrada, reproducidos por el motor de audio de vrOS. Un sonido puede llegar a más de una salida a la vez, así que un clip suena en tus audífonos y en un micrófono virtual al mismo tiempo. Los pads son comandos, así que puedes asignarlos a un control en SteamVR.

Twitch chat

Sin fecha aún

El chat en un panel, junto a todo lo demás. El inicio de sesión usa el flujo de código de dispositivo, así que vrOS nunca ve tu contraseña. Va última en el orden.

Las extensiones integradas llegan con sus capacidades ya otorgadas. Puedes revocar cualquiera en Configuración → Extensiones, igual que con una de terceros.

Crear una

La misma API que usan las integradas.

Las extensiones hablan con vrOS por un socket local — JSON-RPC, un objeto por línea — así que una extensión se puede escribir en cualquier lenguaje. Que las funciones propias estén construidas sobre esa misma API es a propósito: si VRChat OSC no se puede construir sobre la API de extensiones, la API está mal.

El SDK de extensiones todavía no es público.