Oculus VR Inc. hat einen Entwurf eines Best Practice Leitfadens für VR-Entwickler veröffentlicht, der ein maximales VR-Erlebnis bieten soll und beinhaltet Themen wie: 1) oculomotorischer Komfort, 2) körperlicher Komfort und 3) eine positive User Experience. Das Dokument befindet sich auf der Website von Oculus VR. Neben einer Liste von Empfehlungen für Entwickler reduziert es auch das empfohlene Mindestalter für die Verwendung des Oculus Rift von 10 auf 7 Jahre.
Viele User spielen Oculus-VR-Spiele wie Rift Coaster nur für sehr kurze Zeit und schwören dem Ganzen sehr schnell ab. Andere User hingegen sind von der sogenannten VR-Krankheit weniger betroffen. Oculus scheint zu erkennen, dass, obwohl keine zwei Personen die virtuelle Realität gleich erleben, es Schritt gibt, die unternommen werden können, um negative Rückkopplungen aus dem Gehirn zu minimieren (oder sogar zu eliminieren), was zu einem positiveren und angenehmeren VR-Erlebnis führt.
Einige der wichigsten Punkte des Dokuments sind als Road to VR-Crowd bekannt und spiegeln sich in der Rift-Roadmap wider (basierend auf jüngsten Interviews). Oculus sagt, dass „Code mit mindestens 60 fps ausgeführt werden sollte“ und dass „20ms oder weniger Motion-to-Photon-Latenzzeit angestrebt werden“. Das Dokument ist jedoch voll von Ratschlägen, die offensichtlich erscheinen mögen, aber verstärkt werden müssen.
Es ist unerlässlich, dass das Headtracking jederzeit funktioniert, auch in Schnittszenen und Pausenbildschirmen. Wichtig ist auch, dass die Gesetze des „realen Lebens“ so genau wie möglich eingehalten werden. „Die Kamera sollte sich drehen und sich in einer Weise bewegen, die den Kopfbewegungen entspricht“. Vermeiden Sie auch eine schnelle Beschleunigung und Verlangsamung, da sie „ein Ungleichgewicht zwischen Ihrem visuellen und Ihrem vestibulären Sinne verursacht“. Es ist unnatürlich, in 2,5 Sekunden von 0 auf 60 Meilen pro Stunde zu gehen und die Trägheit dieser Erfahrung nicht zu spüren. Die Uneinigkeit zwischen ihren Augen und anderen Sinnen kann Verwirrung stiften.
Die anderen Elemente scheinen ziemlich vernünftig zu sein, sobald man die Erfahrung versteht, die man zu vermitteln versucht. Stellen Sie Scoreboard, HUD und andere Dialoge nicht zu nah oder zu weit weg. Sie sollten etwa 50 cm vom User entfernt sitzen. Wenn Sie die Ansicht eines Users an eine Kamera anschließen, führen Sie keine schnellen Zooms oder unerwarteten Schwenks oder Neigungen aus. Versuchen Sie, die Sicht des Users auf die Spielwelt so nah wie möglich an die Daten aus dem Spalt heranzuführen. Wenn das Gehirn eine Trennung zwischen Handlung und Reaktion erkennt (entweder bewusst oder unbewusst), haben Sie bereits verloren und erzeugen Disharmonie.
Während das Dokument immer noch als Entwurf gilt und in der Fußzeile „Pending legal and medical expert review“ steht, hat Oculus seine Empfehlung zum Mindestalter von 10 Jahren (gemäß dem Oculus Rift DK1 Handbuch) auf 7 Jahre reduziert. Weitere Oculus Rift Entwicklerressourcen (einschließlich des SDK) finden Sie auf dem Entwicklerportal des Unternehmens: developer.oculusvr.com.
Wir empfehlen Ihnen dringend, das Dokument über die Best Practices zu lesen, auch wenn Sie kein Entwickler sind. Das sind die Kernpunkte, die in den nächsten Jahren wahrscheinlich in allen hochwertigen VR-Erfahrungen zum Tragen kommen werden. Oculus hat mit der Erstellung dieses detaillierten Dokuments einen Großteil der Arbeit für Entwickler geleistet, obwohl sie zu erkennen scheinen, dass 39 Seiten ein wenig dicht sein könnten – als solche haben sie auch eine Zusammenfassung ihrer Ergebnisse und Empfehlungen beigefügt, die Entwickler nützlich finden werden:
Best-Practices für die Entwicklung von VR.
Rendering.
- Verwenden Sie die Oculus VR Distortion Shader. Die Annäherung an Ihre eigene Distortion-Lösung, auch wenn sie „richtig aussieht“, kann für die User immer noch unangenehm sein.
- Holen Sie sich die Projektionsmatrix. Jede Abweichung vom optischen Flow, die mit der realen Kopfbewegung einhergeht, führt zu oculomotorischen und körperlichen Beschwerden.
- Halten Sie die VR-Immersion von Anfang bis Ende aufrecht – lassen Sie einen User nicht statistische Bilder betrachten, die durch Ihren Rift an den Augen befestigt sind.
- Vermeiden Sie es, für jedes Auge völlig unterschiedliche Inhalte anzuzeigen. Wenn Sie Rendering-Effekte haben, stellen Sie sicher, dass sie sich über beide Augen verteilen und keine zufälligen Unterschiede enthalten, da das Gehirn das Bild nicht richtig verschmilzt.
- Betrachten Sie Supersampling und Anti-Aliasing, um eine geringe scheinbare Auflösung zu beheben, die in der Mitte jedes Auges am schlechtesten ist.
Minimierung der Latenzzeit.
- Ihr Code sollte mindestens in 60fps laufen sowie v-synchronisiert und ungepuffert sein. Lag und Dropped Frames sind in VR unangenehm.
- Im Idealfall sollten Sie eine Latenzzeit von 20 ms oder weniger zwischen Bewegung und Photon einhalten. Organisieren Sie Ihren Code, um die Zeit von der Sensorfusion (Lesen der Rift-Sensoren) bis zum Rendering zu minimieren.
- Verwenden Sie das prädiktive Tracking des SDK und stellen Sie sicher, dass Sie einen genauen Zeitparameter in den Funktionsaufruf eingeben.
Optimierung.
- Verringern Sie die Renderpufferauflösung, um Videospeicher zu sparen und die Bildrate zu erhöhen.
Head-Tracking und Viewport.
- Vermeiden Sie Funktionen, die das Gefühl der Stabilität des Users in seiner Umgebung stören. Das Drehen oder Verschieben der Horizontlinie oder anderer großer Komponenten der Nutzerumgebung kann für den User unangenehm sein.
- Das Display sollte ausnahmslos jederzeit auf das Headtracking und Blickwinkeländerungen reagieren. Auch wenn das Spiel angehalten wird oder eine Cutszene angezeigt wird, sollten sich die User umsehen können.
- Die Kamera sollte sich drehen und sich in einer Weise bewegen, die mit den Kopfbewegungen übereinstimmt. Abweichungen sind unangenehm.
Beschleunigungen.
- Beschleunigung erzeugt eine Diskrepanz zwischen Ihrem visuellen und vestibulären Sinn. Minimieren Sie die Dauer und Häufigkeit solcher Konflikte. Machen Sie Beschleunigungen so kurz (vorzugsweise sofort) und selten wie möglich.
- Denken Sie daran, dass „Beschleunigung“ nicht nur eine Beschleunigung im Vorwärtsgang bedeutet, sondern sich auf jede Veränderung in der Bewegung des Users bezieht. Verlangsamen oder Stoppen, Drehen während der Bewegung oder im Stillstand, und Treten und seitliches Schieben sind alles Formen der Beschleunigung.
- Lassen Sie Beschleunigungen nach Möglichkeit vom User einleiten und kontrollieren. Schütteln, Ruckeln oder Wippen der Kamera ist für den Spieler unangenehm.
Geschwindigkeit.
- Am komfortabelsten ist es für den User, sich mit realen Geschwindigkeiten durch virtuelle Umgebungen zu bewegen. Am komfortabelsten ist eine Gehgeschwindigkeit von 1,4 m/s.
- Die Bewegung in eine Richtung beim Blick in eine andere Richtung kann desorientiert sein. Minimieren Sie die Notwendigkeit fpr den User, sich von der Fahrtrichtung zu entfernen, insbesondere wenn sich dieser schneller als im Schritttempo bewegt.
Kameras.
- Wenn man den User einem Perspektivwechsel aussetzt, kann dies zu unbequemen Bewegungs- und Beschleunigungsgefühlen führen. Selbst eine scheinbar triviale Bewegung – wie z.B. das leichte Verschieben der Kamera, um sie beim Eintritt in einen Zielmodus über das Visier einer Waffe zu zentrieren – kann desorientierend und unbequem sein.
- Das Ein- und Auszoomen mit der Kamera kann die Krankheit im Simulator auslösen oder verschlimmern, insbesondere wenn dadurch die Kamerabewegungsraten von den Kopfbewegungen abweichen.
- Bei Inhalten von Drittanbietern ist zu beachten, dass Kamerabeschleunigungen und -bewegungen Übelkeit verursachen können, unabhängig davon, was Ihr Avatar tut.
- Darüber hinaus müssen die User immer die Freiheit haben, sich in der Umgebung umzusehen, was neue Anforderungen an das Design Ihrer Inhalte stellen kann.
- Verwenden Sie das Oculus Head Modell, um einen genauen und komfortablen visuellen Bezugsrahmen zu erstellen.
- Vermeiden Sie die Verwendung von Euler-Winkeln, wenn immer möglich. Quarternionen sind vorzuziehen. Versuchen Sie, gerade nach oben und gerade nach unten zu schauen, um Ihre Kamera zu testen. Sie sollte immer stabil und konsistent mit Ihrer Kopforientierung sein.
- Verwenden Sie kein „Headbobbing“. Es erzeugt eine Reihe kleiner, aber unbequemer vertikaler Beschleunigungen.
Verwalten und Testen der Simulatorkrankheit.
- Testen Sie Ihre Inhalte mit einer Vielzahl von unvoreingenommenen Usern, um sicherzustellen, dass sie inem breiteren Publikum zugänglich sind. Als Entwickler eignen sich nicht als Testperson. Wiederholte Exposition und Vertrautheit mit dem Rift und Ihren Content macht Sie viel weniger anfällig für Simulatorkrankheiten oder Contentabneigungen als einen neuen User.
- Die Reaktionen der Menschen und die Toleranz gegenüber Krankheiten sind unterschiedlich, und visuell induzierte Bewegungskrankheiten treten bei Virtual-Reality-Headsets leichter auf als bei Computer- oder Fernsehbildschirmen. Ihr Publikum wird nicht durch eine zu intensive Erfahrung gestört.
- Als Teil Ihrer benutzerdefinierten Optionen bieten Sie die Option für einen „monoskopischen Anzeigemodus“ an, der den Abstand zwischen den Kameras auf Null setzt (d.h. das gleiche Bild für beide Augen darstellt). Dies kann die Krankheit im Simulator und die Augenbelastung für sensible User reduzieren.
- Erwägen Sie die Implementierung von Mechanismen, die es den Usern ermöglichen, die Intensität des visuellen Erlebnisses anzupassen. Dies wird contentspezifisch sein, aber Anpassungen können beispielsweise die Bewegungsgeschwindigkeit, die Größe der Beschleunigungen oder die Breite des angezeigten FOVs beinhalten. Alle diese Einstellungen sollten auf die niedrigste Intensität eingestellt sein.
- Für alle benutzerdefinierten Einstellungen in Zusammenhang mit dem Simulator-Krankheitsmanagement können User diese während des Betriebs ändern (z.B. wenn sie sich an VR gewöhnt haben oder müde werden). Wenn immer möglich, erlauben Sie Usern, diese Einstellungen im Spiel zu rendern, ohne neu zu starten.
Auswirkungen und Kollisionen im Spiel.
- Bewegen Sie die Kamera nicht ohne die Kontrolle des Users (auch nicht kurzes Schütteln oder Ruckeln) bei Stößen und Kollisionen. Es handelt sich um unerwartete, unkontrollierte Veränderungen der Beschleunigung, Ausrichtung oder Drehung, die zu Unnannehmlichkeiten führen.
- Berücksichtigen Sie Einstellungen für das benutzerdefinierte Kameraverhalten. Niedrigere Einstellungen würden es nicht zulassen, dass Stöße und Kollisionen die Kamera beeinflussen, während höhere Einstellungen dies tun würden.
Grad der stereoskopischen Tiefe (3D-Mesh).
- Für einen individualisierten Realismus und eine korrekt skalierte Welt stellen Sie die Trennung der linken und rechten Augenkamera vom Profil des Users auf die IPD ein. Beachten Sie, dass der Realismus seine Schattenseite hat: Jenseits des Nahbereichs werden Sie wenig stereoskopisches 3D wahrnehmen, Widerstehen Sie der Versuchung, den Abstand zwischen den Kameras zu vergrößern, um die stereoskopische Tiefenwirkung zu verstärken.
- Vermeiden Sie es, statische visuelle Elemente, die sich in der Sicht des Users befinden (z.B. ein HUD), näher als 50 cm vom User in der virtuellen Welt zu platzieren. Das Zusammenführen der Augen auf solche nahen Objekte kann zu einer Belastung der Augen führen und sogar klar dargestellte Objekte verschwommen erscheinen lassen. User können sich immer noch dafür entscheiden, sich näher an Umgebungsobjekten zu positionieren, aber Sie sollten es vermeiden, sie in solche Situationen zu zwingen, wenn möglich.
User Interface.
- UIs sollten ein 3D-Teil der virtuellen Welt sein und idealerweise mindestens 50 cm vom Betrachter entfernt sitzen – auch wenn sie einfach auf ein schwebendes flaches Polygon, Zylinder oder Kugel gezeichnet werden, das vor dem Benutzer schwebt.
- Erfordern Sie nicht, dass der Benutzer seine Augen in seinen Höhlen dreht, um die Benutzeroberfläche zu sehen. Ihre Benutzeroberfläche sollte vollständig in die Mitte des Bildschirms passen. Andernfalls sollte sie in der Lage sein, sie mit Kopfbewegungen zu untersuchen.
- Seien Sie vorsichtig bei Oberflächenelementen, die sich mit Kopfbewegungen bewegen oder skalieren (z.B. ein langes Menü, das beim Bewegen des Kopfes scrollt oder sich bewegt, um es zu lesen). Stellen Sie sicher, dass sie genau auf die Bewegungen des Users reagieren und leicht lesbar sind, ohne störende Bewegungen oder Unannehmlichkeiten zu verursachen.
- Betrachten Sie Ihre Oberflächenelemente als intuitive und immersive Teile der 3D-Welt, z.B. kann die Munitionszahl auf der Waffe des Users und nicht in einem schwebenden HUD sichtbar sein.
- Zeichnen Sie jedes Fadenkreuz oder jeden Cursor in der gleichen Tiefe wie das Objekt, auf das es gerichtet ist. Andernfalls kann es als verschwommenes und/oder verdoppeltes Bild erscheinen, wenn es sich nicht in der Tiefenebene befindet, auf die die Augen gerichtet sind.
- Vermeiden Sie es im Allgemeinen, dass die Augen des Users schnelle und häufige Entfernungseinstellungen vornehmen müssen, wie z.B. das Umschalten des Fokus zwischen einem entfernten Objekt und einem benachbarten HUD-Element.
Kontrolle des Avatars.
- Benutzereingabegeräte sind während des Trages des Rifts nicht sichtbar. Erlauben Sie die Verwendung bekannter Controller als Standardeingabemethode. Wenn eine Tastatur unbedingt erforderlich ist, denken Sie daran, dass User auf taktile Rückmeldungen (oder das Ausprobieren von Tasten) angewiesen sind, um Bedienelemente zu finden.
- Erwägen Sie die Kopforientierung selbst als direkte Kontrolle oder als Möglichkeit, Kontextsensivität in Ihr Steuerschema einzubringen.
Sound.
- Beachten Sie bei der Entwicklung von Audio, dass die Ausgangsquelle den Kopfbewegungen des Nutzers folgt, wenn dieser Kopfhörer trägt, aber nicht, wenn er Lautsprecher verwendet.
- Ermöglicht es Nutzern, ihr Ausgabegerät in den Spieleinstellungen auszuwählen, und stellt sicher, dass die Sounds im Spiel von den richtigen Positionen ausgehen, indem sie die Kopfposition in Bezug auf das Ausgabegerät berücksichtigen.
Content.
- Geben Sie dem User einen Körper. Nach unten zu schauen und keinen Körper zu haben, ist beunruhigend, während alles, von einer vagen, geisterhaften Präsenz bis hin zu einem vollständigen Charakter-Avatar, viel dazu beitragen kann, den User in der virtuellen Umgebung zu erden.
- Berücksichtigen Sie die Größe und Textur Ihres Kunstwerks wie bei jedem System, bei dem die visuelle Auflösung ein Problem darstellt (z.B. sehr dünne Objekte vermeiden).
- Unerwartete vertikale Beschleunigungen außerhalb der realen Weltbewegungen des Users, wie das Gehen über unebenes oder welliges Gelände, können zu Unannehmlichkeiten führen. Erwägen Sie, Ihre Laufflächen abzuflachen oder den Blickwinkel des Users zu beruhigen, wenn Sie ein solches Gelände durchqueren.
- Seien Sie sich bewusst, dass Ihr User ein beispielloses Maß an Immersion hat, und erschreckende oder schockierende Inhalte können einen tiefgreifenden Einfluss auf Nutzer haben, wie es in früheren Medien nicht möglich war. Stellen Sie sicher, dass die Spieler vor solchen Inhalten gewarnt werden, damit sie entscheiden können, ob sie damit umgehen können oder nicht.
- In VR kann es eine faszinierende Erfahrung sein, sich einfach nur interessante Formen und Texturen anzusehen. Inhalte, die beim Abspielen auf einem Monitor einfach nur als Fensterdekoration dienen, können selbst ein Hauptaugenmerk von VR sein.
- Verlassen Sie sich nicht nur auf den stereoskopischen 3D-Effekt, um Ihren Inhalten Tiefe zu verleihen. Beleuchtung, Textur, Parallaxe (die Art und Weise, wie sich Objekte in Bezug zueinander zu bewegen scheinen, wenn sich der Nutzer bewegt, und andere visuelle Merkmale sind ebenso wichtig, um den User Tiefe und Raum zu vermitteln.
- Entwerfen Sie Umgebungen und Interaktionen, um den Bedarf an Strafing, Back-Stepping oder Spinning zu minimieren.
- Die kontinuierliche Vorwärtsbewegung ist für User in einer virtuellen Umgebung am komfortabelsten.
- Menschen bewegen in der Regel ihren Kopf/Körper, wenn sie ihren Blick auf einen Punkt verschieben müssen, der weiter als 15-20 Grad des Blickwinkels von dem Ort entfernt ist, an den sie gerade schauen.
- Vermeiden Sie es, den User zu so großen Verschiebungen zu zwingen, um Muskelermüdung und -belastung zu vermeiden.
- Vergessen Sie nicht, dass der User wahrscheinlich jederzeit in eine beliebige Richtung blicken wird. Stellen Sie sicher, dass dieser nichts sieht, was seine Immersion stören könnte.
Gesundheit und Sicherheit.
Lesen und implementieren Sie sorgfältig die Warnhinweise, die dem Rift (Anhang L) beiliegen, um die Gesundheit und Sicherheit sowohl für Sie, den Entwickler als auch für Ihre User zu gewährleisten.
Vielen Dank für Ihren Besuch.