vrOS
Docs

Estensioni

Aggiungi quello che ti serve. Nient'altro.

Il cuore di vrOS sono gli overlay, l'input, le prestazioni e l'area di gioco. Gli strumenti per creator sono estensioni che attivi una alla volta: ognuna dichiara le capacità che usa e resta ferma finché non decidi.

vrOS 2.0.0 porta prima queste fondamenta. Le funzioni per creator tornano come estensioni, un pezzo alla volta, e questa pagina dice quali e quando.

Come funzionano

Programmi separati, che girano col tuo permesso.

Sorvegliate, non cucite dentro

Un'estensione di terze parti gira in un processo tutto suo. Se va in crash riparte secondo la regola scritta nel suo manifest, e il resto di vrOS continua a funzionare. Le estensioni integrate girano come task sorvegliati dentro l'app, con la stessa disciplina.

Consenso, una capacità alla volta

Prima che un'estensione parta, vrOS elenca in parole chiare che cosa ha chiesto: overlay, cattura, audio, bus di eventi, rete. Concedi ogni voce e puoi revocarne qualsiasi in seguito da Impostazioni → Estensioni. Un aggiornamento che chiede qualcosa di nuovo lo richiede daccapo, solo per quella voce.

Onesti su che cosa significa concedere

Le capacità controllate dall'API di vrOS le fa rispettare vrOS. L'accesso alla rete è dichiarazione, non sandbox: un programma nativo può aprire un socket senza chiedere nulla a vrOS, quindi il manifest lo dichiara e tu lo vedi prima di attivare qualsiasi cosa.

Uno stato che sopravvive a un crash

Lo stato di un'estensione vive nell'archivio di vrOS, non nel processo dell'estensione. Un crash, un riavvio dell'app o del PC lo riporta esattamente dov'era, e SteamVR che va e viene non lo smonta mai.

Funziona anche senza visore

vrOS è prima di tutto un'app desktop, e lo sono anche le sue estensioni. Mandare un messaggio OSC o far partire un pad del soundboard funziona con SteamVR chiuso.

Inattiva vuol dire inattiva

Un'estensione attiva che non sta facendo niente non tiene timer, non interroga nulla e non ridisegna nulla. OBS control interroga lo stato di stream e registrazione solo finché è a schermo un pannello che lo mostra.

Le estensioni si installano da una cartella sulla tua macchina, e la schermata di consenso arriva prima della prima esecuzione. La distribuzione firmata è un passo successivo.

Pannelli

L'interfaccia di un'estensione è la stessa interfaccia.

Le estensioni portano i loro pannelli come file Slint e vrOS li disegna da sé: stesso renderer, stesso tema, nessun motore web nei paraggi.

  • Un pannello può essere una scheda del Dash o un overlay fluttuante che sistemi nel tuo spazio
  • I pannelli delle estensioni integrate arrivano in tutte e nove le lingue, come il resto di vrOS
  • I pannelli overlay si ancorano al mondo, alla tua testa o a una delle due mani, e dopo un riavvio tornano dove li avevi lasciati
  • La tastiera VR scrive in un pannello di estensione come scrive in uno di vrOS
  • Un pannello che non si carica dice quale estensione e quale errore, invece di restare bianco

L'elenco

Cosa arriva, e quando.

Quattro estensioni, nell'ordine in cui vengono costruite. VRChat OSC, OBS control e il soundboard fanno parte del lancio di v2.0.0. Twitch chat è l'ultima in ordine e non ha ancora una data.

VRChat OSC

Al lancio

Tutta la superficie OSC di VRChat in un posto solo: una chatbox con indicatore di digitazione e interruttore del suono, i parametri avatar in entrata e in uscita, i cambi di avatar, il namespace di input e quello della fotocamera. OSCQuery e mDNS fanno sì che VRChat la trovi, insieme alla porta su cui ascolta. Quella porta è legata al loopback per impostazione predefinita, così nient'altro sulla tua rete può spingere parametri verso il tuo avatar. Il pannello chatbox si ancora al polso.

OBS control

Al lancio

Collegati a quante istanze OBS vuoi, locali o remote, via obs-websocket. Cambia scena, avvia e ferma lo stream o la registrazione, attiva e blocca le sorgenti, leggi le statistiche. Un compatto pannello di regia fluttua davanti a te con la griglia delle scene, lo stato di stream e registrazione e il tally.

Soundboard

Al lancio

Pad con volume e loop per ogni voce, riprodotti dal motore audio di vrOS. Un suono può raggiungere più uscite insieme, così una clip arriva alle tue cuffie e a un microfono virtuale nello stesso momento. I pad sono comandi, quindi puoi assegnarli a un controller in SteamVR.

Twitch chat

Nessuna data

La chat su un pannello, accanto a tutto il resto. L'accesso usa il flusso device code, quindi vrOS non vede mai la tua password. È l'ultima in ordine.

Le estensioni integrate arrivano con le capacità già concesse. Puoi revocarne qualsiasi da Impostazioni → Estensioni, esattamente come per una di terze parti.

Costruirne una

La stessa API che usano quelle integrate.

Le estensioni parlano con vrOS su un socket locale — JSON-RPC, un oggetto per riga — così un'estensione si può scrivere in qualsiasi linguaggio. Che le funzioni first-party siano costruite su quella stessa API è una scelta: se VRChat OSC non si può costruire sull'API delle estensioni, è l'API a essere sbagliata.

L'SDK delle estensioni non è ancora pubblico.