Wir setzen unsere Erkundung der Mixed‑Reality‑Fähigkeiten der Meta Quest 3 mit Unreal Engine und dem MetaXR‑Plugin fort, die wir in einem vorherigen Devlog‑Beitrag begonnen haben.
In diesem Beitrag erweitern wir das Projekt um Multiplayer‑Funktionen – mit dem hervorragenden VR‑Expansion‑Plugin für Unreal Engine.
Tech‑Stack
Für diese Exploration nutzen wir:
Multiplayer – cool, aber komplex
Mit Multiplayer teilen mehrere Nutzende dasselbe virtuelle Erlebnis und interagieren kooperativ oder kompetitiv. Solche Experiences können rein virtuell sein (Spielende an unterschiedlichen Orten) oder Mixed Reality, wo Spielende typischerweise co‑lokal sind. Das ermöglicht großartige Mehrpersonen‑Erlebnisse – „for free“ ist es aber nicht.
Multiplayer erhöht die technische Komplexität deutlich (Client/Server‑Setup, Replikation, Latenzen). Vereinfacht gilt: Clients übernehmen Eingaben, Rendering und Audio/Animationen; der Server hat Autorität über Physik/Interaktionen/Logik und repliziert relevante Daten. Kommunikation erfolgt zwischen Client↔Server (nicht direkt Client↔Client).
Gerade im Headset fällt Replikationslatenz sofort auf (z. B. Kamera/Hände „hinterher“), was Motion Sickness begünstigt – das muss vermieden werden.
Vieles davon löst das VR‑Expansion‑Plugin bereits, insbesondere die saubere Replikation typischer VR‑Elemente. Als Einstieg dient das Example Project.
Änderungen für Multiplayer‑Support
Im Vergleich zum VRTemplate sollten mindestens diese Anpassungen erfolgen:
VRPlayerControllerstattPlayerControllerVRCharacterstattPawn/CharacterGrippableActor(z. B.GrippableStaticMeshActor) stattGrabComponentan beliebigenActor
Für reine VR funktioniert das sehr gut. In Mixed Reality (mit MetaXR) sind zusätzliche Anpassungen nötig.
Mixed Reality erfordert weitere Anpassungen
Nutzen wir eine Scene (Raumscan) über das MetaXR‑Plugin, fällt mit obigem Setup auf: Die Kamera „klebt“ am Boden – unabhängig von der realen Kopfhöhe.


Ursache ist das Feature World Lock in MRUtilityKit: Es nutzt den Floor‑Anchor, um die virtuelle Welt an der physischen zu „verriegeln“. Anchoring sorgt dafür, dass Position/Ausrichtung eines Actors konsistent zur realen Umgebung bleiben – entscheidend für MR.
World Lock vergleicht Floor‑Anchor und virtuellen Floor‑Actor und verschiebt den PlayerCharacter entsprechend – pro Tick.
Warum klebt die Kamera mit VRCharacter, aber nicht mit einem Standard‑Pawn? Eine Komponente des VRCharacter, der NetSmoother, ist standardmäßig auf Z = -98.15 gesetzt. Normalerweise liegt der VRCharacter damit bei etwa Z = 98.15 (Boden = 0). Setzt World Lock nun auf etwa 0, wird der VRCharacter (inkl. Kamera/Hände) um ~1 m nach unten versetzt.
Fix in unserer VRCharacter‑Subklasse:
- Position des
NetSmootherauf(0, 0, 0)statt(0, 0, -98.15).
Negative Effekte haben wir nicht beobachtet – World Lock funktioniert damit korrekt.


Zusätzlich setzen wir im VRCharacter:
EnableGravity = falseGravityScale = 0HMDTrackingOrigin = Stage(stattFloor)RetainRoomscale = true- Locomotion deaktiviert
MetaXR‑Funktionen nur auf Headsets nutzen
Für Multiplayer ist ein Server erforderlich, idealerweise als Dedicated Server (nicht auf dem Headset). Das MetaXR‑Plugin funktioniert jedoch nur auf Headsets und unterstützt Linux standardmäßig nicht.
Bedingtes Room‑Setup
Im Blueprint BP_RoomSetup sollte die Room‑Initialisierung nur auf Client‑Instanzen mit Headset starten (z. B. AirLink, APK) und vermieden werden auf Dedicated Servern:
- PlayerController ist lokal kontrolliert (Client)
- HMD ist verbunden
- App nicht mit
-unattendedgestartet - Läuft in VRPreview oder als gepackte Build

So findet Room‑Setup nur dort statt, wo es Sinn ergibt. Ein Dedicated Server oder Non‑VR‑Client ignoriert es.


Replikation von Raum‑Elementen vom Headset zum Server/anderen Clients ist in Arbeit.
Dedicated Server für Linux mit MetaXR
Standardmäßig unterstützt das MetaXR‑Plugin Linux nicht (SupportedTargetPlatforms: nur Win64 und Android). Beim Bauen eines Linux‑Dedicated‑Servers schlägt das daher fehl. Als Workaround kann in OculusXR.uplugin Linux zur Liste hinzugefügt werden:
...
"SupportedTargetPlatforms": [
"Win64",
"Android",
"Linux"
],
...
Der Build läuft damit – bislang ohne Probleme.
Fazit
Mixed Reality schafft einzigartige Erlebnisse zwischen realer und virtueller Welt. Multiplayer macht sie noch spannender – erfordert aber durchdachte Technik und sorgfältige Replikation.
Wir bei Immerstory unterstützen dich gern bei der Umsetzung – und teilen bald weitere Fortschritte.
Welche immersive Experience würdest du gerne sehen? Sag uns Bescheid!
Weitere Ressourcen
Dokumentation zum MetaXR‑Plugin, insbesondere zum Mixed Reality Utility Kit, findet sich hier
