Projekt i wdrożenie śledzenia ręcznego w „Myst” PlatoBlockchain Data Intelligence. Wyszukiwanie pionowe. AI.

Projekt i wdrożenie śledzenia ręcznego w „Myst”

Korzystanie z Ulepszony interfejs API do śledzenia rąk na platformie Presence Platform, wprowadziliśmy śledzenie rozdań wraz z naszą najnowszą aktualizacją do Myst na platformie Meta Quest pod tytułem „Hands & More”. Jesteśmy bardzo podekscytowani, że w końcu pozwolimy ludziom grać Myst na Quest bez fizycznych kontrolerów! W tym poście omówimy ewolucję i iterację wdrażania śledzenia rąk w Myst— aw szczególności dodanie większej obsługi w Unreal Engine 4.27.2.

Projekt i wdrożenie śledzenia ręcznego w „Myst” PlatoBlockchain Data Intelligence. Wyszukiwanie pionowe. AI.Artykuł gościnny Hannah Gamiel

Hannah Gamiel jest dyrektorem ds. rozwoju w Cyan— studio stojące za oryginałemTajemnica gry — i pomogła w opracowaniu nowego Tajemnica (2020)”, który obejmuje obsługę VR. Początkowo wywodząca się z czysto technicznego zaplecza, teraz pomaga prowadzić produkcję we wszystkich tytułach oraz zarządza wysiłkami biznesowymi i technicznymi w Cyan. Pracowała przy tytułach takich jak „Myst” (2020), „The Witness”, „Braid, Anniversary Edition”, „Obduction”, „Firmament” (wkrótce!) i nie tylko.

Faza projektowania i rozważania

Projektowanie nawigacji do śledzenia dłoni

Zdjęcie wskazujące, dokąd chcesz się udać. Prawdopodobnie pomyślałeś o wskazaniu, prawda? Dlatego zdecydowaliśmy się użyć metody „wskazywania” do poruszania się w Myst.

Kiedy jesteś w trybie teleportacji, możesz wskazać, gdzie chcesz się udać, a pierścień teleportacji pojawi się w miejscu docelowym. Kiedy 'un-point' (poprzez wyciągnięcie reszty palców lub po prostu wciągnięcie palca wskazującego z powrotem do dłoni), teleportacja jest wykonywana.

Gdy jesteś w trybie płynnego ruchu, wskazywanie ręką dominującą w swobodnym ruchu (którą można skonfigurować w naszych ustawieniach sterowania, ale domyślnie jest to lewa ręka) zacznie płynnie przesuwać Cię w kierunku, w którym wskazujesz.

Podczas testowania ruchu ze wskazywaniem stwierdziliśmy, że śledzenie dłoni palcem wskazującym i środkowym może być czasami zawodne, gdy jest on zasłonięty przez resztę dłoni. System nie jest pewien, czy te palce są całkowicie skierowane, czy całkowicie „zamknięte” w dłoni. Dodaliśmy do kodu odrobinę „krówki”, aby uwzględnić bardziej stabilne inicjowanie/wykonywanie ruchu na tym froncie — o czym zajmiemy się nieco później, gdy będziemy omawiać zmiany wprowadzone w gotowym do użycia śledzeniu rąk wsparcie w Unreal Engine.

Obrócenie

Metoda „punkt” nie działa we wszystkich zastosowaniach nawigacji. Jeśli chodzi o skręcanie, początkowo połączyliśmy wskazywanie z rotacją nadgarstka. Porównanie nadgarstka gracza i wektora kamery do przodu wskazuje kierunek skrętu (i jak duży powinien być skręt). Próbowaliśmy tego początkowo, ponieważ wydawało się intuicyjne, aby utrzymać motyw „wskazywania” podczas nawigacji między wszystkimi trybami.

Jednak w testach komfortu pojawiły się komplikacje. Podczas testów większość graczy wskazywałaby do przodu, z dłonią skierowaną w ziemię, jak to zwykle bywa podczas próby wskazania czegoś poza grą. Obracanie nadgarstka w lewo i w prawo (wokół górnej osi nadgarstka), gdy masz dłoń skierowaną do ziemi, jest trudne i ma bardzo ograniczony zakres ruchu, zwłaszcza jeśli próbujesz odwrócić się od klatki piersiowej.

Ten problem jest taki sam, nawet jeśli poprosisz gracza, aby wskazał coś przed nim dłońmi skierowanymi do wewnątrz. Możesz zgiąć nadgarstek w w kierunku trochę ciała, ale nie będziesz mieć tego samego zakresu ruchu odginając nadgarstek od ciała.

