Das Design und die Implementierung von Hand-Tracking in „Myst“ PlatoBlockchain Data Intelligence. Vertikale Suche. Ai.

Das Design und die Implementierung von Hand-Tracking in 'Myst'

Die richtigen Die aktualisierte Hand-Tracking-API von Presence Platform, haben wir Hand Tracking mit unserem neuesten Update für eingeführt Myst auf der Meta Quest-Plattform mit dem Titel „Hands & More“. Wir freuen uns sehr, die Leute endlich spielen zu lassen Myst auf Quest ohne physische Controller! In diesem Beitrag besprechen wir die Evolution und Iteration der Implementierung von Hand-Tracking in Myst– und insbesondere das Hinzufügen von mehr Unterstützung dafür in Unreal Engine 4.27.2.

Das Design und die Implementierung von Hand-Tracking in „Myst“ PlatoBlockchain Data Intelligence. Vertikale Suche. Ai.Gastbeitrag von Hannah Gamiel

Hannah Gamiel ist Entwicklungsleiterin bei Cyan—das Studio hinter dem Original 'Myst' Spiele – und half bei der Entwicklung des Neuen 'Myst (2020)', die VR-Unterstützung beinhaltet. Ursprünglich mit einem rein technischen Hintergrund kommend, hilft sie nun bei der Leitung der Produktion aller Titel und verwaltet die geschäftlichen und technischen Bemühungen bei Cyan. Sie hat an Titeln wie „Myst“ (2020), „The Witness“, „Braid, Anniversary Edition“, „Obduction“, „Firmament“ (bald verfügbar!) und mehr gearbeitet.

Entwurfsphase & Überlegungen

Entwerfen der Navigation für Handtracking

Bild, das anzeigt, wohin Sie gehen möchten. Sie haben wahrscheinlich daran gedacht, zu zeigen, oder? Aus diesem Grund haben wir uns für eine „zeigende“ Methode für die Bewegung entschieden Myst.

Wenn Sie sich im Teleport-Modus befinden, können Sie darauf zeigen, wohin Sie möchten, und der Teleport-Ring erscheint an Ihrem Ziel. Wenn Sie den Punkt aufheben (indem Sie den Rest Ihrer Finger ausstrecken oder einfach Ihren Zeigefinger zurück in Ihre Handfläche ziehen), wird der Teleport ausgeführt.

Wenn Sie sich im reibungslosen Bewegungsmodus befinden, beginnt das Zeigen mit Ihrer Hand, die die freie Bewegung dominiert (die in unseren Steuerungseinstellungen konfiguriert werden kann, aber standardmäßig die linke Hand ist), Sie sanft in die Richtung zu bewegen, in die Sie zeigen.

Beim Testen von Bewegungen mit Zeigen haben wir festgestellt, dass die Handverfolgung mit Ihrem Zeigefinger und Mittelfinger manchmal unzuverlässig sein kann, wenn sie vom Rest Ihrer Hand verdeckt wird. Das System ist sich nicht sicher, ob diese Finger vollständig auf Ihre Hand zeigen oder vollständig „umschlossen“ sind. Wir haben dem Code einen kleinen „Fudge“-Faktor hinzugefügt, um an dieser Front für eine stabilere Bewegungsinitiierung/-ausführung zu sorgen – worauf wir etwas später eingehen werden, wenn wir die Änderungen an der sofort einsatzbereiten Handverfolgung besprechen Unterstützung in Unreal Engine.

Drehung

Die „Punkt“-Methode funktioniert nicht bei allen Navigationsverwendungen. Beim Drehen haben wir zunächst das Zeigen mit der Drehung des Handgelenks kombiniert. Ein Vergleich des Handgelenks des Spielers und des Vorwärtsvektors der Kamera würde die Richtung der Kurve anzeigen (und wie groß die Kurve sein sollte). Wir haben dies anfangs versucht, da es intuitiv erschien, das Thema „Zeigen“ für die Navigation zwischen allen Modi beizubehalten.

Bei Komforttests traten jedoch Komplikationen auf. Beim Spieltest zeigten die meisten Spieler mit der Handfläche nach vorne, so wie man es wahrscheinlich auch tun würde, wenn man versucht, auf etwas außerhalb eines Spiels zu zeigen. Das Drehen Ihres Handgelenks nach links und rechts (um die Aufwärtsachse Ihres Handgelenks), während Ihre Handfläche zum Boden zeigt, ist eine Herausforderung und hat einen sehr begrenzten Bewegungsbereich, insbesondere wenn Sie versuchen, sich von Ihrer Brust abzuwenden.

Dieses Problem tritt auch dann auf, wenn Sie einen Spieler gebeten haben, mit nach innen gerichteten Handflächen auf etwas vor ihm zu zeigen. Du kannst dein Handgelenk einknicken gegenüber Ihren Körper ziemlich stark, aber Sie werden nicht den gleichen Bewegungsumfang erhalten, wenn Sie Ihr Handgelenk von Ihrem Körper wegbiegen.

