VRChat OSC
VRChat OSC verbindet vrOS über OSC mit VRChat. Schicke Chatbox-Nachrichten von einem Panel an deinem Handgelenk, sieh deinen Avatar-Parametern live beim Ändern zu, steuere die Kamera im Spiel und lass VRChat vrOS von selbst finden.
Sie wird mit vrOS ausgeliefert und ist vorab gewährt, wie jede First-Party-Erweiterung. Das Zustimmungsmodell und das Widerrufen stehen unter Wie Erweiterungen funktionieren.
Sie läuft ohne VR. Die Chatbox funktioniert auch bei geschlossenem SteamVR.
Erkennung
Abschnitt betitelt „Erkennung“vrOS kündigt sich über mDNS als OSCQuery-Dienst an und liefert einen kleinen OSCQuery-Baum, der beschreibt, worauf es hört. VRChat findet es, liest den angekündigten Port und beginnt zu senden. Du tippst nirgends einen Port ein.
Das bringt dir zwei Dinge:
- vrOS hört auf einem Port, den das System vergibt, statt auf einem festen, und kann so nicht mit VRChats eigenem Empfänger kollidieren.
- vrOS weiß, ob VRChat wirklich da ist. Es prüft den gefundenen Dienst und beobachtet eingehenden Verkehr. Eine einzelne verpasste Prüfung kippt den Zustand nie, aber ein geschlossenes VRChat wird erkannt, nicht bloß vermutet.
Das Ankündigen ist standardmäßig an. Schalte es in den Einstellungen der Erweiterung aus, wenn du VRChat lieber selbst auf vrOS zeigen lässt.
Einstellungen
Abschnitt betitelt „Einstellungen“| Einstellung | Standard | Was es ist |
|---|---|---|
| Sendeziel | 127.0.0.1:9000 |
Wohin vrOS OSC sendet. VRChats Standard-Empfangsport. |
| Empfangsadresse | 127.0.0.1:0 |
Wo vrOS empfängt. Port 0 heißt, das System wählt, und OSCQuery kündigt an, was es gewählt hat. |
| Ankündigen (OSCQuery/mDNS) | An | Über mDNS ankündigen und OSCQuery-Anfragen beantworten. |
| Kontakt-Präfixe | Leer | Kommagetrennte Parameter-Präfixe, die als Kontakt-Ereignisse auftauchen sollen. |
Chatbox
Abschnitt betitelt „Chatbox“Die Chatbox gibt es auf zwei Oberflächen mit einem gemeinsamen Zustand: als Overlay-Panel, das du erzeugen kannst, und als Seite CHAT im Dash-Tab. Tippe in beiden. Verankere das Overlay-Panel an einem Handgelenk, dann kommt es nach einem Neustart an dieses Handgelenk zurück.
Das Panel hat ein Textfeld, SENDEN und drei Schalter:
- TIPPEN zeigt die Tippanzeige im Spiel, während du tippst. Sie verschwindet, wenn du sendest, wenn du das Feld leerst und wenn der Fokus das Panel verlässt.
- TON steuert, ob die Nachricht beim Eintreffen VRChats Benachrichtigungston abspielt.
- LIVE sendet Teiltext schon beim Tippen, statt erst mit SENDEN.
VRChats Chatbox nimmt 144 Zeichen. Längerer Text wird an einer Zeichengrenze gekürzt, und das Panel sagt es.
Ratenbegrenzung
Abschnitt betitelt „Ratenbegrenzung“vrOS stellt in eine Warteschlange, statt zu fluten. Ein kurzer Schwall geht direkt raus, danach pendeln sich die Sendungen auf einen gleichmäßigen Takt ein. Einzelne Nachrichten reihen sich der Reihe nach ein. Im Modus LIVE ersetzt der neueste Teiltext den wartenden, statt sich zu stapeln, sodass ankommt, was du zuletzt getippt hast.
Läuft die Warteschlange über, sagt es dir das Panel. Verworfene Sendungen werden gezählt und angezeigt, nie stillschweigend.
Der Dash-Tab
Abschnitt betitelt „Der Dash-Tab“Vier Seiten, jede mit einer Custom-Send-Zeile in der Fußzeile.
| Seite | Was darauf ist |
|---|---|
| CHAT | Die Chatbox, mit demselben Zustand wie das Overlay-Panel |
| PARAMETER | Live-Avatar-Parameter mit Name, Typ und aktuellem Wert, dazu der geladene Avatar |
| KAMERA | Modus, die Aufnahme-Aktionen, die dokumentierten Schalter und die Regler |
| TRACKER | Das Tracker-Senden und sein Takt-Schalter |
Die Custom-Send-Zeile nimmt eine Adresse und einen Wert, für alles, was die Seiten nicht abdecken.
PARAMETER ist eine Live-Ansicht, kein Log. Sie aktualisiert sich, solange die Seite sichtbar ist, und schiebt nichts mehr nach, wenn sie es nicht ist; die Erweiterung lernt die Werte aber so oder so weiter, sodass die Seite in dem Moment stimmt, in dem du sie öffnest.
Der Kameramodus läuft von 0 bis 6: Aus, Foto, Stream, Emoji, Mehrschicht, Druck, Drohne. Die Regler (Zoom, Fokusabstand, Blende, Farbton und der Rest) werden auf VRChats dokumentierte Bereiche begrenzt, bevor irgendetwas auf die Leitung geht.
Was sie sendet und empfängt
Abschnitt betitelt „Was sie sendet und empfängt“| Oberfläche | Richtung | Anmerkungen |
|---|---|---|
| Chatbox-Eingabe und Tippen | Raus | Ratenbegrenzt, wie oben |
| Avatar-Parameter | Rein und raus | String- und Mehrargument-Parameter inbegriffen |
| Avatar-Wechsel | Rein und raus | Sowohl das Senden als auch die Meldung, dass dein Avatar geladen ist |
/input/* |
Raus | 9 Achsen als Floats, begrenzt auf -1..1, 20 Tasten als Ints 0 oder 1 |
/usercamera/* |
Raus | Modus, Aktionen, Schalter und Regler |
| Tracker 1-8 und Kopf, Position und Rotation | Raus | Gleichmäßiger Takt, und nur solange die Funktion an ist |
| Kontakt- und Haptik-Parameter | Rein | Die von dir konfigurierten Präfixe kommen als Ereignisse an |
Eingehende Adressen, die auf nichts passen, werden gezählt statt still verworfen, sodass ein Tippfehler in einem Präfix sichtbar wird statt rätselhaft.
Eye-Tracking fehlt hier mit Absicht
Abschnitt betitelt „Eye-Tracking fehlt hier mit Absicht“Diese Erweiterung sendet kein Eye-Tracking an VRChat. Das ist die Aufgabe von VRCFaceTracking, und es zu verdoppeln würde nur dagegen arbeiten.
Wo vrOS selbst Blickdaten über OSC entgegennimmt, ist das ein eigener Empfänger im vrOS-Compositor, mit Absicht nicht diese Erweiterung. Rohe Blickdaten überqueren nie die Erweiterungs-API und erreichen nie den Ereignis-Bus. Erweiterungen bekommen Fokus- und Bestätigungsereignisse, nie einen Strom von Blickdaten, und selbst dafür braucht es eine eigene Capability.
Ebenfalls nicht hier
Abschnitt betitelt „Ebenfalls nicht hier“VRChats Web-API, sein WebSocket, das Auswerten von Logs und Avatar-JSON liegen für diese Erweiterung bewusst außerhalb des Rahmens. Sie macht OSC-Mechanik und sonst nichts. Dass beides getrennt bleibt, hat den OSC-Code in vrOS 1 davor bewahrt, eine Abhängigkeit zu jeder VRChat-Funktion zu entwickeln, die zufällig danebenlag.
Wenn VRChat vrOS nicht sieht
Abschnitt betitelt „Wenn VRChat vrOS nicht sieht“- Sieh in die Statuszeile der Erweiterung. Sie sagt, ob VRChat gefunden wurde.
- Prüfe, ob OSC in VRChat selbst aktiviert ist. vrOS kann es nicht für dich einschalten.
- Ist das Ankündigen aus, hat VRChat keine Möglichkeit, den Port zu finden, auf dem vrOS hört. Schalte es wieder an, oder setze VRChats Sendeport selbst.
Mehr in der Fehlerbehebung.