Demo

Hinzufügen von VR-Unterstützung zu Ihrem Universal Render Pipeline-Projekt

RYAN CASSELL Software Quality Engineer
Jun 14, 2023|15 Min.
Hinzufügen von VR-Unterstützung zu Ihrem Universal Render Pipeline-Projekt
Diese Website wurde aus praktischen Gründen für Sie maschinell übersetzt. Die Richtigkeit und Zuverlässigkeit des übersetzten Inhalts kann von uns nicht gewährleistet werden. Sollten Sie Zweifel an der Richtigkeit des übersetzten Inhalts haben, schauen Sie sich bitte die offizielle englische Version der Website an.

Ein Vorteil der Entwicklung von Unity-Titeln, die auf der Universal Render Pipeline (URP) basieren, ist, dass sie auf einer Vielzahl von Plattformen mit minimalen Änderungen an den Rendereinstellungen unterstützt werden. Ihr Projekt kann auf jeder Plattform laufen, von mobilen Geräten über Konsolen und PCs bis hin zu VR.

Für diejenigen, die noch nie für VR entwickelt haben, kann es entmutigend sein, herauszufinden, wo sie anfangen sollen. Unabhängig davon, ob Sie Ihr Projekt gerade erst beginnen oder bereits ein URP-Projekt haben, das Sie auf anderen Plattformen veröffentlicht haben, werden wir die Schritte zum Hinzufügen von VR-Unterstützung erläutern, damit es mit minimalem Aufwand auf mehreren VR-Plattformen laufen kann.

Hinzufügen der richtigen Pakete

Eine Sache, die jedes VR Unity Projekt braucht, ist das XR Plug-in Management Paket. Dieses Paket macht es einfach, Ihr Projekt für die VR-Plattformen zu konfigurieren, für die Sie bauen möchten, von Meta Quest und Magic Leap bis hin zu PlayStation®VR2 (PS VR2).

Ein weiteres nützliches Paket ist das XR Interaction (XRI) Toolkit. Dieses Paket verkürzt Ihre Einrichtungszeit, indem es Voreinstellungen bereitstellt, die Bewegungsoptionen implementieren, die in den meisten VR-Titeln üblich sind, wie z. B. Teleportation, Snap Turns und mehr. Lesen Sie in diesem Blog mehr über die Möglichkeiten, die das XRI-Paket bietet.

Um diese Pakete zu Ihrem Projekt hinzuzufügen, öffnen Sie das Menü Fenster und klicken Sie auf Paketmanager. Klicken Sie im Fenster des Paketmanagers auf das Feld "Pakete": Klicken Sie dann auf die Option "Unity Registry", damit der Paketmanager alle verfügbaren Pakete auflistet.

Unity unterstützt eine Vielzahl von Paketen. Geben Sie daher "xr" in die Suchleiste des Paketverwaltungsfensters ein, um die Liste so zu filtern, dass nur XR-spezifische Pakete angezeigt werden. Klicken Sie dann auf das Paket XR Plug-in Management und wählen Sie die Schaltfläche Installieren, um es Ihrem Projekt hinzuzufügen. Folgen Sie demselben Prozess für das XRI-Toolkit-Paket, um es ebenfalls hinzuzufügen.

Klicken Sie im Fenster Paketmanager auf die Schaltfläche Installieren, um das Paket XR Plug-in Management zu installieren.

Als Nächstes fügen wir die vom XRI-Team bereitgestellten Beispiel-Assets hinzu, um Ihnen den Einstieg zu erleichtern. Klicken Sie auf das XR Interaction Toolkit-Paket im Paketmanager und dann auf die Registerkarte Samples in der Detailansicht des Pakets. Klicken Sie dann auf die Schaltfläche Importieren neben Starter Assets, um Assets hinzuzufügen, die die Einrichtung von VR-Verhaltensweisen und Eingabeaktionen vereinfachen.

Klicken Sie im Fenster Package Manager auf die Registerkarte Samples des XR Interaction Toolkit-Pakets und dann auf die Schaltfläche Importieren unter den Starter Assets, um diese Assets zu Ihrem Projekt hinzuzufügen.

Wenn Sie diese Pakete installiert haben, haben Sie schon mehr als die Hälfte des Weges zur Entwicklung für VR zurückgelegt.

Aktivieren der VR-Unterstützung für bestimmte Plattformen in Ihrem Projekt

