Uwagi

Unity, OpenXR i WebXR to wszechstronne zestawy narzędzi do tworzenia różnych interakcji w środowiskach wciągającej rzeczywistości. Celem jest opracowanie aplikacji z funkcją obrazu 360°, z którymi użytkownicy mogą wchodzić w interakcje, korzystając z dotychczasowych doświadczeń. Możesz projektować wszystko, od prostych gestów po skomplikowane symulacje oparte na fizyce.

Pamiętaj, że aplikacje Unity, OpenXR i WebXR działają tylko w trybie Full Space.

Więcej informacji o zasadach projektowania w Androidzie XR

Wejścia

Aplikacje XR mogą zawierać interakcje z wykorzystaniem śledzenia dłoni, oczu i twarzy, gestów, poleceń głosowych oraz tradycyjnych urządzeń wejściowych, takich jak klawiatury, myszy i kontrolery. Zastanów się, jakich danych wejściowych będzie potrzebować Twoja aplikacja, aby zapewnić użytkownikom naturalne i dostępne w łatwy sposób funkcje.

  • Obsługuj znane gesty, aby skrócić czas nauki obsługi aplikacji. Podczas interakcji z interfejsem 2D używaj standardowych gestów systemowych, takich jak zbliżanie i oddalanie. W przypadku interakcji 3D, takich jak podnoszenie i rzucanie piłką, należy zaprojektować gesty, które odzwierciedlają interakcje w rzeczywistym świecie. Opcja ta opiera się na dotychczasowej wiedzy użytkownika i zmniejsza potrzebę korzystania z samouczków.
  • Jeśli dodatkowe gesty są konieczne, upewnij się, że są łatwe do nauczenia się, zapamiętania i wykonywania. Unikaj skomplikowanych gestów wieloetapowych lub nienaturalnych pozycji, które mogą powodować dyskomfort i zmęczenie. Zastanów się, czy nie warto udostępnić użytkownikom przewodników, które pomogą im nauczyć się używać gestów.
  • Zadbaj o to, aby aplikacja była wygodna w użyciu zarówno dla osób lewo-, jak i praworęcznych. Jeśli to niemożliwe, zastosuj ustawienie preferencji dotyczącej dłoni dominującej.
  • Interakcje wymagające użycia obu rąk mogą być wciągające, ale mogą być trudne dla użytkowników o ograniczonej sprawności ruchowej. Priorytetowo traktować interakcje wymagające użycia jednej ręki. Jeśli gesty dwuręczne są niezbędne, podaj alternatywne metody jednoręczne, które dają ten sam efekt.
  • Aplikacje Unity, OpenXR i WebXR nie korzystają automatycznie z kompilacji z poziomu sterowania Androida. Rozważ wdrożenie stosu wstecz, aby umożliwić użytkownikom korzystanie z gesty wstecz w Androidzie XR w celu cofania działań lub powrotu do poprzedniego stanu za pomocą nawigacji za pomocą gestów.

Dwie osoby korzystające z nawigacji za pomocą gestów.

Interfejs użytkownika

Elementy interfejsu użytkownika, takie jak przyciski, panele i tekst, są niezbędne do naturalnych interakcji w aplikacjach XR. Projekt powinien przede wszystkim zapewniać użytkownikom płynną i intuicyjną obsługę. Wybór konkretnego projektu interfejsu zależy od unikalnych wymagań aplikacji.

  • Umieść główne elementy interaktywne i kluczowe treści w naturalnym polu widzenia użytkownika. Zwiększa to widoczność i zapewnia wygodę. Zastanów się, jak użytkownicy mają wchodzić w interakcję z interfejsem, aby określić, w jakiej odległości powinien się on znajdować. Czy na przykład celuje laserem, czy dotyka przycisków palcami? Skonfiguruj rozmiar interfejsu na podstawie odległości od użytkownika. Przeczytaj przewodnik po rozmiarach i skali w Androidzie XR.
  • Podczas projektowania interaktywnych elementów interfejsu, takich jak przyciski, weź pod uwagę sposób, w jaki użytkownicy mają z nimi wchodzić w interakcje, poziom dokładności wymagany w przypadku każdej metody wprowadzania danych (śledzenie dłoni lub myszy) oraz odpowiednio dostosuj takie czynniki, jak rozmiar celu i odstęp. Upewnij się, że pozycje elementów interfejsu umożliwiają wygodne interakcje. wizualne potwierdzenie działań użytkownika; Przeczytaj wytyczne dotyczące stylu w Androidzie XR.
  • Interfejs 2D, np. panele, dobrze sprawdza się w przypadku interakcji opartych na menu. Interfejs 3D, taki jak fizyczne przyciski, dźwignie i przełączniki, może zwiększyć immersję podczas interakcji z środowiskami przestrzennymi. Uważne zrównoważenie interakcji opartych na panelach, które zapewniają wysoką czytelność, i obiektów 3D, które umożliwiają interakcje z otoczeniem, może stworzyć wciągające środowisko.
  • Zadbaj o czytelność tekstu – użyj odpowiednich rozmiarów, typów i wartości kontrastu czcionek. Umieść interfejs użytkownika w takim miejscu, aby użytkownicy mogli wygodnie czytać tekst. Użyj czcionek w formacie Signed Distance Field, aby uzyskać płynne renderowanie tekstu w różnych rozmiarach czcionki. Zapoznaj się z przewodnikiem typografii w Androidzie XR.