Jak więc to rozwiązaliśmy? Skończyło się na przypisaniu obracania do gestu „kciuk w górę” zamiast gestu wskazującego palcem wskazującym.

Wyobraź sobie, że podnosisz kciuki. Teraz obróć nadgarstek w prawo i lewo. Zwróć uwagę, że nawet jeśli nie masz dużego zakresu ruchu, nadal dość konsekwentnie wskazujesz kciukiem „w lewo” i „w prawo” w tym geście.

To właśnie zdecydowaliśmy się włączyć w trybie śledzenia dłoni. Chociaż wskazywanie kciukiem nie wydaje się najbardziej intuicyjnym sposobem obracania, to zrobił w końcu jest to najwygodniejszy i najbardziej spójny sposób robienia tego.

Przy szybkim obrocie, obrót nadgarstka w lewo lub w prawo z pozycji kciuka do góry powoduje zainicjowanie pojedynczego obrotu. Następnie musisz cofnąć rękę na „środkową” (wyprostowaną) pozycję, aby zresetować snap i dodatkowo poczekać na bardzo krótki czas odnowienia, aby ponownie zainicjować snap turn.

Dzięki płynnemu skręcaniu, obracanie nadgarstka w pozycji kciuka do góry zacznie obracać się w lewo lub w prawo – gdy opuścisz „martwą strefę”, która zapobiega wystąpieniu skrętu, dopóki nie przekroczysz progu.

Radzenie sobie z konfliktami między pozycjami związanymi z ruchem i interakcją obiektów

Oczywiście wskazywanie palcem jest zbyt szerokim gestem, aby można było założyć, że służy tylko do nawigacji. Ludzie będą wykonywać ten sam gest wskazujący, aby naciskać przyciski lub wchodzić w interakcje z innymi rzeczami na świecie z przyzwyczajenia lub własnych oczekiwań. Byłoby dość drażniące, aby podejść (ale nie prawo do) przycisku, wskaż palcem, aby go nacisnąć, a następnie nagle (i niechcianie) zbliż się do niego w grze (lub niechcący zainicjuj teleportację)!

Sposób, w jaki zapobiegamy wystąpieniu ruchu, gdy gracz może wchodzić w interakcję z czymś, polega na zapobieganiu wyzwoleniu jakiegokolwiek kodu ruchu, gdy ręka wykonująca gest „ruchu” znajduje się w pewnym zakresie interakcji obiektu. Ten zakres był wielokrotnie poprawiany, aby uzyskać dobry „słodki punkt” na podstawie testów gry.

Odkryliśmy, że ten słodki punkt znajduje się około 25 cm od miejsca, w którym znajduje się czubek palca wskazującego. Myst jest pełen interaktywnych obiektów o różnych rozmiarach (wszystko od małych przycisków po bardzo duże dźwignie) rozmieszczonych zarówno w szeroko otwartych przestrzeniach, jak i w wąskich korytarzach, więc ustalenie tej liczby zajęło nam sporo testów. Początkowo próbowaliśmy 60 cm (około dwóch stóp), ale to zapobiegało występowaniu ruchu, gdy gracze nadal musieli zbliżyć się do obiektu. Podobnie wszystko poniżej 25 cm powodowało niepożądane ruchy gracza, gdy próbowali złapać lub dotknąć przedmiotu.

Jednym z naszych najlepszych obszarów testowych była sala generatora na Myst Island, gdzie przechodzisz przez wąskie wejście, a następnie natychmiast wita Cię panel pełen przycisków. Gdy obszar testowania interakcji był zbyt duży, gracze nie mogli przejść przez wejście w kierunku panelu, ponieważ wykryli przyciski w zasięgu palca wskazującego.

To powiedziawszy, 25 cm jest tym, na co się sprawdziło Myst. Inne gry mogą wymagać dostosowania tej liczby, jeśli chcą wdrożyć coś podobnego, mając na uwadze własne kryteria.

Projektowanie interakcji z obiektami w celu śledzenia dłoni

W tej chwili wszystkie możliwe do chwytania interakcje w Myst są stworzone do pracy z ręcznym śledzeniem — obracaniem zaworów, otwieraniem drzwi, naciskaniem przycisków, przewracaniem stron książek i tak dalej.

Interakcje odwracają się od tego, do czego już się przygotowaliśmy Myst z kontrolerami dotykowymi. Tam naciśnięcie przycisku uchwytu automatycznie łączy siatkową reprezentację twojej dłoni w grze w pozę „złapanej”, albo zaciskając dłoń w pięść (jeśli jest pusta), albo chwytając przedmiot. Dzięki śledzeniu rąk dodaliśmy kod, który zgadnie, kiedy podwiniesz palce na tyle, aby „chwycić” coś i zainicjować tę samą logikę, o której wspomniano wcześniej.