Als Nächstes müssen Sie angeben, welche VR-Plattformen Sie anvisieren möchten. Öffnen Sie dazu Ihre Projekteinstellungen und klicken Sie auf die Registerkarte XR Plug-in-Verwaltung (die bei der Installation des Pakets enthalten war), um die Liste der verfügbaren Plug-in-Anbieter anzuzeigen, die Sie für Ihr Projekt auswählen können. Plug-in-Anbieter ist eine andere Bezeichnung für VR-Plattformen. Wählen Sie eine Option, z. B. Oculus oder Open XR, und Unity installiert die für diese Plattform spezifischen Pakete.

Wählen Sie im Fenster XR Plug-in-Verwaltung im Bereich Plug-in-Anbieter die Plattformen aus, die Sie anvisieren möchten.

Einige XR-Plattformen verwenden das Windows-, Mac- und Linux-Build-Ziel in den Build-Einstellungen, andere wiederum laufen auf anderen Zielen. Für die Erstellung von PS VR2 muss beispielsweise das Erstellungsziel auf PlayStation®5 (PS5) umgestellt werden, während andere auf Android oder iOS umgestellt werden müssen. Stellen Sie sicher, dass Sie während der Entwicklung zum richtigen Build-Ziel wechseln, damit Sie wichtige Fehler und Warnungen frühzeitig erkennen können. Um Spiele für PS5 zu entwickeln, musst du dich als PlayStation-Entwickler registrieren.

Jedes XR-Plug-in bietet Validierungsprüfungen, um sicherzustellen, dass Ihr Projekt ordnungsgemäß für die Erstellung von XR konfiguriert ist. Um sie zu finden, gehen Sie zum Fenster Projekteinstellungen und klicken Sie auf die Registerkarte Projektvalidierung unter der Registerkarte XR-Plug-in-Verwaltung, um zu sehen, ob es Warnungen oder Fehler gibt, um die Sie sich kümmern müssen. Die meisten Prüfungen enthalten eine Schaltfläche "Beheben", mit der Sie das Problem beheben können.

Klicken Sie im Fenster Projektvalidierung entweder auf die Schaltfläche Beheben neben dem Problem, das Sie beheben möchten, oder auf die Schaltfläche Alle beheben, um alle gefundenen Probleme zu beheben.

Wenn Sie die richtigen Plug-in-Anbieter ausgewählt haben, können Sie jetzt mit der Entwicklung für die VR-Plattform(en) Ihrer Wahl beginnen. Allerdings müssen Sie die VR-Steuerung noch Ihrem bestehenden Spielercharakter zuordnen. Hier kommen die vom XRI-Toolkit bereitgestellten Starter Assets ins Spiel.

Hinzufügen des VR-Player-Controllers

Wechseln Sie im Projektfenster in den Ordner Samples/XR Interaction Toolkit/2.3.2/Starter Assets/Prefabs und ziehen Sie dann die Complete XR Origin Set Up Prefab in Ihre Szene. Diese Prefab wird mit allen Komponenten geliefert, die Sie zur Konfiguration der VR-Eingabe für Ihren Player-Controller benötigen.

Das Prefab hat ein verschachteltes XR Origin Prefab, das die meisten VR-Controller-Setups handhabt. Es hat zwei Spielobjekte, die die linke und rechte Hand des Spielers darstellen, sowie eine Hauptkamera, die in einem Kamera-Offset-Spielobjekt verschachtelt ist, das das Bewegen der Kamera steuert, je nachdem, ob ein Spieler sitzt oder steht. Da die Complete XR Origin Set Up Prefab eine eigene Hauptkamera enthält, sollten Sie, wenn Sie bereits ein Hauptkameraobjekt in Ihrer Szene haben, dieses deaktivieren, damit nicht mehrere Kameras gleichzeitig versuchen, die Hauptansicht des Players zu rendern.

Ziehen Sie die Complete XR Origin Set Up Prefab in Ihre Szene. Das Prefab hat verschachtelte Kinder, die die Hände und den Kopf des Spielers bestimmten GameObjects zuordnen.