Osoba jest całkowicie zanurzona w środowisku przestrzennym na bardzo dużym ekranie. Osoba stoi na skałach, a elementy interfejsu są w zasięgu ręki.

Interakcje przestrzenne

Niektóre z najbogatszych interakcji w XR polegają na tym, że użytkownik może wchodzić w bezpośrednie interakcje z obiektami 3D. Może to być tak proste, jak podniesienie, sprawdzenie i rzucenie jakiegoś przedmiotu. Obejmuje ona też bardziej złożone interakcje, takie jak dźwignie, przyciski i elementy, które użytkownik już trzyma, np. rozpylanie sprayu. W przypadku intuicyjnych interakcji z obiektami 3D należy zaprojektować interfejs na podstawie wiedzy użytkownika o świecie.

  • Jeśli chcesz tworzyć realistyczne działania, rozważ zintegrowanie silnika fizyki. Jeśli korzystasz z Unity, możesz użyć wbudowanego silnika fizyki. Zwróć uwagę na to, ile mocy obliczeniowej zużywają silniki fizyki, i zoptymalizuj wydajność.
  • Ważniejsze jest, aby obraz był wiarygodny, niż realistyczny. Jeśli na przykład użytkownik uważa, że rzucił piłką bardzo mocno, aplikacja powinna dodać do tego rzutu dodatkową siłę, której nie wykrywają czujniki urządzenia.
  • Obiekty powinny być budowane w sposób odpowiadający ich możliwościom. Oznacza to, że w aplikacji należy uwzględnić wszystkie możliwe działania, które użytkownik może wykonać na obiekcie lub z jego udziałem. Na przykład pączek można podnieść, rzucić i zjeść. Zamiast jedzenia pączka aplikacja może wyświetlić komunikat głosowy „Nie jestem teraz głodny”. Te rozwiązania odpowiadają działaniom, które użytkownik może wykonać za pomocą pierścienia.
  • Obiekty mogą być trzymane za pomocą różnych technik, takich jak łączenie, jointy fizyczne, śledzenie i siły fizyczne. Każda z tych technik ma swoje zalety i wady. Zanim zastosujesz niestandardową metodę pobierania, musisz zbadać i przetestować różne podejścia, aby wybrać najbardziej odpowiednie.
  • Ergonomia jest ważna podczas projektowania w środowisku 3D. Aby ułatwić dostęp, rozważ dodanie uchwytu do płaskich powierzchni, aby użytkownik mógł dostosować urządzenie do wygodnej wysokości. Pamiętaj, aby przetestować każdy obiekt w pomieszczeniu z udziałem różnych użytkowników, ponieważ każdy ma inną budowę ciała.

Job Simulator, w pełni wciągająca gra VR, w której użytkownik siedzi przy starym komputerze w biurze. Gra zawiera wirtualne ręce, które mogą wchodzić w interakcje z obiektami 3D.

Projektowanie sceny

Sceny mogą obejmować wciągające światy wirtualne i doświadczenia rzeczywistości rozszerzonej, które łączą elementy wirtualne z rzeczywistym otoczeniem użytkownika. Zaprojektuj sceny, które są wygodne, funkcjonalne i wykorzystują unikalne możliwości XR.

  • Ogranicz sceny, w których użytkownik się porusza, np. sceny lotu. Może to powodować dyskomfort, zwłaszcza jeśli ciało użytkownika pozostaje nieruchome. Niektóre techniki lokomocy, takie jak widzenie tunelowe (opisane w następnym rozdziale), pomagają zmniejszyć dyskomfort.
  • Aby tworzyć treści w środowisku mieszanej rzeczywistości, możesz korzystać z funkcji analizowania sceny w Android XR, aby integrować obiekty wirtualne z fizycznym otoczeniem użytkownika.
  • W przypadku aplikacji rzeczywistości wirtualnej warto uwzględnić w przestrzeni wirtualnej ograniczone widoki świata rzeczywistego. Dzięki temu użytkownicy mogą mieć świadomość otoczenia i interagować się z rzeczywistymi obiektami bez wychodzenia z wirtualnego świata.

Locomotion

Zalecamy, aby w Androidzie XR użytkownicy mogli swobodnie poruszać się w swojej przestrzeni fizycznej zdefiniowanej przez skonfigurowane granice. Niektórzy użytkownicy uważają na przykład, że wirtualne treści są bardziej wciągające, gdy są one oparte na nieruchomej przestrzeni. Jeśli oczekujesz, że użytkownicy będą się poruszać w większej przestrzeni wirtualnej niż pozwala na to granica, rozważ użycie technik poruszania się, które wzmacniają ruch, np. teleportację.