Wie haben wir das gelöst? Am Ende haben wir das Drehen einer „Daumen hoch“-Geste zugewiesen, anstatt einer Zeige-Finger-Zeige-Geste.

Stellen Sie sich vor, Sie geben einen Daumen nach oben. Drehen Sie nun Ihr Handgelenk nach rechts und links. Beachten Sie, dass, obwohl Sie keinen großen Bewegungsbereich haben, es immer noch ziemlich konsistent ist, bei dieser Geste mit dem Daumen entweder nach „links“ oder „rechts“ zu zeigen.

Darauf haben wir uns für das Drehen im Hand-Tracking-Modus festgelegt. Obwohl das Zeigen mit dem Daumen nicht die intuitivste Art zu sein scheint, sich zu drehen, ist es so war am Ende die bequemste und konsistenteste Art, dies zu tun.

Beim Snap Turning bewirkt das Drehen des Handgelenks nach links oder rechts aus einer Position mit dem Daumen nach oben, dass eine einzelne Snap Turn eingeleitet wird. Sie müssen dann Ihre Hand wieder in die Position „Mitte“ (gerade nach oben) bringen, um den Snap zurückzusetzen, und zusätzlich warten, bis eine sehr kurze Abklingzeit eintritt, um erneut eine Snap-Drehung einzuleiten.

Beim sanften Drehen beginnt das Drehen Ihres Handgelenks in einer Position mit dem Daumen nach oben, Sie nach links oder rechts zu drehen – sobald Sie eine „tote Zone“ verlassen, die eine Drehung verhindert, bis Sie die Schwelle überschritten haben.

Umgang mit Konflikten zwischen Bewegungs- und Objektinteraktionsposen

Natürlich ist das Zeigen mit dem Finger eine zu breite Geste, um davon auszugehen, dass sie nur zur Navigation verwendet wird. Menschen werden die gleiche Geste machen, um Knöpfe zu drücken oder mit anderen Dingen in der Welt zu interagieren, nur aus Gewohnheit oder ihrer eigenen Erwartung. Es wäre ziemlich erschütternd, darauf zuzugehen (aber nicht Recht bis zu) eine Taste, zeige mit deinem Finger darauf, um sie zu drücken, und bewege dich dann plötzlich (und ungewollt) näher an sie im Spiel (oder initiiere unbeabsichtigt einen Teleport)!

Wir verhindern, dass Bewegungen auftreten, während der Spieler mit etwas interagiert, indem wir verhindern, dass Bewegungscodes ausgelöst werden, wenn sich die Hand, die die Bewegungsgeste ausführt, in einem bestimmten Bereich eines interaktiven Objekts befindet. Dieser Bereich wurde mehrfach optimiert, um basierend auf Spieltests einen guten „Sweet Spot“ zu erreichen.

Wir haben herausgefunden, dass dieser Sweet Spot etwa 25 cm von der weltweiten Weltraumposition des Knochens der Spitze des Zeigefingers entfernt ist. Myst ist voll von interaktiven Objekten in verschiedenen Größen (von kleinen Knöpfen bis hin zu sehr großen Hebeln), die sowohl in weiten Räumen als auch in engen Fluren angeordnet sind, sodass wir einiges an Testen brauchten, um uns auf diese Zahl festzulegen. Wir haben zunächst 60 cm (etwa zwei Fuß) ausprobiert, aber das hat verhindert, dass Bewegungen auftreten, wenn die Spieler noch näher an ein Objekt herankommen müssen. Ebenso führte alles unter 25 cm zu unerwünschten Spielerbewegungen, wenn Spieler versuchten, ein Objekt zu greifen oder zu berühren.

Einer unserer besten Testbereiche war der Generatorraum auf Myst Island, wo Sie durch einen schmalen Eingang gehen und dann sofort von einer Tafel voller Knöpfe begrüßt werden. Wenn der Interaktionstestbereich zu groß war, konnten sich die Spieler nicht durch den Eingang und zum Panel bewegen, weil es Knöpfe in Reichweite des Zeigefingers erkannte.

Das heißt, 25 cm sind das, wofür speziell gearbeitet wurde Myst. Andere Spiele müssen diese Zahl möglicherweise anpassen, wenn sie etwas Ähnliches unter Berücksichtigung ihrer eigenen Kriterien implementieren möchten.

Entwerfen von Objektinteraktionen für Handtracking

Im Moment sind alle erfassbaren Interaktionen in Myst sind so konzipiert, dass sie mit Handtracking funktionieren – Ventile drehen, Türen öffnen, Knöpfe drücken, Buchseiten umblättern und so weiter.

Die Interaktionen huckepack auf das, was wir bereits eingerichtet hatten Myst mit Touch-Controllern. Wenn Sie dort auf die Grifftaste drücken, wird die In-Game-Mesh-Darstellung Ihrer Hand automatisch in eine „ergriffene“ Pose eingeblendet, in der Sie entweder Ihre Hand zur Faust machen (wenn sie leer ist) oder ein Objekt greifen. Beim Hand-Tracking haben wir Code hinzugefügt, der eine qualifizierte Vermutung darüber anstellt, wann Sie Ihre Finger genug gekrümmt haben, um etwas zu „greifen“, und dieselbe Logik wie zuvor erwähnt zu initiieren.