Das XRI-Toolkit enthält auch eine Input Map, die Aktionen auf gängige VR-Steuerelemente abbildet. Diese Steuerelemente sind bei den meisten VR-Plattformen Standard, so dass keine zusätzliche Codierung erforderlich ist, um sicherzustellen, dass Ihre Eingaben auf einer Vielzahl von Plattformen, einschließlich Meta Quest, Magic Leap und PS VR2, erkannt werden. Stellen Sie sicher, dass Sie alle Skripte, die für die Verfolgung des Spielstatus wichtig sind, von Ihrem ursprünglichen Player-Controller in die neu hinzugefügte Complete XR Origin Set Up Prefab kopieren und einfügen. Sie können die Prefab in etwas umbenennen, das leichter zu merken ist, z. B. VR FPS Controller.

Die XRI Default Input Actions Map wird von der XR Origin Prefab verwendet, um allgemeine Interaktionen auf den meisten VR-Plattformen abzubilden.

Das XR Origin GameObject enthält eine Vielzahl von Komponenten, die anfangs ziemlich verwirrend sein können. Betrachten Sie die XR Origin-Komponente der XR Origin-Vorlage als den Treiber für alle anderen XRI-Komponenten. Ohne sie funktioniert die XR-Lokomotion nicht. Bei den übrigen Komponenten handelt es sich um Anbieter, die eine spezifische XR-Lokomotion ermöglichen. Diese Anbieter entsprechen einer anderen Art von VR-Lokomotion, vom Teleportieren über Snap Turns bis hin zum Greifen von Oberflächen mit zwei Händen und dem Ziehen an sich selbst und vielem mehr.

Um zu erfahren, wie Sie die Fortbewegungswerte des XR Origin Prefab nach Ihren Wünschen anpassen können, lesen Sie die Dokumentation. Für die ersten Schritte sollten die Standardwerte jedoch ausreichen.

Berücksichtigung der technischen Daten der Zielplattform

Natürlich sind nicht alle VR-Plattformen gleich, und es ist wichtig, die Hardware-Spezifikationen der Zielplattform im Auge zu behalten, insbesondere wenn VR-Titel eine konstante Bildrate von 60, 90 oder 120 Bildern pro Sekunde erreichen müssen, um die Bewegungskrankheit zu minimieren. Dies kann erreicht werden, indem die maximale Augenauflösung reduziert wird, die Anti-Aliasing-Optionen für die Hauptkamera angepasst werden, die Anzahl der dynamischen Lichter zugunsten von gebackenen Lichtern reduziert wird, die Anzahl der Alphatransparenzen in den GameObjects reduziert wird und die LOD-Werte der GameObjects so angepasst werden, dass sie nur eine Version mit höherer Geometrie rendern, wenn der Spieler nahe an ihnen ist. Weitere Vorschläge finden Sie in unserem Leitfaden zur Optimierung der Grafikleistung.

Die gute Nachricht ist, dass es sehr einfach ist, zwischen verschiedenen Qualitätseinstellungen zu wechseln, je nachdem, welche Qualitätsstufe Sie für jede Plattform festgelegt haben. Auf der Registerkarte "Qualität" des Fensters "Projekteinstellungen" können Sie Qualitätsstufen erstellen und anpassen, die eindeutige Renderer-, Anti-Aliasing-, LOD- und Beleuchtungseinstellungen festlegen, damit Sie das Beste aus jeder Plattform herausholen können. Erfahren Sie mehr über die Anpassung der Qualitätseinstellungen.

Testen der VR-Einrichtung

Nun, da Ihr Projekt für die VR-Plattform(en) Ihrer Wahl konfiguriert ist, ist es an der Zeit, das neu hinzugefügte XR-Rig in Ihrem Projekt zu testen. Es gibt zwei empfohlene Methoden für VR-Tests: Verwenden Sie den XR-Gerätesimulator aus dem XRI-Toolkit, um die Einrichtung im Editor zu testen, oder erstellen Sie den Player und führen Sie ihn auf dem Gerät aus.

Es gibt ein praktisches Tool in Unity, den XR Device Simulator, mit dem Sie XR-Steuerungen in der Spielansicht des Editors simulieren können, wenn Sie sich im Spielmodus befinden. Sie können Zeit sparen, indem Sie Ihre Fortbewegungseinstellungen testen, ohne Ihr Projekt zu erstellen. Um den XR Device Simulator zu Ihrem Projekt hinzuzufügen, öffnen Sie das Fenster Package Manager, gehen Sie zurück zum XRI Toolkit-Paket, klicken Sie auf die Registerkarte Samples und klicken Sie unter den Sample Assets auf die Schaltfläche Importieren neben dem XR Device Simulator.

