Udostępnij za pomocą


UMG i klawiatura w Unreal

Unreal Motion Graphics (UMG) to wbudowany system interfejsu użytkownika aparatu Unreal Engine, używany do tworzenia interfejsów, takich jak menu i pola tekstowe. Interfejsy użytkownika utworzone za pomocą UMG składają się z widżetów. Przeprowadzimy Cię przez proces tworzenia nowego widżetu, dodawania go do przestrzeni światowej i włączania interakcji przy użyciu klawiatury systemowej jako przykładu. Więcej informacji na temat usługi UMG można uzyskać w oficjalnej dokumentacji unreal engine.

Tworzenie nowego widżetu

  • Utwórz strategię widżetu, aby ułożyć interfejs użytkownika gry:

Zrzut ekranu przedstawiający dodawanie strategii widżetu z menu Unreal

  • Otwórz nową strategię i dodaj składniki z palety do kanwy. W tym przypadku dodaliśmy dwa składniki pola tekstowego z sekcji "Dane wejściowe":

Zrzut ekranu przedstawiający okno hierarchii z wyróżnionym i rozwiniętym składnikiem widżetu tekstu

  • Wybierz widżet w oknie Hierarchia lub Projektant i zmodyfikuj parametry na panelu szczegółów. W tym przypadku dodaliśmy domyślny "Tekst wskazówki" i kolor odcienia, który pojawia się po umieszczeniu wskaźnika myszy nad polem tekstowym. W przypadku interakcji z urządzeniem HoloLens pole tekstowe spowoduje wyskakujące klawiaturę wirtualną:

Zrzut ekranu przedstawiający zmodyfikowane parametry w oknie hierarchii

  • Zdarzenia można również subskrybować w panelu szczegółów:

Zrzut ekranu przedstawiający zdarzenia na panelu szczegółów

Dodawanie widżetu do obszaru świata

  • Utwórz nowy aktor, dodaj składnik Widget i dodaj aktora do sceny:

Zrzut ekranu przedstawiający aktora z dołączonym widżetem

  • W panelu szczegółów widżetu ustaw klasę widżetu na utworzoną wcześniej strategię widżetu:

Zrzut ekranu przedstawiający panel szczegółów strategii z zestawem klas widżetu

  • W przypadku widżetu tekstowego upewnij się, że pozycja Odbierz dane wejściowe sprzętu nie jest zaznaczona, dlatego aktualizujemy jego tekst tylko z klawiatury wirtualnej:

Zrzut ekranu przedstawiający sekcję interakcji z brakiem zaznaczenia danych wejściowych sprzętu

Interakcja widżetu

Widżety UMG zwykle odbierają dane wejściowe z myszy. Na urządzeniu HoloLens lub VR musimy zasymulować mysz za pomocą składnika Interakcji widżetu, aby uzyskać te same zdarzenia.

  • Utwórz nowy aktor, dodaj składnik Interakcji widżetu i dodaj aktora do sceny:

Zrzut ekranu przedstawiający nowego aktora z wyróżnionym składnikiem interakcji widżetu

  • W panelu szczegółów składnika Interakcja widżetu:
    • Ustaw odległość interakcji na wartość odległości, której chcesz użyć
    • Ustawianie źródła interakcji na wartość niestandardową
    • W przypadku programowania ustaw wartość Pokaż debugowanie na true:

Zrzut ekranu przedstawiający właściwości składnika interakcji widżetu i debugowania

Ustawieniem domyślnym dla źródła interakcji jest "World", który powinien wysyłać raycasty na podstawie pozycji światowej składnika Interakcji widżetu. W AR i VR tak nie jest. Włączenie opcji "Pokaż debugowanie" i dodanie odcienia aktywowania do widżetów jest ważne, aby sprawdzić, czy składnik interakcji widżetu robi to, czego oczekujesz. Obejście polega na użyciu niestandardowego źródła i ustawić raycast na grafie zdarzeń z ręki.

W tym miejscu wywołujemy to z znacznika zdarzeń:

Strategia znacznika zdarzeń

Następnie dodaj zdarzenia wirtualnego wskaźnika myszy do składnika interakcji widżetu reagującego na dane wejściowe urządzenia HoloLens. W takim przypadku wyślij zdarzenie naciśnięcia lewej myszy, gdy ręka zostanie uchwycona, a zdarzenie zwolnienia lewej myszy, gdy nie zostanie uchwycone:

Strategia z dodanymi wirtualnymi zdarzeniami wskaźnika myszy

Teraz po wdrożeniu aplikacji na urządzeniu HoloLens 2 zobaczysz promienie dłoni rozciągające się od prawej strony. Jeśli kierujesz go do jednego z edytowalnych pól tekstowych i naciśnij powietrze, klawiatura systemowa pojawi się przed Tobą i pozwoli na wprowadzanie tekstu.

Uwaga

Klawiatura systemowa Urządzenia HoloLens wymaga aparatu Unreal Engine 4.26 lub nowszego. Ponadto klawiatura nie będzie wyświetlana, gdy aplikacja jest przesyłana strumieniowo z edytora Unreal do zestawu słuchawkowego, tylko wtedy, gdy aplikacja jest uruchomiona na urządzeniu.

Zobacz też: