Udostępnij za pośrednictwem


Chwytaj, trzymaj i rzucaj z interakcjami

Omówienie

Mesh Interactables to system służący do konfigurowania obiektów za pomocą skryptów aparatu Unity definiujących interakcję z zachowaniem obiektu lub awatara w czasie wykonywania. Skrypty definiują właściwości obiektu, z którymi można korzystać przy użyciu funkcji interakcji XRI. Zestaw narzędzi mesh zawiera skrypty różnych typów obiektów, które można zdefiniować. Po uruchomieniu projektu konfiguruje wszystkie niezbędne prefabrykaty i ustawienia wymagane dla obiektów lub awatara do zachowania się zgodnie z definicją. Jeśli chcesz zobaczyć przybliżony podgląd wyglądu i działania obiektów, które można wchodzić w interakcje, i jak po uruchomieniu w aplikacji mesh, pamiętaj o skonfigurowaniu trybu emulacji siatki. Należy pamiętać, że funkcja IK widoczna w aplikacji Mesh nie jest dostępna w trybie emulacji siatki.

Składnik Konfiguracji z możliwością interakcji z usługą Mesh

Aby obiekt był w stanie współdziałać, należy dodać składnik Konfiguracja z możliwością interakcji z usługą Mesh.

  1. W hierarchii wybierz obiekt.
  2. W inspektorze kliknij przycisk Dodaj składnik , a następnie wybierz pozycję Konfiguracja z możliwością interakcji z usługą Mesh.

Zrzut ekranu okna dialogowego Dodawanie składnika z wybraną pozycją Mesh Interactable Setup.

Składnik jest dodawany i z domyślną właściwością Typ obiektu ustawioną na Interakcję. (Typy obiektów zostaną wyjaśnione w następnej sekcji).

Zrzut ekranu przedstawiający składnik Konfiguracji możliwej do interakcji z usługą Mesh z typem obiektu ustawionym na interakcję.

Właściwości grupy obiektów, które zachowują się tak samo, można skonfigurować za pomocą nadrzędnego składnika Konfiguracji z możliwością interakcji z usługą Mesh. Właściwości zostaną zastosowane do wszystkich elementów podrzędnych ze sztywnymibodami w czasie wykonywania przez automatyczne dodanie składnika Mesh Interactable Body do każdego obiektu podrzędnego. Możesz ręcznie dodać treść współdziałającą z usługą Mesh, aby używać funkcji Mesh współdziałających ze skryptami wizualnymi, takich jak zdarzenia interakcji lub zmodyfikować manipulowalny element docelowy za pomocą skryptu wizualizacji.

Zrzut ekranu składnika Mesh Interactable Body.

Uwagi:

  • Treść z możliwością interakcji z siatką pozwoli każdemu interakcjom zachowywać się niezależnie.

  • Sztywny element musi zostać dodany do obiektu, jeśli chcesz, aby była włączona fizyka.

Typy obiektów z możliwością interakcji

Istnieją cztery typy obiektów:

  • Interakcja
  • Manipulable
  • Wyposażenie
  • Throwable

Aby wybrać typ obiektu:

  • W składniku Konfiguracja z możliwością interakcji z usługą Mesh kliknij listę rozwijaną Typ obiektu , a następnie wybierz jedną z czterech opcji.

Zrzut ekranu przedstawiający opcje menu Typ obiektu w składniku Treść z możliwością interakcji z siatką.

Interakcja

Jak wspomniano powyżej, jest to typ domyślny i najbardziej podstawowy. Zapewnia dostęp do wywołań zwrotnych, które można wywołać, gdy użytkownik zatrzyma wskaźnik myszy lub wybierze obiekt, do którego można reagować na inne skrypty. Jeśli na przykład masz przycisk, którego chcesz użyć do włączenia innego obiektu, dodaj ten typ do obiektu z wywołaniem zwrotnym OnSelected , aby włączyć ten inny obiekt. Przycisk będzie w pełni wchodzić w interakcje, dodając ten typ i zderzacz; Nie musisz robić nic innego.

Manipulable

Obiekt tego typu może mieć transformację manipulowaną w czasie wykonywania i przechodzi przez miejsce na końcu promienia interakcji. Kontrolki skrótów są dostępne do obracania lub tłumaczenia obiektu. W celu manipulowania obiektami w aplikacji Mesh można włączyć ustawienia IK dla awatara, aby postępować zgodnie z obiektem. Obiekty manipulowalne nie wymagają sztywnego ciała, ale należy je dodać, jeśli chcesz, aby obiekty miały możliwości fizyki.