Klicken Sie im Package Manager auf das Paket XR Interaction Toolkit, klicken Sie auf die Registerkarte Samples und klicken Sie auf die Schaltfläche Importieren neben dem XR Device Simulator, um ihn zu Ihrem Projekt hinzuzufügen.

Nach der Installation öffnen Sie das Fenster Projekteinstellungen und klicken Sie auf die Registerkarte XRI-Toolkit. Aktivieren Sie auf dieser Registerkarte das Kontrollkästchen "XR-Gerätesimulator in Szenen verwenden", um den XR-Gerätesimulator zur Laufzeit hinzuzufügen, wenn Sie den Play-Modus aufrufen. Sie können die XR Device Simulator Prefab auch per Drag & Drop aus dem Projektfenster direkt in Ihre Szene ziehen.

Aktivieren Sie auf der Registerkarte "XR Interaction Toolkit" der Projekteinstellungen das Kontrollkästchen "XR-Gerätesimulator in Szenen verwenden", um eine Instanz der ausgewählten XR-Gerätesimulator-Voreinstellung hinzuzufügen, wenn Sie den Abspielmodus aufrufen.

Wenn Sie nun den Spielmodus im Editor aufrufen, können Sie Ihr XR-Rig mit der WASD- und Maussteuerung bewegen und mit der Tabulatortaste zwischen der Bewegung aller Steuerelemente, nur der linken oder nur der rechten Hand wechseln. Es ist keine 1:1-Übereinstimmung mit der tatsächlichen VR-Eingabe, aber es hilft Ihnen zu testen, ob Ihre Bewegungseinstellungen auf Anhieb wie erwartet funktionieren.

Denken Sie daran, dass Sie vor dem Erstellen Ihres Projekts entweder das Kontrollkästchen "XR-Gerätesimulator in Szenen verwenden" im Fenster XRI-Toolkit-Projekteinstellungen deaktivieren oder den XR-Gerätesimulator in Ihrer Szene deaktivieren/löschen müssen. Andernfalls funktionieren Ihre VR-Steuerungen auf dem Gerät nicht richtig. Das liegt daran, dass der XR-Gerätesimulator die VR-Eingabe von Maus und Tastatur oder von einem Game-Controller simuliert und die Eingabe von tatsächlichen VR-Controllern ignoriert.

Beispiel für den XR-Gerätesimulator in Aktion

Die zweite Methode zum Testen Ihres XR-Rigs besteht darin, es einfach auf Ihrer Zielplattform zu erstellen und auszuführen. Jedes XR-Gerät ist für die Ausführung von Unity-Builds anders eingerichtet. Lesen Sie daher die Dokumentation zum Anschluss an Ihre Entwicklungsmaschine, um aktuelle Informationen zu erhalten. Sobald Ihr Gerät angeschlossen ist, wählen Sie im Fenster Build-Einstellungen die Option Erstellen und Ausführen, um den Build für Ihre Zielplattform zu erstellen und auf das Gerät zu laden.

Nachdem der Build auf dem Gerät ausgeführt wurde, können Sie die Eingaben selbst testen und sehen, was funktioniert und was nicht. Die einzige Einschränkung besteht darin, auf die Fertigstellung des Builds zu warten und ein Gerät zum Testen zur Verfügung zu haben.

Mit diesen Schritten und einigen kleinen Anpassungen der Foveated-Rendering-Einstellungen konnte ich die Szene "Japanischer Garten" der neuen URP-Vorlage auf der PS VR2 zum Laufen bringen, die auf der GDC 2023 vorgestellt wurde.

Ich hoffe, diese Kurzanleitung hilft Ihnen dabei, Ihr Projekt um VR-Unterstützung zu erweitern. Wenn Sie mit einem Teil des VR-Setups nicht zurechtkommen, können Sie in der Unity-Anleitung zum Konfigurieren Ihres Projekts für XR weitere Informationen nachlesen.

Die XR- und URP-Teams arbeiten beide hart daran, die Entwicklung für mehrere Plattformen so einfach wie möglich zu gestalten. Bitte teilen Sie Ihr Feedback zur Universal Render Pipeline im URP-Forum und zur XR im XR-Forum mit. Achten Sie auf zukünftige technische Blogs von Unity-Entwicklern als Teil der fortlaufendenSerieTech from the Trenches.