Udostępnij za pośrednictwem


Konfigurowanie przenoszenia awatarów i teleportacji

Omówienie

Aby awatary usługi Mesh poruszały się i teleportować w środowisku z powodzeniem, ważne jest, aby postępować zgodnie z pewnymi wytycznymi dotyczącymi projektowania. Ten artykuł zawiera informacje na temat sposobu konfigurowania powierzchni na potrzeby ruchu i teleportacji, wskazówek dotyczących takich rzeczy jak limity ruchu awatara i projektowanie zderzaków oraz szczegółowa sekcja dotycząca warstw.

Wskazówki dotyczące przenoszenia awatarów

Scena powinna mieć Zderzacze dla awatara, aby chodzić i teleportować. Ogólnie rzecz biorąc, low poly Mesh Collider, który ściśle pasuje do geometrii wizualnej, przyniesie najlepsze wyniki. Box Colliders działają świetnie w przypadku trywialnych scenariuszy, ale może spowodować pewne problemy, takie jak spowodowanie, że awatar utknie w rogach lub pokonać limity wysokości kroku.

Limity ruchu awatara siatki:

Maksymalna nachylenie spacerowe: <45 stopni
Maksymalna wysokość kroku: 0,3
Promień kapsuły awatara: 0,3
Wysokość kapsuły awatara: 2
Wysokość awatara: 1,8

Sugestie dotyczące najlepszych wyników:

  • Wyrównaj powierzchnie kolizji z powierzchniami wizualnymi, na których będzie przechodzić awatar. Jest to ważne, aby uniknąć problemów z pozycją awatara względem powierzchni wizualizacji (aby zapobiec przestawnemu lub przycinaniu).

  • Zaokrąglone rogi pomagają wygładzić ruch awatara i zapobiec utknięcie awatara.

  • Aby zablokować ruch awatara, użyj stromych stoków lub wysokości znacznie większej niż maksymalna wysokość kroku.

    • Zmodyfikuj kształt zderzaków, aby tworzyć powierzchnie, które są naturalnie trudne lub niemożliwe do przechodzenia awatara. Na przykład należy użyć zderzacza siatki o nieregularnym kształcie, który nie zapewnia płaskiej powierzchni ani nachylenia spacerowego, aby awatar stał na.

    • W niektórych przypadkach kapsułowy zderzacz lub podobny zaokrąglony kształt na obiektach lub obszarach awatar nie powinien chodzić na może wystarczyć. Te kształty są nieubiegalne, jeśli nachylenie jest wystarczająco strome i spowoduje, że awatar zsunie się.

Warstwy kolizji

Obiekty umożliwiające interakcję to Obiekty GameObject z zderzaczem bez wyzwalacza i odpowiednią geometrią wizualną na jednej z warstw zderzających się z obiektem. Awatary mogą chodzić i być umieszczone na obiektach z zderzaczami niezwiązanymi z wyzwalaczem, dlatego należy pamiętać o tym, która warstwa jest używana.

Aby mieć dokładne pozycjonowanie awatara i teleportację, zderzacze scen muszą znajdować się na odpowiednich warstwach. Awatar użytkownika lokalnego będzie wchodzić w interakcje (kolidować z i chodzić) wszelkie zderzacze na warstwach, które obsługują te interakcje.

Gdy awatar jest umieszczony lub teleportowany, ważne jest, aby awatar zderzył się z obiektem "ziemi" i jest konsekwentnie umieszczony na tej samej wysokości nad ziemią (jest to nazywane "uziemienia"). Jeśli nie zostanie wykryta ziemia, awatar spadnie. Jest to dopuszczalne, jeśli nad ziemią (nie ma spadających uszkodzeń!), ale jeśli awatar znajduje się poniżej obiektu "ziemi", awatar może nie zarejestrować kolizji z tym obiektem, powodując, że wypadnie ze środowiska i rozspawn. Jeśli awatar przeniknie do ziemi podczas zmieniania położenia, zostanie uziemiony.

Wszystkie awatary w sesji powinny być na stałym poziomie. Położenie awatara jest dostosowywane, jeśli jego wysokość zmienia się poza zakres. Na przykład:

  • Użytkownik VR fizycznie przechodzi do i z siedzącej lub stojącej pozycji. Ruch HMD powoduje awatar w scenie przeniknąć do ziemi lub stać znacznie wyżej w pionie niż inne awatary.

  • Źle skonfigurowany skrypt wizualny teleportuje awatara do pozycji, w której nie mieszczą się lub są zbyt niskie w pionie.

Innym powodem jest to, że gdy fizyka awatara aktualizacji, jeśli awatar nie jest uziemiony, będzie skakać w pozycji w wyniku jego kapsuły zderza się z ziemią i yanking awatar do nowej pozycji. Jest to szczególnie istotne dla użytkowników HMD, ponieważ nienaturalne ruchy takie jak to może być nudności inducing.