Na przykład, gdy używasz śledzenia dłoni i Twoja dłoń unosi się nad czymś, co można chwycić, kolor Twojej dłoni zmienia się na pomarańczowy (dokładnie dzieje się to, gdy nie używasz śledzenia dłoni w Myst VR również). Kiedy chwytasz interaktywny obiekt, zaczynając zwijać palce w pięść, pomarańczowa kula zastępuje siatkę dłoni i wskazuje, gdzie dłoń jest przyczepiona do obiektu.

Powodem, dla którego zdecydowaliśmy się na tę metodę zamiast tworzenia niestandardowych siatek możliwych do postawienia dla twoich dłoni – lub pozwalając, aby twoje dłonie/palce wydawały się fizycznie wchodzić w interakcję z częściami tych obiektów – jest to, że chcieliśmy, aby interakcje były zgodne z tym, co oferujemy na razie po stronie kontrolera Touch.

Jednak naciskanie przycisków działa inaczej. Nie ma potrzeby abstrahowania, ponieważ przyciski nie są obiektami, które można chwycić, a zamiast tego pozwalamy po prostu nacisnąć przycisk za pomocą wygenerowanych zderzaczy kapsułek między każdym ze stawów palców na ruchomej siatce dłoni. Z tego powodu możesz robić różne dziwne i zabawne rzeczy — na przykład używać tylko małego palca lub knykcia palca serdecznego do interakcji z każdym przyciskiem w grze, jeśli naprawdę chcesz.

Ta implementacja różni się nieznacznie od sposobu, w jaki kontrolery dotykowe oddziałują z przyciskami w grze, ponieważ zwykle oczekujemy od graczy użycia przycisku uchwytu na kontrolerze, aby ustawić rękę jako ustawioną siatkę „wskazującą palcem” w celu uzyskania dokładnego przycisku w grze naciśnij na ich końcu. Dzięki śledzeniu dłoni istnieje oczywiście znacznie większa elastyczność w pozy, którą możesz tworzyć dłonią, a zatem znacznie więcej sposobów naciskania przycisków z tym samym poziomem dokładności.

Interakcje w menu/UI

Jeśli chodzi o interakcję z menu, opracowaliśmy ten sam paradygmat interakcji, którego Meta używa na platformie Quest: szczypta dwoma palcami między kciukiem a palcem wskazującym w obu dłoniach. Można to wykorzystać zarówno do otwarcia naszego menu w grze, jak i interakcji z elementami w menu. Nie ma sensu wymyślać koła na nowo, gdy gracze są już tego nauczeni w menu na poziomie systemu operacyjnego, gdy po raz pierwszy włączają śledzenie rozdań w Quest!

Informowanie o tym wszystkim graczowi

Ponieważ śledzenie rozdań nie jest tak powszechnym elementem wejściowym w grze Quest, jak kontrolery dotykowe, a także dlatego, że niektóre osoby mogą grać Myst po raz pierwszy (lub nawet grając w ich pierwszą grę VR!), staraliśmy się brać pod uwagę sposób, w jaki przekazujemy graczowi wszystkie te informacje o śledzeniu rozdań. Upewniliśmy się, że dołączyliśmy inną wersję naszego „schematu kontrolera” specjalnie dostosowaną do opisywania interakcji śledzenia dłoni (jeśli jest włączona w Myst) i pokazujemy graczom specjalne powiadomienia, które dokładnie informują, jak poruszać się rękami.

Ponadto pomyśleliśmy, że konieczne będzie przypomnienie graczowi, jak po włączeniu mieć płynne śledzenie rąk. Gracz zostaje powiadomiony za Myst, że stabilność śledzenia dłoni jest znacznie lepsza, jeśli upewnią się, że znajdują się w dobrze oświetlonym pomieszczeniu i trzymają ręce w ich polu widzenia.

Meta informuje również graczy, że są one kluczem do dobrze śledzonego środowiska śledzenia rozdań, ale zdajemy sobie sprawę, że niektórzy gracze mogą wskoczyć do gry, nie analizując najpierw powiadomień Meta o tym, więc postanowiliśmy przypomnieć ludziom, na wypadek gdyby zapomnieli.

Kontynuuj na stronie 2: Modyfikacje silnika wykonane w Unreal »

Znak czasu:

Więcej z Droga do rzeczywistości wirtualnej