paint-brush
Erste Schritte mit dem Presence Platform Interaction SDK: Handverfolgungvon@shiaart
24,199 Lesungen
24,199 Lesungen

Erste Schritte mit dem Presence Platform Interaction SDK: Handverfolgung

von Artem Shiabutdinov4m2023/07/31
Read on Terminal Reader
Read this story w/o Javascript

Zu lang; Lesen

Die Presence Platform wurde entwickelt, um ein Gefühl gemeinsamer Präsenz und Interaktion in Virtual-Reality-Umgebungen zu schaffen. Es ermöglicht Menschen, sich mithilfe von VR-Headsets in immersiven virtuellen Räumen zu verbinden, zu interagieren und miteinander in Kontakt zu treten. Hand-Tracking ist eine der Grundvoraussetzungen für die Entwicklung von VR-Spielen – wir werden Hand-Tracking-Spielerlebnisse einrichten, erstellen und starten.
featured image - Erste Schritte mit dem Presence Platform Interaction SDK: Handverfolgung
Artem Shiabutdinov HackerNoon profile picture
0-item
1-item
2-item

Da wir im vorherigen Beitrag erfolgreich unser erstes Unity-Projekt für das Quest 2-Gerät erstellt haben, erhalten wir nun einen Einblick in eine der leistungsstärksten Funktionen, die Meta über die Presence Platform bietet.

Was ist die Präsenzplattform von Meta?

Die Presence-Plattform soll ein Gefühl gemeinsamer Präsenz und Interaktion in Virtual-Reality-Umgebungen schaffen. Es ermöglicht Menschen, sich mithilfe von VR-Headsets in immersiven virtuellen Räumen zu verbinden, zu interagieren und miteinander in Kontakt zu treten.


Zu den Funktionen und Fähigkeiten der Präsenzplattform von Meta gehören:


  1. Avatar-System: Die Presence-Plattform ermöglicht es Benutzern, ihre digitalen Avatare zu erstellen und anzupassen, die sie in der virtuellen Welt repräsentieren. Diese Avatare können die realen Bewegungen, Ausdrücke und Gesten der Benutzer nachahmen und so das Gefühl der Präsenz und der sozialen Interaktion verstärken.
  2. Soziale Interaktion: Benutzer können Freunde und andere Menschen in gemeinsamen virtuellen Umgebungen treffen und mit ihnen interagieren. Sie können gemeinsam an verschiedenen Aktivitäten teilnehmen, z. B. Spiele spielen, an virtuellen Veranstaltungen teilnehmen, Videos ansehen und mehr.
  3. Spatial Audio: Die Plattform integriert räumliches Audio, was bedeutet, dass der Klang in der virtuellen Umgebung ortsbezogen ist. Dadurch entsteht ein realistischeres und intensiveres Audioerlebnis, da Benutzer Geräusche aus bestimmten Richtungen hören können, genau wie in der realen Welt.
  4. Hand-Tracking: Die Presence-Plattform unterstützt die Hand-Tracking-Technologie, sodass Benutzer ihre Hände und Finger direkt in VR verwenden können, ohne dass Controller erforderlich sind. Dadurch werden Interaktionen natürlicher und intuitiver.
  5. Plattformübergreifende Unterstützung: Die Plattform ist so konzipiert, dass sie mit verschiedenen Oculus VR-Headsets funktioniert, sodass Benutzer mit unterschiedlichen Geräten nahtlos zusammenkommen und miteinander interagieren können.
  6. Tools zur Inhaltserstellung: Für Entwickler bietet die Presence-Plattform Tools und APIs zum Erstellen und Veröffentlichen von VR-Anwendungen, Spielen und Erlebnissen und ermöglicht so ein florierendes Ökosystem virtueller Inhalte.


Beginnend mit der Handverfolgung

Wie Sie sehen können, ist Presence Platform ein umfassender Satz von Subsystemen/Funktionen, und ich werde jedes davon im Detail behandeln, aber um zu beginnen – beginnen wir mit der Handverfolgung als einer der Grundvoraussetzungen für die Entwicklung von VR-Spielen – werden wir die Einrichtung einrichten Erstellen und starten Sie Hand-Tracking-Spielerlebnisse.


https://docs.unity3d.com/


Ein perfekter Ausgangspunkt ist die Unity-FirstHand- Erfahrung, die von oculus-samples repo bereitgestellt wird.

Bitte lesen Sie auch hier den vorherigen Beitrag zum Einrichten der Entwicklungsumgebung und stellen Sie sicher, dass verschiedene Abhängigkeiten installiert sind.


Stellen Sie sicher, dass Git LFS installiert ist, und führen Sie diesen Befehl aus:

 git lfs install


Klonen Sie dann das Repo mit dem „Code“, öffnen Sie es auf dem Github-Desktop und führen Sie den folgenden Befehl aus:

 git clone https://github.com/oculus-samples/Unity-FirstHand.git


Alle eigentlichen Projektdateien befinden sich unter Assets → Projekt. Dieser Ordner enthält alle Skripts und Assets zum Ausführen des Beispiels, mit Ausnahme des Interaction SDK selbst. Das Projekt umfasst v41 des Oculus SDK, einschließlich Interaction SDK. Sie finden das Interaction SDK unter [Assets/Oculus/Interaction]{Assets/Oculus/Interaction).


Aus erster Hand im Unity-Editor


Nachdem Sie alle erforderlichen Abhängigkeiten installiert und den Build für die Ausführung auf dem Quest-Gerät konfiguriert haben, erhalten Sie in Ihrem Editor etwas Ähnliches wie oben.


Erstellen und ausführen

Gehen Sie zu Datei → Build-Einstellungen, wenn Sie einen Mac verwenden.

Wenn Sie den Anweisungen aus meinem vorherigen Beitrag gefolgt sind und Ihr Gerät angeschlossen haben, sollten Sie in den Build-Einstellungen Folgendes sehen:

Einstellungen erstellen und ausführen

Klicken Sie auf „Erstellen und ausführen“, geben Sie Unity einige Minuten Zeit zum Erstellen und warten Sie auf Meldungen, dass Ihre App auf dem verbundenen Quest-Gerät bereitgestellt wird.


Lauferlebnis

Anpassung und Durchführung von Änderungen

Ich empfehle dringend, dass Sie mit diesem Beispiel experimentieren und versuchen, Komponenten und Skripte anzupassen, um zu lernen, wie es intern funktioniert. Um dies tun zu können, gehen Sie zum Abschnitt „Projekt“ Ihres Unity-Editors und erweitern Sie die Projektverzeichnishierarchie.


Wir werden LazerProjectile anpassen:


Projektstruktur

 public class LazerProjectile : ActiveStateObserver { [SerializeField] Transform _target; [SerializeField] GameObject _effect; [SerializeField] float _rayCastDelay = 0.5f; [SerializeField] float _fadeOutTime = 0.1f; [SerializeField] float _delayBetweenShots = 0.5f; [SerializeField] AudioTrigger _chargeUp; [SerializeField, Optional] AudioTrigger _chargeUpComplete; protected override void Update() { base.Update(); Vector3 endPos = Vector3.Lerp(_target.position, transform.position + transform.forward * 20, 5 * Time.deltaTime); _target.position = endPos; } //...... }


Erhöhen wir die Ray-Cast-Verzögerung und testen wir die App auf dem Headset, indem wir sie austauschen


 float _rayCastDelay = 0.1f;

Zu

 float _rayCastDelay = 0.5f;


So funktioniert es!

Demo


Probieren Sie es selbst aus und teilen Sie mir mit, was Sie mithilfe der Handverfolgung erstellen möchten.