Zrzut ekranu przedstawiający doświadczenie usługi Mesh z manipulowaną kawą.

Wyposażenie

Obiekt tego typu zostanie dołączony do ręki awatara. Kontrolki komputera do wyposażenia klikają obiekt lub naciskają klawisz "F", gdy obiekt jest zaznaczony. Kontrolki Quest dla wyposażenia naciskają przycisk "Uchwyt", gdy obiekt jest zaznaczony. Wyposażone obiekty zawierają ustawienia obiektów IK dla ramienia awatara pozować, gdy obiekt jest wyposażony. Cele IK są przesunięciem klatki piersiowej awatara; określa miejsce, w którym przechodzi ręka, gdy obiekt jest przechowywany lub aktywowany.

Throwable

Jak sugeruje nazwa, można chwycić i zgłosić obiekt tego typu. Po chwyceniu możesz wejść w tryb celowania, naciskając i trzymając lewy przycisk myszy. Pozwoli to twojemu awatarowi ramię podążać za celem myszy; aby zgłosić obiekt, zwolnij lewy przycisk myszy.

Zrzut ekranu gry dart z dart chwycony i przeczytać, aby zostać wrzucony.

Wszystkie składniki Interakcji mają właściwości interakcji i metody dostępne dla skryptów wizualnych, dzięki czemu masz nieograniczoną liczbę sposobów, aby współdziałały ze sobą.

Umożliwia interakcję obiektów z użyciem skryptów wizualnych

Jeśli chcesz skonfigurować reakcje na interakcje obiektu z użyciem skryptów wizualnych, możesz użyć składnika Mesh Interactable Body wewnątrz wykresu skryptu z węzłem do dostępnej właściwości, takiej jak OnHovered lub OnSelected, podłączona do węzła OnStateChanged . Na przykład poniższy wykres skryptu włączy cylindra po naciśnięciu przycisku i wyłączeniu go po zwolnieniu przycisku. Przycisk jest w pełni wchodzić w interakcję, dodając skrypt i zderzacz; nie musisz robić nic innego.

Zrzut ekranu grafu skryptu z treść z funkcją Interakcja z usługą Mesh jest zaznaczony węzeł.

Ustawienia

Ustawienia wspólne dla Manipulables, Wyposażenie i Throwables

Zrzut ekranu przedstawiający składnik Konfiguracji z możliwością interakcji z usługą Mesh z wyróżnionymi właściwościami typowymi dla wszystkich typów obiektów.

Promień zbliżeniowy interakcji Najdalej na odległość awatar może być interakcja z tym obiektem

Umieść kursor na ustawieniach klucza — ustawienia klucza szyfrowania, które mają być używane podczas umieszczania wskaźnika myszy na obiekcie

  • Hand Pose Shape: Kształt ręki pozuje, aby umieścić rękę awatara podczas aktywowania nad obiektem
  • Rozmiar pozy ręcznej: rozmiar ręki od 0 do 1.
  • Włącz śledzenie IK: Niezależnie od tego, czy ramię awatara osiągnie obiekt podczas umieszczania wskaźnika myszy przy użyciu określania wartości docelowej IK.
    • Ograniczenie IK Spherical: jeśli prawda, ramię IK zostanie wykonane na sferze. Spowoduje to, że ramię awatara nie trzyma się prosto.

