Trener ręczny
Trener ręczny wyzwala modelowane ręce 3D, gdy system nie wykrywa rąk użytkownika. Ta funkcja jest składnikiem "nauczania", który pomaga kierować użytkownika, gdy gest nie został nauczony. Jeśli użytkownicy nie wykonali określonego gestu przez pewien okres, ręce będą pętli z opóźnieniem. Trener hand może służyć do reprezentowania naciśnięcia przycisku lub odebrania hologramu.
Dostarczony trener ręczny
Bieżący model interakcji reprezentuje szeroką gamę kontrolek gestów, takich jak przewijanie, dalekie wybieranie i bliskie naciśnięcie. Poniżej znajduje się pełna lista istniejących gestów ręcznych dostępnych w zestawie narzędzi MRTK:
Przykład wyboru bliskiego — używany pokazuje, jak wybrać przyciski lub zamknąć obiekty umożliwiające interakcję
Przykład naciśnięcia powietrza — służy do pokazywania sposobu wybierania obiektów, które są daleko
Przykład przenoszenia obiektu w przestrzeni używanej do pokazania, jak przenieść hologram w przestrzeni
Przykład Rotate-Used pokazujący, jak obracać hologramy lub obiekty
Przykład skalowania — służy do pokazywania sposobu manipulowania hologramami w celu zwiększenia lub mniejszego rozmiaru
Przykład palmy — sugerowane użycie, aby wyświetlić menu ręczne
Przykład ręcznego przerzucania — inny sposób, aby wyświetlić menu ręczne
Przykład przewijania — służy do przewijania listy lub długiego dokumentu
Zagadnienia dotyczące projektowania
W przypadku urządzenia Hololens2 zaprojektowaliśmy interakcje ręczne na podstawie instynktownych i naturalnych gestów dłoni. Uważamy, że są one intuicyjne dla większości użytkowników, więc nie utworzyliśmy dedykowanych momentów uczenia gestów. Zamiast tego utworzyliśmy trenera ręki, aby pomóc użytkownikom dowiedzieć się o tych gestach, jeśli utkną lub nie są zaznajomieni z interakcjami hologramu. Bez chwili nauki czuliśmy, że pokazano użytkownikom, jak wykonać akcję, demonstrując, że jest to najlepsza opcja. Odkryliśmy, że użytkownicy byli w stanie ustalić gest, ale potrzebne są niewielkie wskazówki. Jeśli wykryjemy, że użytkownik nie wchodzi w interakcję z obiektem przez pewien okres, zostanie wyzwolony trener hand demonstrujący prawidłową rękę i położenie palca.
Intuicyjny
Podczas animowania rąk powinno być oczywiste i nie powinno powodować żadnych pomyłek. Animacja dłoni jest reprezentacją gestu, który próbujesz poprosić użytkownika o zrozumienie.
Jeśli na przykład chcesz, aby użytkownik nacisnął przycisk, zostanie wyzwolony naciśnięcie przycisku.
Trener ręczny demonstrujący Zbliżenie gema
Skalowanie ręczne
Przetestowaliśmy różne rozmiary dłoni z menu interfejsu użytkownika i czuliśmy, że jeśli ręce są prawdziwe do rozmiaru, dało to groźne uczucie. Jeśli były zbyt małe, trudno było zobaczyć i zrozumieć gest.
Głos i ręce
Nie oczekuj, że użytkownicy mogą słuchać jednego zestawu instrukcji za pośrednictwem głosu i watch różnych instrukcji za pośrednictwem trenera hand. Sekwencjonuj instrukcje, aby pomóc użytkownikom skupić się i konkurować o ich uwagę, aby zmniejszyć przeciążenie sensoryczne.
Czy mogę utworzyć własne?
Tak! Zachęcamy do utworzenia własnego unikatowego gestu dla twojej gry i współtworzenia społeczności! Udostępniliśmy plik Maya z sfałszowaną ręką, która może być używana dla twojej aplikacji, którą można pobrać tutaj: Pobierz HandCoach_MRTK.zip
Przykład animowanego hand Poking a box w Maya
Zalecane narzędzie do tworzenia
Wśród artystów 3D wiele decyduje się na korzystanie z Maya firmy Autodesk, która może używać urządzenia HoloLens do przekształcania sposobu tworzenia zasobów. Podany plik dłoni jest plikiem binarnym Maya, dlatego zaleca się używanie Maya do animowania i eksportowania rąk. Jeśli wolisz użyć innego programu 3D, oto . FBX: pobierz HandCoachMRTK_FBX.zip , aby utworzyć własną konfigurację kontrolera.
Jeśli używasz dostępnego do pobrania pliku maya Hand, zaleca się skalowanie rąk w dół w dół do wersji 0.6.
Sfałszowane ręce
Specyfikacje techniczne
- Dwuręczny plik jest dostępny w formacie Maya Ascii
- Prawa i lewa ręka jest dostępna w formacie binarnym Maya
- Ustaw plik Maya na 24 FP
- W pliku znajduje się lewa i prawa ręka, która może być używana w przypadku gestów z dwiema rękami lub jednoręcznych. Prawa ręka będzie widoczna tylko domyślnie.
- Zaleca się pozostawienie buforu około 10 ramek na początku i na końcu w celu zanikania
- Jeśli animowanie obiektu z określonym obiektem docelowym, najlepszym rozwiązaniem jest animowanie w polu Domyślnym lub null.
- Jeśli ręka animuje obiekt fizyczny, taki jak pole, najlepszym rozwiązaniem jest nie animowanie tłumaczenia w Maya, ale poczekaj na animowanie go w unity lub w kodzie.
- Widoczna animacja powinna mieć długość 1,5 s, aby wszelkie istotne informacje zostały przekazane
- Gdy czujesz się zadowolony z animacji:
- Zaznacz wszystkie stawy i klatki kluczowe
- Usuń kontrolery, Wybierz stawy i siatkę i eksportuj jako FBX
- Jeśli istnieje wiele animacji, możesz użyć wbudowanego eksportera gier Maya: https://knowledge.autodesk.com/support/maya/learn-explore/caas/CloudHelp/cloudhelp/2015/ENU/Maya/files/Game-Exporter-htm.html
Eksportowanie z maya
Po zakończeniu animacji
Zaznacz wszystkie stawy: wybierz pozycję > Hierarchia
Bake out animacji: Przełącz się do animacji Key > Bake Animacja >
Usuń platformę kontrolerów: konspektator > MainR_Grp lub MainL_Grp
Eksportuj jako FBX: Wybierz pozycję JNT + Mesh: Wybór eksportu plików > (pole opcji) > Eksportuj zaznaczenie
Podczas eksportowania jako FBX i wprowadzenia do aparatu Unity przeprowadź skalowanie rąk w dół do 0,6. Odkryliśmy, że jest to idealna równowaga do wyświetlania rąk.
Ustawienia aparatu Unity dla HandCoach_R prefabrykatu znalezionego w zestawie narzędzi MRTK
Implementowanie aplikacji Hands w projekcie aparatu Unity
Najlepsze rozwiązania
Zaleca się skalowanie rąk w dół do poziomu jedności do 0,6
Ręce powinny być odtwarzane dwa razy i jeśli nie zostało ukończone, to stale zapętlone do momentu ukończenia gestu. Ręce powinny być zapętlone dwa razy, aby upewnić się, że użytkownik miał czas na zarejestrowanie i zobaczyć gest. Ręce powinny zanikać i wychodzić między pętlami.
Jeśli ręce użytkownika są widoczne przez kamery HL2, ale użytkownicy nie robią interakcji potrzebne im ręce pojawią się po 10 sekundach.
Jeśli ręce użytkownika nie są widoczne przez kamery HL2, ręce pojawią się po 5 sekundach.
Jeśli ręce użytkownika są wyraźnie śledzone przez kamery HL2 w środku animacji, animacja zostanie ukończona i wyblakła.
Jeśli dołączasz głos, sugerujemy, że odpowiada gestowi ręki.
Jeśli nauczysz rąk co najmniej raz, powtarzaj gest tylko wtedy, gdy zostanie wykryty, że użytkownik utknął.
Jeśli określone położenie palca/ręki jest krytyczne, upewnij się, że użytkownicy mogą wyraźnie zobaczyć te niuanse w animacji. Spróbuj wędkować ręce, aby najważniejsze części są wyraźnie widoczne.
Jeśli zauważysz zakłócenia w rękach, musisz przejść do ustawień jakości aparatu Unity zwiększyć liczbę kości. Przejdź do pozycji Edytuj > ustawienia > projektu Jakość > innych > mas mieszanych. Upewnij się, że wybrano "4 kości", aby zobaczyć Smooth Stawy.
Czego należy unikać
- Skalowanie rąk jest zbyt duże
- Umieszczenie rąk za blisko użytkownika
- Ręce powinny być nauczane tylko raz. Nad nauczaniem może powodować zamieszanie i niechlujność
- Wprowadzenie go do aparatu Unity, pobierz najnowszą wersję zestawu NARZĘDZI MRTK tutaj: https://github.com/microsoft/MixedRealityToolkit-Unity
- Materiał: Teaching_Hand2
- Skrypty: Zapoznaj się z wytycznymi zestawu narzędzi MRTK dotyczącymi trenera ręcznego zestawu narzędzi MRTK
- Ustawienie dla projektu
- Scena ustawiona na platformę UWP: instrukcje można znaleźć w artykule Konfigurowanie nowego projektu OpenXR za pomocą zestawu narzędzi MRTK .