Warstwy awatara współdziałają z elementem i mogą przejść dalej:

0 — ustawienie domyślne
2 — Ignoruj Raycast
4 - Woda (dozwolone są tylko zderzacze wyzwalacze, nie można chodzić)
14 — GroundCollision (teleportowalne)
18 — TriggerVolume (dozwolone są tylko zderzacze wyzwalaczy, a nie walkable)
21 — IgnoreObjects
26 — Niestandardowe26
27 — Niestandardowe27
28 — Niestandardowe28
29 — IgnoreRealtimeLight
30 — WallCollision

Dowiedz się więcej o warstwach w projekcie usługi Mesh.

Obsługa teleportacji

Aby scena obsługiwała teleportację, powierzchnie teleportowalne (na przykład podłoga lub ziemia) muszą mieć zderzacze na warstwie GroundCollision . Istnieją inne warstwy spacerowe, ale tylko GroundCollision jest teleportowalny. Geometria wizualna nie jest teleportowalna i nie powinna znajdować się w warstwie GroundCollision ; w tej warstwie mogą znajdować się tylko zderzacze. Niewłaściwe lub niespójne warstwy i kolizja mogą powodować niepożądane skutki podczas teleportowania lub znajdowania ziemi.

Powierzchnia teleportowa musi spełniać następujące warunki:

  • Musi mieć dołączony zderzacz bez wyzwalacza (na przykład zderzacz siatki lub zderzacz boxów).
  • Jej warstwa musi być ustawiona na GroundCollision.

Należy zachować ostrożność w przypadku niskich sufitów lub tuneli; mogą one potencjalnie wpływać na uziemienia awatara i teleportacji. Na przykład fizyka awatara lub łuk teleportowy mogą przecinać się lub wchodzić w interakcje z zderzaczem powyżej nich. Wysokość od gruntu do dachu dla obszaru przechodzenia powinna być większa niż 2m wysokość kapsuły awatara. Musi istnieć mały bufor przestrzeni nad głową awatara, zwłaszcza jeśli dach jest nachylony zamiast płaski.

Fizyka locomotion zapewnia płynny ruch awatara ze wszystkimi uczestnikami koladerów interakcji i zapobiega penetracji obszarów, które są zbyt małe dla kolizji awatara. Jednak nieautoryzowane kolizje ziemi lub problematyczna geometria środowiska, takie jak kształty klina lub bardzo wąskie przestrzenie, może potencjalnie spowodować awatar lub aparat przeniknąć do obiektów lub utknąć. Ważne jest, aby dokładnie przetestować wszystkie powierzchnie spacerowe i teleportowalne.

Warstwy szczegółowo

Warstwy obiektów

Gdy obiekt GameObject ma zderzacz niezwiązany z wyzwalaczem, będzie zderzać się z innymi obiektami, jeśli znajduje się na jednej z warstw obiektu.

0 — ustawienie domyślne
2 — Ignoruj Raycast
4 — Woda (dozwolone są tylko zderzacze wyzwalacze)
14 — Kolumna naziemna
18 — WyzwalaczVolume (dozwolone są tylko zderzacze wyzwalaczy)
20 — ObjectCollision
26 — Niestandardowe26
27 — Niestandardowe27
28 — Niestandardowe28
29 — IgnoreRealtimeLight
30 — WallCollision
31 — Ignorujpartypant

Domyślna warstwa w afiszcie Unity to (nic dziwnego) o nazwie "Default", więc może być konieczne użycie innej warstwy, jeśli nie chcesz wchodzić w interakcje z innymi obiektami. Na przykład element IgnoreParticipant jest używany w przypadku obiektów, które nie powinny wchodzić w interakcje z awatarem, a funkcja IgnoreCollisions jest używana w przypadku obiektów, które nie powinny wchodzić w interakcje z niczym.

Niektóre ważne warstwy

Default

Jeśli nie określono inaczej, zderzacz będzie znajdować się w warstwie Domyślne . Jest to warstwa spacerowa, a awatar będzie poprawnie uziemiony. Nie jest to prawidłowy obiekt docelowy teleportu dla użytkownika lokalnego. Ta warstwa współdziała i zderza się z innymi obiektami.

Kolumna naziemna

Tylko zderzacze w warstwie GroundCollision są prawidłowymi obiektami docelowymi teleportu dla użytkownika lokalnego. W przeciwnym razie jest identyczna z warstwą Domyślna .

Geometria wizualna nie jest wspierana przez kolizję i nie blokuje awatara, dlatego jest to niewłaściwy obiekt docelowy teleportu i nie powinien znajdować się w warstwie GroundCollision .

WallCollision