Wyróżnianie ustawień

  • Zatrzymany/Zaznaczony: czy wyróżnić obiekt, czy jest wyróżniony, czy wybrany.

  • Mechanizm wyróżniania

    • Element menu 1: Właściwości cieniowania

      • Kolor wyróżnienia: kolor, aby ustawić właściwości koloru materiału, gdy obiekt jest wyróżniony.
      • Wyróżnianie czasu trwania przejścia: czas zanikania wyróżnienia podczas przechodzenia.
      • Wyróżnij właściwości kwoty: właściwości materiału, aby ustawić ilość wyróżnienia po zaznaczeniu. Jest to wartość zmiennoprzecinkowa.
      • Właściwości koloru wyróżnienia: właściwości materiału, aby ustawić kolor wyróżnienia po zaznaczeniu. Jest to wartość koloru.
    • Element menu 2: Kontur siatki: dodaje automatyczny kontur określonego koloru/szerokości do obiektów.

      • Kolor wyróżnienia: kolor konturu.
      • Wyróżnianie czasu trwania przejścia: czas zanikania konspektu podczas przechodzenia.
      • Wyróżnij szerokość konturu: jak gruby (w metrach) powinien być kontur. Zastępuje wartość "Extrusion Value" w materiale Narzędzia graficzne/Standardowa.
      • Materiał konspektu niestandardowego: materiał używany do renderowania konspektu.
      • Niestandardowy materiał zapisu wzornika: materiał użyty do zapisu wartości w buforze wzornika
      • Tryb wykluczeń konspektu: opcja filtrowania elementów renderujących, których nie chcesz uwzględnić w konspekcie.
    • Element menu 3: Wewnętrzny blask: stosuje wyróżnienie z efektem świecącym przy użyciu podanych właściwości.

      • Kolor wyróżnienia: kolor wewnętrznego blasku.
      • Wyróżnianie czasu trwania przejścia: czas zanikania wewnętrznego blasku/wyjścia podczas przechodzenia
      • Materiał wyróżnienia niestandardowego: opcja przesłonięcia specyficzna dla tego obiektu w celu ustawienia materiału używanego do świecenia. Jeśli to nie jest ustawione, zostanie użyty domyślny materiał z zasobu ustawień.
      • Ciąg wykluczenia: Jeśli zostanie to ustawione, dowolny obiekt gry o nazwie zawierającej ciąg wykluczenia zostanie wykluczony z wyróżnienia.

Ustawienia wyłącznie dla manipulables

Zrzut ekranu przedstawiający składnik Konfiguracji możliwej do interakcji z usługą Mesh z wyświetlonymi ustawieniami manipulowalnymi.

  • Tryb wymuszenia: Tryb, który ma być używany do wymuszenia obiektu przez spację
    • Domyślny: Domyślne zachowanie zestawu narzędzi MRTK, które przenosi obiekt przy użyciu jego środka.
    • Punkt Wiosna: Alternatywne zachowanie, które przenosi obiekt przez zastosowanie siły w punkcie chwytania (działa tylko w przypadku sztywnych)
  • Rotacja (dostępna tylko dla trybu domyślnego)
    • Włączone: określa, czy obiekt można obracać podczas manipulowania. Każda oś może być ustawiana indywidualnie.
    • Logika rotacji manipulowania
      • Ustawienie domyślne: podczas manipulowania obiektem obraca się wokół aparatu i pozostanie w tej samej orientacji względem aparatu (rzeczywiste wartości przekształcenia będą obracane).
      • Restrykcyjne: podczas manipulowania obiektem nie będzie obracać jego transformacji i nie pozostanie w tej samej orientacji względem aparatu.
  • Tłumaczenie (dostępne tylko dla trybu domyślnego) = Włączone: czy obiekt można przetłumaczyć podczas manipulowania. Każda oś może być ustawiana indywidualnie.
  • Punkt Spring (dostępny tylko dla trybu spring punktu)
    • Siła wiosny: Siła sprężyny, która ściąga obiekt. Im wyższa wartość, tym szybciej osiągnie punkt docelowy.
    • Współczynnik tłumienia: Ile tłumienia stosuje się, aby zapobiec oscylacji wokół punktu chwytania.
  • Modyfikowanie przekształcenia docelowego: Umożliwia użytkownikowi zastąpienie domyślnej transformacji i ustawienie żądanej pozycji i rotacji obiektu względem aparatu/awatara podczas wybierania obiektu. Po ustawieniu tej opcji na wartość Włączone uzyskasz następujące trzy właściwości:
    • Miejsce docelowe:
      • Lokalna przestrzeń kamery: Określa położenie i rotację w przestrzeni lokalnej aparatu.
      • Lokalna przestrzeń Awatara: Czy określić położenie i rotację w przestrzeni lokalnej awatara.
    • Nowa pozycja docelowa: Nowa pozycja docelowa (składnik z to kierunek, w którym znajduje się kamera/awatar)
    • Nowa rotacja docelowa: Nowa rotacja docelowa
  • Awatar IK
    • Kształt ręki Pozuj: Kształt ręki, aby umieścić rękę awatara podczas manipulowania obiektem
    • Rozmiar pozy ręcznej: rozmiar ręki od 0 do 1.
    • Włącz śledzenie IK: Niezależnie od tego, czy ramię awatara osiągnie obiekt podczas manipulowania przy użyciu określania wartości docelowej IK.
      • Ograniczenie IK Spherical: jeśli prawda, ramię IK zostanie wykonane na sferze. Spowoduje to, że ramię awatara nie trzyma się prosto.