Teleportacja polega na tym, że użytkownik wskazuje i wybiera lub używa kontrolera, aby natychmiast przenieść się do nowej lokalizacji. Jest to świetny sposób na szybkie pokonanie dużych odległości. Często jest to też metoda poruszania się, która powoduje najmniejsze mdłości. Krótkie przyciemnienie ekranu podczas przejścia może dodatkowo zmniejszyć dyskomfort.

Inne metody przemieszczania się

Jeśli używasz innych metod poruszania się, rozważ oferowanie teleportacji jako alternatywy.

  • Chodzenie w miejscu z wymachami ramion: symuluj chodzenie, machając rękami lub przesuwając kontroler w górę i w dół. Niektórzy użytkownicy mogą uznać to za męczące lub mniej intuicyjne.
  • Ruch ciągły: do poruszania się w środowisku za pomocą wirtualnego awatara możesz używać joysticka lub grzybka na kontrolerze. W większości przypadków należy unikać tej metody, ponieważ jest ona częstą przyczyną choroby lokomocyjnej.

Jeśli zdecydujesz się użyć w swojej grze lokomotywy, zaoferuj kilka opcji, aby uwzględnić indywidualne preferencje i zwiększyć wygodę użytkowników.

Choroba lokomocy może wystąpić, gdy występuje rozbieżność między ruchem fizycznym użytkownika a jego wirtualnym doświadczeniem. Aby zoptymalizować komfort użytkownika podczas poruszania się:

  • Upewnij się, że wirtualny horyzont pozostaje stabilny i poziomy.
  • Jeśli wymagany jest ciągły ruch, unikaj przyspieszania i spowolniania. Zachowaj stałą prędkość.
  • Widok tunelowy może zmniejszyć chorobę lokomocy, ponieważ zawęża pole widzenia użytkownika podczas ruchu, a efekt winietowania ogranicza ruch postrzegany na obrzeżach.
  • W przypadku obracania możesz przypiąć widok użytkownika do określonych kątów. Może to powodować dezorientację, ale zmniejszy chorobę lokomocy.
  • Użytkownicy mają różny poziom tolerancji. Pozwól im dostosować ustawienia komfortu do własnych preferencji, na przykład wybrać sposób poruszania się, włączyć lub wyłączyć widok tunelowy albo dostosować prędkość poruszania się.

Dźwięk przestrzenny

Dźwięk jest potężnym narzędziem do tworzenia dźwiękowych pejzaży, które przenoszą użytkowników do innego świata i wywołują określone emocje. Dźwięk przestrzenny precyzyjnie umieszcza dźwięki w środowisku wirtualnym.

  • Ambisonics to coś w rodzaju skyboxa dla dźwięku, który zapewnia użytkownikom wciągający dźwięk. Używaj ambisonicznego dźwięku do dźwięków tła lub w innych sytuacjach, w których chcesz odtworzyć pełne dźwiękowe pole wokół słuchacza.
  • Wskazówkami dźwiękowymi w przestrzeni można przyciągać uwagę użytkownika.
  • Używaj dźwięków przestrzennych, aby zwiększyć realizm.
  • Przestrzeń dźwiękowa dostosowana do lokalizacji głośnika daje użytkownikom poczucie obecności, nawet jeśli nie patrzą bezpośrednio na głośnik.
  • Zezwalanie użytkownikom na dostosowywanie dźwięku. Mogą na przykład wyłączyć lub zmienić głośność muzyki w tle, efektów dźwiękowych lub ścieżki dźwiękowej.
  • Rozważ dodanie napisów dla osób niesłyszących i niedosłyszących.

Więcej informacji o wygodzie

Aby priorytetem było ułatwienie dostępu, oferuj opcje dostosowywania, które uwzględniają różne potrzeby i preferencje. Dzięki temu większa liczba użytkowników będzie mogła korzystać z wrażeń VR.

  • Uruchom aplikację z częstotliwością 72 FPS: pomoże to zminimalizować zacięcia obrazu i zapobiegnie nudnościom.
  • Przyznaj użytkownikom kontrolę: aby Twoja aplikacja była przyjazna dla użytkowników o różnym stopniu zaznajomienia z XR, pozwól im dostosować ustawienia. Zastanów się nad umożliwieniem użytkownikom zmiany przypisania przycisków i gestów kontrolera, aby dostosować je do ich potrzeb lub preferencji. Na przykład użytkownicy z ograniczoną sprawnością rąk mogą korzystać z różnych układów przycisków lub większych, prostych elementów sterujących.

Wskazówki dotyczące poszczególnych platform:

Tworzenie aplikacji na potrzeby OpenXR

Tworzenie aplikacji w Unity

Dokumentacja WebXR