Warstwa WallCollision służy do wskazywania ścian awatara nie powinien przenikać w celu ograniczenia awatara w przestrzeni grywalnej. Użytkownicy VR mogą przenosić swoje awatary w dowolny sposób z ruchu HMD podczas pokoju skalowania locomotion i mogą fizycznie przejść przez wirtualną ścianę. Awatar zostanie teleportowany z powrotem do granic obszaru gry po przejściu na określoną odległość. Ta warstwa jest w przeciwnym razie identyczna z warstwą Domyślna .

Definicje warstw

Poniżej znajduje się lista warstw zdefiniowanych przez identyfikator i nazwę, w tym semantyka blokowania i opis:

  1. Default

    [Avatar/Object/Raycast Blocking]

    Używane do kolizji i oświetlenia. Awatar może chodzić na nim, ale nie teleportować na niego. Wartość domyślna dla większości rekwizytów. Obiekty w warstwie Domyślne otrzymują światło kierunkowe w czasie rzeczywistym ze środowiska.

  2. TransparentFX

    [Brak blokowania]

    Obsługa specjalna w potoku renderowania aparatu Unity dla obiektów przezroczystych i specjalnych; zapewnia prawidłową kolejność renderowania dla przezroczystości.

  3. IgnoreRaycast

    [Awatar/Blokowanie obiektu]

    Warstwa z włączoną kolizją, która nie blokuje raycastów, takich jak obiekty niezwiązane z interakcją lub niewidoczne ściany, których awatary nie mogą przechodzić, ale obiekty fizyki mogą przechodzić (na przykład poręcze, które mogą być rzucane, ale awatary nie mogą przeskoczyć).

  4. n/d

  5. instalacja wod.-kan.;

    [Brak blokowania]

    Specjalnie do powierzchni wodnych. Może służyć do wyspecjalizowanego renderowania i interakcji fizyki z wodą. Nie należy używać z zderzaczami niezwiązanymi z wyzwalaczem.

  6. nie dotyczy

  7. nie dotyczy

  8. nie dotyczy

  9. nie dotyczy

  10. nie dotyczy

  11. nie dotyczy

  12. nie dotyczy

  13. nie dotyczy

  14. nie dotyczy

  15. Kolumna naziemna

    [Avatar/Object/Raycast Blocking]

    Służy do chodzenia powierzchni kolizji, które MOGĄ być teleportowane na. Uwaga: We wcześniejszych wersjach zestawu narzędzi mesh była to warstwa "NavMesh".

  16. nie dotyczy

  17. nie dotyczy

  18. Ignoruj kolumny

    [Brak blokowania]

    Nie wchodzi w interakcje z niczym. Może obcinać środowisko i inne obiekty.

  19. TriggerVolume

    [Brak blokowania]

    Warstwa dla obiektów, które nie powinny mieć wpływu na fizykę lub raycasty i nie mają specjalnego zastosowania w przeciwnym razie. Nie używaj obiektów z zderzaczami niezwiązanymi z wyzwalaczem.

  20. n/d

  21. ObjectCollision

    [Blokowanie obiektu]

    Warstwa do kolidowania z obiektami, ale nie awatar lub raycasts.

  22. IgnoreObjects

    [Avatar/Raycast Blocking]

    Warstwa do kolidowania z awatarem, ale nie z obiektami.

  23. RaycastOnly

    [Raycast Blocking]

    Warstwa dla obiektów, które blokują raycasts lub można wybrać, ale nie wpływają na kolizję awatara lub obiektu.

  24. nie dotyczy

  25. nie dotyczy

  26. nie dotyczy

  27. Niestandardowe 26

    [Avatar/Object/Raycast Blocking]

    Warstwa zdefiniowana przez użytkownika.

  28. Niestandardowe 27

    [Avatar/Object/Raycast Blocking]

    Warstwa zdefiniowana przez użytkownika.

  29. Niestandardowe 28

    [Avatar/Object/Raycast Blocking]

    Warstwa zdefiniowana przez użytkownika.

  30. IgnoreRealtimeLight

    [Avatar/Object/Raycast Blocking]

    Określ, które obiekty sztuki w środowisku NIE odbierają światła kierunkowego w czasie rzeczywistym, takie jak większość obiektów statycznych (zamiast tego użyj oświetlenia upieczonego z mapą świetlną).

  31. WallCollision

    [Avatar/Object/Raycast Blocking]

    Kolizja, która uniemożliwia przycinanie sceny. Jeśli użytkownik HMD trzymać głowę przez ścianę, są odspawned do pobliskiej lokalizacji na odtwarzalnym obszarze.

  32. IgnoreParticipant

    [Object/Raycast Blocking]

    Obiekty, które blokują raycasts i inne obiekty, ale nie awatary.

Interakcje warstw i tabela

Interakcje warstw

Zrzut ekranu przedstawiający macierz kolizji warstwy.

Tabela warstw

Wyjaśnienie czterech kodów kolorów w poniższej tabeli Warstwy.

Tabela przedstawiająca atrybuty wszystkich dostępnych warstw.