Ustawienia współużytkowane przez urządzenia i rzucające

Zrzut ekranu przedstawiający składnik Konfiguracji możliwej do interakcji z usługą Mesh z wyróżnionymi ustawieniami typowymi dla elementów Wyposażonych i Throwables.

  • Przesunięcie interakcji: Przesunięcie pozycji i rotacji względem ręki awatara, aby umieścić obiekt.
  • Wyposażenie posesji docelowej
    • Pozycja: Odległość od klatki piersiowej awatara, aby umieścić rękę, gdy element jest wyposażony.
    • Rotacja: Kwota obracania nadgarstka, gdy element jest wyposażony.
  • Trzymana pozycja ręka:
    • Kształt pozy ręcznej: Jest to lista rozwijana, która zapewnia szereg kształtów rąk, aby umieścić rękę awatara w przypadku sprzętu. Możesz również wybrać brak.
    • Rozmiar pozy ręcznej: Rozmiar ręki od 0 do 1.

Ustawienia wyłącznie do wyposażenia

Zrzut ekranu przedstawiający składnik Konfiguracji z możliwością interakcji z usługą Mesh z wyświetlonymi ustawieniami urządzenia.

  • Aktywowanie konfiguracji
    • Uaktywnij typ: Kiedy ustawić element jako aktywny. Nie można aktywować obiektów, które można zgłaszać i zawsze mają aktywowany typ ustawiony na wartość none.
      • Brak: nie można aktywować tego elementu.
      • Przełącz: Ten element przełącza się między aktywnym/nieaktywnym za każdym kliknięciem kontrolki aktywowania.
      • Pojedynczy: Ten element jest aktywowany po kliknięciu kontrolki aktywowania, a następnie automatycznie zdezaktywowany po osiągnięciu ostatniej pozycji docelowej.
    • Uaktywnij posesje docelowe: Lista elementów docelowych służy do umieszczania ręki awatara po aktywowaniu elementu. Każda pozycja składa się z czterech właściwości: Pozycja, Obrót, Czas interpolacji i Krzywa animacji. Przesunięcie pozycji i rotacji jest względne względem klatki piersiowej awatara. Awatar będzie interpolować przy użyciu krzywej animacji z poprzedniej pozy do bieżącej sekwencyjnie w dół listy przez czas zdefiniowany w interpolacji, pozostając w końcowej pozycji do momentu dezaktywacji. Po dezaktywacji, postać awatara przeniesie się do tyłu przez listę.

Ustawienia wykluczające się z opcji Throwables

Zrzut ekranu przedstawiający składnik Konfiguracji z możliwością interakcji z usługą Mesh z wyświetlonymi ustawieniami z możliwością zgłaszania.

Konfiguracja celu:

  • Rozszerzenie ramienia w celu — kwota, która rozszerza ramię w trybie celu.
  • Aim Hand Pose:
    • Kształt pozy ręcznej: Ręka pozuje kształt, aby umieścić rękę awatara w celowanie.
    • Rozmiar pozy ręcznej: Rozmiar ręki od 0 do 1.
  • Obrót ręką celu: Obracanie ręki podczas celowania
  • Rzut ręcznie pozować:
    • Kształt pozy ręcznej: Ręka pozuje kształt, aby umieścić rękę awatara w momencie zwolnienia rzutu
    • Rozmiar pozy ręcznej: Rozmiar ręki od 0 do 1.
  • Szybkość rzutu w górę VR: Minimalna szybkość stosowania do obiektu podczas rzucania na Quest.
  • Maksymalna szybkość rzutu VR: Maksymalna szybkość stosowania do obiektu podczas rzucania na Quest. Jest to wartość prędkości używana na komputerze. Na stronie Quest szybkość będzie skalowana na podstawie ruchu fizycznego ramienia użytkownika.

W ramach zadania szybkość stosowana po wyrzuceniu obiektu zostanie przeskalowana między wartościami minimalnymi i maksymalnymi przy użyciu rzeczywistej prędkości ruchu ramienia użytkownika.

  • Ustawienia 2D
    • Szybkość rzutowania 2D: szybkość stosowania do obiektu, gdy jest on zgłaszany na komputerze.
    • Przesunięcie kierunku rzutu: przesunięcie kierunkowe, które ma być stosowane do obiektu, gdy jest on zgłaszany na komputerze.
  • Rzutuj posesje docelowe: Lista elementów docelowych służy do umieszczania ręki awatara, gdy element jest zgłaszany. Przesunięcie pozycji i rotacji jest względne względem pozycji ręki awatara, gdy rzut został zainicjowany. Awatar będzie interpolować przy użyciu krzywej animacji z poprzedniej pozy do bieżącej sekwencyjnie w dół listy przez czas zdefiniowany w czasie interpolacji. Obiekt zostanie zwolniony, a pozycja rzutu ręki zostanie użyta w drugim do ostatniego celu.

