Ir al contenido

Cómo funcionan las extensiones

Una extensión le pide a vrOS las cosas concretas que necesita — salida de audio, sus propios paneles, acceso a la red — y tú concedes o deniegas cada una. vrOS la inicia, la supervisa y la reinicia si se cae.

Una extensión de terceros es un programa aparte: se ejecuta por su cuenta, habla con vrOS por un socket local y no puede llevarse a vrOS consigo cuando falla. Las cinco extensiones que vienen con vrOS son integradas: tareas supervisadas dentro de la app, sobre la misma API y la misma disciplina, aisladas de un panic en vez de por una frontera de proceso. Consulta Crear una extensión para ver qué separa a los dos niveles.

Esta página es el lado del usuario. Para crear una, consulta Crear una extensión.

Las cinco vienen con 2.0.0 y arrancan desactivadas. Activa una en Configuración → Extensiones y su pestaña se suma al Dash.

Extensión Qué hace
VRChat OSC Chatbox, parámetros de avatar, cámara, trackers OSC, descubrimiento por OSCQuery. Funciona con SteamVR cerrado.
Panel de sonidos Pads con categorías, ganancia, pads en bucle y divididos, enrutados pad por pad a tu visor y/o tu micrófono
OBS Control Cambio de escenas, estado de stream y grabación, y un panel OBS Director, en hasta 16 instancias de OBS
Twitch Inicio de sesión, chat con emotes de 7TV, un administrador de anuncios con un HUD de anuncios en VR y hasta cuatro reproductores de transmisiones en vivo
Steam Link Face Lleva el seguimiento facial de un Quest Pro que transmite por Steam Link al seguimiento facial de O·VR

2.0.0 no tiene paridad de funciones con vrOS 1. Más funciones para creadores vuelven como extensiones, una a la vez, y Notas de la versión dice qué llegó a la compilación que tienes.

Una extensión pregunta la primera vez que se inicia, no cuando la instalas. Hasta que decidas, se queda detenida. No se ejecuta y no ocupa una ranura en la barra.

La pantalla lista cada capacidad que solicita, cada una con su propio interruptor y una línea en lenguaje claro que dice qué significa eso en la práctica. Las capacidades que no solicitó también se listan, marcadas como no solicitadas, para que veas la forma completa de lo que podría llegar a pedir. Luego: denegar todo, o permitir lo seleccionado.

Si una versión posterior quiere algo nuevo, se te vuelve a preguntar solo por la diferencia. Lo que ya concediste sigue concedido.

Capacidad Concederla permite
Bus Recibir los eventos de vrOS que listó, como VR conectada y desconectada. Sus propios eventos siempre son suyos.
Overlays Dibujar sus propios paneles en tu espacio. No puede ver ni tocar otros overlays.
Captura Pedir un overlay de captura de una ventana específica.
Audio Reproducir a través del motor de audio de vrOS y su enrutamiento de salida.
Secretos Guardar una contraseña o un token en el almacén de credenciales de tu SO, bajo su propio nombre.
OSC Abrir sockets OSC.
Red Hablar con la red.
Reproducción de video Reproducir video y audio de internet en sus paneles. El audio puede seguir mientras el panel está oculto.
Datos faciales Proporcionar o leer datos de seguimiento facial y ocular.

Bus, Overlays, Captura, Audio y Secretos las hace cumplir el anfitrión: cuando una extensión le pide a la API de vrOS algo que no se le concedió, la llamada se rechaza en el propio protocolo.

Las cinco extensiones integradas vienen con vrOS, desactivadas hasta que las actives en Configuración → Extensiones. Están concedidas de antemano, así que no se te pregunta cuando activas una por primera vez — salvo por la reproducción de video y los datos faciales, que nunca se conceden de antemano y siempre esperan a que tú los permitas. Por lo demás son extensiones reales: mismo manifiesto, mismos chips de capacidades, mismo botón para revocar en Configuración. Apaga una y se detiene.

También son la forma en que la API de extensiones se mantiene honesta: están construidas sobre la misma API que recibe un tercero, sin puerta trasera privada. Si una función propia no se puede construir sobre esa API, la API está mal.

Cada extensión instalada se lista con su autor, su versión y sus chips de capacidades: concedida, solicitada (todavía esperando tu decisión) o neutra cuando la extensión está desactivada. Una decisión pendiente marca la fila de la categoría y el encabezado del Dash, así que se puede encontrar desde cualquier lado.

Por fila puedes revisar, lo que abre la pantalla de consentimiento completa, activar o desactivar la extensión, y revocar una capacidad que concediste antes. Revocar es el mismo interruptor que usaste para conceder. Consulta Configuración.

Una extensión activada con una pestaña del Dash recibe una ranura en el riel: primero las pestañas centrales (paneles, rendimiento, espacio de juego), luego un divisor, luego las ranuras de extensiones en tu orden, con Configuración fija abajo. Las pestañas centrales y Configuración nunca se mueven.

Las extensiones también reciben su pestaña en el riel de la app de escritorio, de forma predeterminada. Consulta La app de escritorio.

Esta versión dibuja un glifo de contorno provisional junto a la etiqueta corta de la extensión. Los iconos personalizados de extensión no están incluidos.

Una extensión puede dibujar dos tipos de panel: una pestaña dentro del Dash, y un panel de overlay que puedes generar y colocar en tu espacio. Genera los paneles de overlay desde la propia pestaña del Dash de la extensión.

Un panel de overlay es un overlay normal de vrOS. Ánclalo al mundo, a tu cabeza o a cualquiera de tus muñecas, agárralo, bloquéalo, y vuelve donde lo dejaste después de un reinicio. Consulta Paneles.

Cuando VR se desconecta, los paneles de una extensión se ocultan y la extensión sigue funcionando. Su estado nunca se desmonta por dejar el visor. Una extensión marcada para ejecutarse sin VR nunca se entera de si SteamVR existe siquiera.

Las extensiones registran comandos con nombre, que puedes activar desde sus paneles y desde el Dash. Para llegar a uno desde un control, asígnalo a una de las ocho acciones predeclaradas en Configuración → Extensiones, y luego asigna esa acción en SteamVR, en Asignaciones del control, igual que todo lo demás que vrOS expone. Las acciones sin asignar no hacen nada. vrOS no inventa gestos. Consulta Entrada.

Pon la carpeta de la extensión en:

  • Windows: %LOCALAPPDATA%\vrOS\extensions\<id>\
  • Linux: ~/.local/share/vros/extensions/<id>/

Una carpeta que está presente es una extensión instalada. Se lista desactivada, con las capacidades que solicita mostradas como chips, hasta que la actives y recorras la pantalla de consentimiento. La distribución firmada a través de una tienda es un hito posterior; esta versión son instalaciones desde carpetas locales.

Una extensión que falla se reinicia con una espera creciente, según la política de su propio manifiesto. Sus datos guardados viven en vrOS, así que un reinicio retoma en vez de restablecer.

Una que sigue fallando deja de reiniciarse y queda desactivada, con el motivo mostrado en el panel. Una extensión construida contra una versión de protocolo que vrOS ya no admite se lista igual. Nada se descarta en silencio de la lista.

Para detener una ahora mismo, desactívala en Configuración. Consulta Solución de problemas si el problema sobrevive a eso.