Wenn Sie zum Beispiel Hand-Tracking verwenden und Ihre Hand über etwas Greifbares schwebt, wird Ihre Handfarbe orange (genau das passiert, wenn Sie Hand-Tracking nicht verwenden Myst auch VR). Wenn Sie ein interaktives Objekt greifen, indem Sie beginnen, Ihre Finger zu einer Faust zu ballen, ersetzt eine orangefarbene Kugel Ihr Handnetz und stellt dar, wo die Hand an dem Objekt befestigt ist.

Der Grund, warum wir uns für diese Methode entschieden haben, anstatt benutzerdefinierte bewegliche Meshes für Ihre Hände zu erstellen – oder Ihren Händen/Fingern zu erlauben, physisch mit Teilen dieser Objekte zu interagieren – liegt darin, dass wir wollten, dass die Interaktionen mit dem übereinstimmen, was wir anbieten die Touch-Controller-Seite für jetzt.

Das Drücken von Knöpfen funktioniert jedoch anders. Es besteht keine Notwendigkeit zur Abstraktion, da Schaltflächen keine greifbaren Objekte sind, und stattdessen ermöglichen wir Ihnen, einfach eine Schaltfläche zu drücken, indem Sie generierte Kapsel-Collider zwischen jedem der Fingergelenke auf dem beweglichen Handnetz verwenden. Aus diesem Grund können Sie alle möglichen seltsamen und lustigen Dinge tun – wie zum Beispiel nur Ihren kleinen Finger oder den Knöchel Ihres Ringfingers verwenden, um mit jeder Taste im Spiel zu interagieren, wenn Sie wirklich wollen.

Diese Implementierung unterscheidet sich geringfügig von der Art und Weise, wie Touch-Controller mit Schaltflächen im Spiel interagieren, da wir normalerweise erwarten, dass Spieler die Grifftaste auf ihrem Controller verwenden, um die Hand als gestelltes „Fingerzeige“ -Netz festzulegen, um eine genaue Schaltfläche im Spiel zu erhalten drücken Sie auf ihr Ende. Mit der Handverfolgung gibt es offensichtlich wesentlich mehr Flexibilität in der Pose, die Sie mit Ihrer Hand erstellen können, und daher wesentlich mehr Möglichkeiten, Tasten mit der gleichen Genauigkeit zu drücken.

Menü-/UI-Interaktionen

Für die Interaktion mit Menüs haben wir schließlich dasselbe Interaktionsparadigma verwendet, das Meta für die Quest-Plattform verwendet: eine Zwei-Finger-Prise zwischen Daumen und Zeigefinger an jeder Hand. Dies kann sowohl zum Öffnen unseres Menüs im Spiel als auch zum Interagieren mit Elementen im Menü verwendet werden. Es macht keinen Sinn, hier das Rad neu zu erfinden, wenn den Spielern bereits in den Menüs auf Betriebssystemebene beigebracht wird, dies zu tun, wenn sie zum ersten Mal Hand-Tracking auf Quest aktivieren!

All dies dem Spieler mitteilen

Weil die Handverfolgung bei Quest nicht so häufig eine Eingabe ist wie bei Touch-Controllern und weil möglicherweise einige Leute spielen Myst Zum allerersten Mal (oder sogar beim allerersten VR-Spiel!) haben wir versucht, rücksichtsvoll zu sein, wie wir all diese Informationen über das Hand-Tracking an den Spieler weitergeben. Wir haben darauf geachtet, eine weitere Version unseres „Controller-Diagramms“ einzufügen, die speziell darauf zugeschnitten ist, Hand-Tracking-Interaktionen zu beschreiben (sofern aktiviert in Myst), und wir zeigen dem Spieler spezielle Benachrichtigungen, die ihm genau sagen, wie er sich mit seinen Händen bewegen soll.

Darüber hinaus hielten wir es für wichtig, den Spieler daran zu erinnern, wie er nach der Aktivierung ein reibungsloses Handtracking-Erlebnis haben kann. Der Spieler wird benachrichtigt Myst's-Menü, dass die Stabilität der Handverfolgung viel besser ist, wenn sie sicherstellen, dass sie sich in einem gut beleuchteten Raum befinden und ihre Hände in ihrem Sichtfeld halten.

Meta informiert die Spieler auch darüber, dass diese der Schlüssel zu einer gut getrackten Hand-Tracking-Umgebung sind, aber wir wissen, dass einige Spieler in ein Spiel springen könnten, ohne vorher Metas Hinweise darüber analysiert zu haben, also haben wir uns entschieden, die Leute daran zu erinnern, falls sie es vergessen haben.

Weiter auf Seite 2: Engine-Modifikationen in Unreal »

Zeitstempel:

Mehr von Straße nach VR