Wykonywanie skryptów wizualnych

Dla wszystkich ciał, które można wchodzić w interakcję:

  • Właściwości
    • IsHovered (tylko do odczytu) — niezależnie od tego, czy twój lokalny awatar umieszcza kursor na obiekcie.
    • IsSelected (tylko do odczytu) — niezależnie od tego, czy jakikolwiek awatar wybiera obiekt. W przypadku uruchamiania w usłudze MeshBrowser będzie to sieć.
    • IsSelectedLocally — określa, czy lokalny awatar wybiera obiekt.
    • IsMine (tylko do odczytu) — prawda dla ostatniego awatara do wybrania lub wyposażenia obiektu.

W przypadku wyposażenia:

  • Właściwości
    • EquippedAt (tylko do odczytu) — gdzie ten obiekt jest wyposażony — None, DefaultHand, RightHand, LeftHand. W przypadku uruchamiania w usłudze MeshBrowser będzie to sieć.
    • EquipTime (tylko do odczytu) — jaki czas ten obiekt został wyposażony. W przypadku uruchamiania w usłudze MeshBrowser będzie to sieć.
    • IsActivated (tylko do odczytu) — jeśli ten obiekt jest w stanie aktywowanym. Tylko prawidłowe dla obiektów, które nie można zgłaszać. W przypadku uruchamiania w usłudze MeshBrowser będzie to sieć.
    • IsAiming (tylko do odczytu) — jeśli lokalny awatar znajduje się w stanie celowania podczas przechowywania tego obiektu. Tylko prawidłowe dla rzutów.
    • IsThrowing (tylko do odczytu) — jeśli lokalny awatar aktywnie zgłasza obiekt. Tylko prawidłowe dla rzutów.
    • IsEquipped (tylko do odczytu) (tylko do odczytu) — jeśli ten obiekt jest obecnie wyposażony przez awatar. W przypadku uruchamiania w usłudze MeshBrowser będzie to sieć.
    • IsThrowable — jeśli ten obiekt jest zgłaszany.
    • ThrowVelocity — szybkość zgłaszania obiektu po jego wydaniu.

W przypadku manipulables zmodyfikować pozycję docelową:

  • Pozycja docelowa (tylko do odczytu): Pozycja docelowa treści w przypadku korzystania z trybu siły domyślnej we właściwościach z możliwością interakcji z siatką
  • Rotacja docelowa (tylko do odczytu): Rotacja docelowa treści w przypadku korzystania z domyślnego trybu siły we właściwościach z możliwością interakcji z siatką
  • Ray Hit Position (tylko do odczytu): Pozycja uderzenia rzutowania promienia interakcji na ciele
  • Obrót trafień raya (tylko do odczytu): Obrót interakcji wokół kierunku promienia
  • Zmodyfikowana pozycja docelowa (odczyt i zapis): służy do ustawiania nowej pozycji docelowej przez skrypt wizualizacji. Spowoduje to zastąpienie domyślnej pozycji docelowej. Najlepszym rozwiązaniem jest zastąpienie tej właściwości:
    • Używanie opcji W stanie zmienionym pozycji docelowej. W takim przypadku skrypt wizualizacji będzie uruchamiał przepływ tylko wtedy, gdy interakcja i nowe położenie uległo zmianie.
    • Korzystanie z funkcji w późnej aktualizacji. Jeśli chcesz zmienić transformację docelową w każdej ramce, zrób to w późnej aktualizacji, aby nowa transformacja docelowa była dostępna natychmiast w następnej ramce.
  • Zmodyfikowana rotacja docelowa (odczyt i zapis): służy do ustawiania nowej rotacji obiektu docelowego przez skrypt wizualizacji. Spowoduje to zastąpienie domyślnej pozycji docelowej.

Ustawienia

Modyfikowanie za pomocą skryptu wizualnego: Włącz tę opcję, aby zmodyfikować transformację docelową dla obiektów manipulowalnych przy użyciu skryptu wizualnego. Modyfikowanie za pomocą skryptu wizualnego

Następne kroki