Sdílet prostřednictvím


Uchopte, podržte a házejte pomocí interagovatelných funkcí

Přehled

Mesh Interactables je systém pro konfiguraci objektů pomocí skriptů Unity, které definují interakci s chováním objektu nebo avatara za běhu. Skripty definují vlastnosti objektu, se kterými lze pracovat pomocí interagátorů XRI. Sada nástrojů Mesh obsahuje skripty různých typů objektů, které lze definovat. Při spuštění projektu se nastaví všechna potřebná předfaby a nastavení potřebná k tomu, aby se objekty nebo avatary chovaly podle definice. Pokud chcete zobrazit přibližný náhled toho, jak budou vaše interagovatelné objekty vypadat a jak budou vypadat při spuštění v aplikaci Mesh, nezapomeňte nastavit režim emulace sítě. Všimněte si, že funkce IK zobrazená v aplikaci Mesh není v režimu emulace sítě dostupná.

Komponenta Mesh Interactable Setup

Chcete-li objekt interagovat, musíte přidat komponentu Mesh Interactable Setup .

  1. V hierarchii vyberte objekt.
  2. V inspektoru klikněte na tlačítko Přidat komponentu a pak vyberte Interagovatelné nastavení sítě.

Snímek obrazovky dialogového okna Přidat komponentu s výběrem komponenty Mesh Interactable Setup

Přidá se komponenta s výchozí vlastností Typ objektu nastavenou na Interagovatelný. (Typy objektů budou vysvětleny v další části.)

Snímek obrazovky komponenty Mesh Interactable Setup s typem objektu nastaveným na Interagovatelné.

Vlastnosti pro skupinu objektů, které se chovají stejně, lze nastavit pomocí nadřazené komponenty Mesh Interactable Setup . Vlastnosti se použijí na všechny podřízené objekty s pevnými body za běhu tak, že do každého podřízeného objektu automaticky přidáte komponentu Mesh Interactable Body . Můžete chtít ručně přidat interagovatelný text sítě , abyste mohli používat mesh interagovatelné objekty s vizuálním skriptováním, například s událostmi interakce, nebo upravit manipulovatelnou cílovou transformaci prostřednictvím vizuálního skriptu.

Snímek obrazovky komponenty Mesh Interactable Body

Poznámky:

  • Interagovatelný text sítě umožní, aby se každý interagovatelný chová nezávisle.

  • Pokud chcete, aby byla povolena fyzika, musí být k objektu přidáno pevné tělo.

Interagovatelné typy objektů

Existují čtyři typy objektů:

  • Interagovatelné
  • Manipulable
  • Dají se vybavit
  • Házetelné

Výběr typu objektu:

  • V komponentě Mesh Interactable Setup (Interaktivní nastavení sítě ) klikněte na rozevírací seznam Object Type (Typ objektu ) a pak vyberte jednu ze čtyř možností.

Snímek obrazovky s možnostmi nabídky Typ objektu v komponentě Mesh Interactable Body

Interagovatelné

Jak je uvedeno výše, jedná se o výchozí typ a nejzákladnější typ. Poskytuje přístup ke zpětným voláním, která lze vyvolat, když uživatel najede myší na objekt nebo vybere objekt, na který mohou reagovat jiné skripty. Pokud například máte tlačítko, které chcete použít k povolení jiného objektu, přidejte tento typ k objektu se zpětným voláním OnSelected , aby se tento jiný objekt povolil. Tlačítko bude plně interagovatelné pouze přidáním tohoto typu a uchytávače; Nebudete muset dělat nic jiného.

Manipulable

Objekt tohoto typu může mít svou transformaci manipulovanou za běhu a bude se pohybovat prostorem na konci paprsku interagátoru. Klávesové prvky jsou k dispozici pro otáčení nebo překlad objektu. Pokud chcete manipulovat s objekty v aplikaci Mesh, můžete zapnout nastavení IK, aby ruka avatara sledovala objekt. Manipulovatelné objekty nevyžadují pevné tělo, ale pokud chcete, aby objekty měly fyzikální schopnosti, měli byste ho přidat.

Snímek obrazovky s prostředím Mesh a manipulací s kávovarem

Dají se vybavit

Objekt tohoto typu se připojí k ruce vašeho avatara. Ovládací prvky počítače pro vybavení jsou kliknutí na objekt nebo stisknutí klávesy "F" při výběru objektu. Ovládací prvky Quest pro vybavení při výběru objektu stisknou tlačítko "Grip". Vybavitelné objekty obsahují nastavení pro cíle IK pro pozici ramena avatara, zatímco je objekt vybaven. Cíle IK jsou posunem od hrudi avatara; určuje, kam ruka směřuje, když je objekt podržděný nebo aktivovaný.

Házetelné

Jak název napovídá, můžete chytit a hodit objekt tohoto typu. Po uchopení můžete přejít do režimu zaměření stisknutím a podržením levého tlačítka myši. To umožní ruce vašeho avatara sledovat cíl myši; pokud chcete objekt vyhodit, uvolněte levé tlačítko myši.

Snímek obrazovky šipkové hry s šipkou chytil a přečten, aby byl hozen.

Všechny komponenty Interactables mají vlastnosti a metody interakce dostupné pro vizuální skriptování, takže máte neomezené množství způsobů, jak je společně pracovat.

Zajištění interakce objektů pomocí vizuálního skriptování

Pokud chcete nastavit reakce na interakce objektu s vizuálním skriptováním, můžete použít komponentu Mesh Interactable Body uvnitř grafu skriptů s uzlem na dostupnou vlastnost, jako je OnHovered nebo OnSelected, připojená k uzlu OnStateChanged . Následující graf skriptů například povolí válec při stisknutí tlačítka a při uvolnění tlačítka ho zakáže. Tlačítko je plně interagovatelné pouze přidáním skriptu a uchytávače; Nemusíte dělat nic jiného.

Snímek obrazovky s grafem skriptů s textem Mesh Interactable Je vybrán.

Nastavení

Nastavení společná pro manipulables, equippables a throwables

Snímek obrazovky komponenty Mesh Interactable Setup se zvýrazněnými vlastnostmi společnými pro všechny typy objektů

Poloměr vzdálenosti interakce Nejdále může být avatar pro interakci s tímto objektem

Nastavení IK najetí myší – nastavení IK, která se mají použít při najetí myší na objekt

  • Obrazec pozice ruky: Obrazec pozice ruky, do které se má dát ruka avatara při najetí myší na objekt
  • Velikost pozice ruky: Velikost pozice ruky od 0 do 1.
  • Povolit sledování IK: Určuje, jestli se rameno avatara při najetí myší pomocí cílení IK dostane k objektu.
    • Omezení IK sférické: Pokud je pravda, provede se arm IK na kouli. To způsobí, že ruka avatara nebude rovně vysunout.

Nastavení zvýraznění

  • Najeto nebo vybrané: Určuje, jestli se má objekt zvýraznit, pokud je zvýrazněný nebo vybraný.

  • Mechanismus zvýraznění

    • Položka nabídky 1: Vlastnosti shaderu

      • Barva zvýraznění: Barva pro nastavení barevných vlastností materiálu při zvýraznění objektu.
      • Doba trvání přechodu zvýraznění: Doba, po kterou se má zvýraznění při přechodu zeslabit.
      • Vlastnosti zvýraznění množství: Vlastnosti materiálu pro nastavení množství zvýraznění při zvýraznění. Jedná se o plovoucí hodnotu.
      • Vlastnosti barvy zvýraznění: Vlastnosti materiálu pro nastavení barvy zvýraznění při zvýraznění. Toto je hodnota barvy.
    • Položka nabídky 2: Obrys sítě: Přidá do objektů automatický obrys zadané barvy a šířky.

      • Barva zvýraznění: Barva obrysu.
      • Zvýraznit dobu trvání přechodu: Doba, po kterou se má osnova při přechodu zeslabit nebo zesvětlit.
      • Zvýraznit šířku obrysu: Jak silný (v metrech) by měl být obrys. Přepíše hodnotu vysunutí v materiálu Grafické nástroje nebo standardní.
      • Vlastní materiál osnovy: Materiál použitý k vykreslení osnovy.
      • Vlastní materiál pro zápis vzorníku: Použitý materiál zapisuje hodnotu do vyrovnávací paměti vzorníku.
      • Režim vyloučení osnovy: Možnost filtrování rendererů, které nechcete zahrnout do osnovy.
    • Položka nabídky 3: Vnitřní záře: Použije zvýraznění s efektem záře pomocí daných vlastností.

      • Barva zvýraznění: Barva vnitřní záře.
      • Doba trvání přechodu zvýraznění: Doba, po kterou se má vnitřní záře při přechodu zeslabit nebo zeslábnout.
      • Vlastní zvýrazňovací materiál: Přepište možnost specifickou pro tento objekt a nastavte materiál použitý pro záři. Pokud to není nastavené, použije se výchozí materiál z assetu nastavení.
      • Řetězec vyloučení: Pokud je tato možnost nastavená, budou ze zvýraznění vyloučeny všechny herní objekty s názvem obsahujícím řetězec vyloučení.

Nastavení výhradně pro manipulables

Snímek obrazovky komponenty Mesh Interactable Setup se zobrazeným manipulable nastavením

  • Režim vynucení: Režim, který se má použít k vynucení objektu mezerou
    • Výchozí: Výchozí chování MRTK, které přesunuje objekt pomocí jeho středu.
    • Bodová pružina: Alternativní chování, které přesunuje objekt použitím síly v místě uchopení (funguje pouze pro pevná těla)
  • Otočení (k dispozici pouze pro výchozí režim)
    • Povoleno: Určuje, jestli lze objekt při manipulaci otočit. Každou osu je možné nastavit jednotlivě.
    • Logika rotace manipulace
      • Výchozí: Při manipulaci s objektem se objekt bude otáčet kolem kamery a zůstane ve stejné orientaci vzhledem k fotoaparátu (skutečné transformační hodnoty se budou otáčet).
      • Omezující: Při manipulaci s objektem se objekt neotáčí a nezůstojí ve stejné orientaci vzhledem ke kameře.
  • Překlad (k dispozici pouze pro výchozí režim) =Povoleno: Určuje, jestli lze objekt při manipulaci přeložit. Každou osu je možné nastavit jednotlivě.
  • Bodová pružina (k dispozici pouze pro režim bodové pružiny)
    • Síla pružiny: Síla pružiny, která vytáhne objekt. Čím vyšší hodnota, tím rychleji dosáhne cílového bodu.
    • Faktor tlumení: Kolik tlumení se používá, aby se zabránilo oscilace kolem bodu uchopení.
  • Upravit cílovou transformaci: Umožňuje uživateli přepsat výchozí transformaci a nastavit požadovanou pozici a otočení objektu vzhledem ke kameře nebo avatarovi, zatímco je objekt vybrán. Pokud je tato možnost nastavená na Povoleno, získáte následující tři vlastnosti:
    • Cílové místo:
      • Místní prostor kamery: Určuje polohu a otáčení v místním prostoru kamery.
      • Místní prostor avatara: Určuje umístění a otáčení v místním prostoru avatara.
    • Nová cílová pozice: Nová cílová pozice (komponenta z je směr umístění kamery nebo avatara)
    • Nové otočení cíle: Rotace nového cíle
  • Avatar IK
    • Obrazec pozice rukou: Obrazec pozice ruky, do které se má při manipulaci s objektem vložit ruka avatara
    • Velikost pozice ruky: Velikost pozice ruky od 0 do 1.
    • Povolit sledování pomocí IK: Určuje, jestli se rameno avatara při manipulaci s cílením pomocí IK dostane k objektu.
      • Omezení IK sférické: Pokud je pravda, provede se arm IK na kouli. To způsobí, že ruka avatara nebude rovně vysunout.

Nastavení sdílená funkcemi Equippables a Throwables

Snímek obrazovky komponenty Mesh Interactable Setup se zvýrazněnými nastaveními, která jsou společná pro equippables a throwables.

  • Posun interakce: Pozice a posun otáčení vzhledem k ruce avatara pro umístění objektu.
  • Vybavení cílové pozice
    • Pozice: Vzdálenost od hrudníku avatara, aby se ruka umístila, když je položka vybavena.
    • Otočení: Množství, které se má otáčet zápěstím, když je položka vybavena.
  • Pozice přidrženou rukou:
    • Obrazec pozice rukou: Toto je rozevírací seznam, který poskytuje řadu obrazců pózování rukou, do které můžete vložit ruku avatara, když je vybaven. Můžete také zvolit žádný.
    • Velikost pozice ruky: Velikost pozice ruky od 0 do 1.

Nastavení výhradně pro Equippables

Snímek obrazovky komponenty Mesh Interactable Setup se zobrazeným nastavením Equippable

  • Aktivace konfigurace
    • Aktivovat typ: Kdy nastavit položku jako aktivní. Házetelné objekty nelze aktivovat a vždy budou mít aktivovaný typ nastavený na žádný.
      • Žádné: Tuto položku nejde aktivovat.
      • Přepnout: Tato položka přepíná mezi aktivními a neaktivovanými při každém kliknutí na ovládací prvek aktivace.
      • Jednoho: Tato položka se aktivuje po kliknutí na ovládací prvek aktivace a poté se automaticky deaktivuje, jakmile dosáhne poslední cílové pozice.
    • Aktivovat cílové pozice: Seznam cílových pozic, které slouží k umístění ruky avatara při aktivaci položky. Každá pozice se skládá ze čtyř vlastností: Pozice, Otočení, Čas interpolace a Křivka animace. Pozice a posuny otáčení jsou relativní vzhledem k hrudi avatara. Avatar bude interpolovat pomocí křivky animace z předchozí pozice na aktuální pozici postupně dolů v seznamu po dobu definovanou v čase interpolace a zůstane v konečné pozici až do deaktivace. Po deaktivaci se bude pozice avatara pohybovat v seznamu zpět.

Nastavení, která se dají použít výhradně pro házení

Snímek obrazovky komponenty Mesh Interactable Setup (Nastavení pro interakci sítě) se zobrazeným nastavením Throwable (Vyvolatelné nastavení).

Konfigurace cíle:

  • Arm Extension on Aim – množství, které se má rameno rozšířit, když je v režimu cíle.
  • Pozice zamířila rukou:
    • Obrazec pozice rukou: Obrazec pozice ruky, do které se má dát ruka avatara při zaměřování.
    • Velikost pozice ruky: Velikost pozice ruky od 0 do 1.
  • Otáčení rukou míři: Otáčení ruky při zaměřování
  • Házení pozice rukou:
    • Obrazec pozice rukou: Obrazec pozice ruky, do které se má dát ruka avatara při uvolnění hodu
    • Velikost pozice ruky: Velikost pozice ruky od 0 do 1.
  • Minimální rychlost hodu VR: Minimální rychlost, která se má použít u objektu při vyvolání v úkolu.
  • Maximální rychlost hodu VR: Maximální rychlost, která se má použít u objektu při vyvolání na questu. Toto je hodnota rychlosti používaná na počítači PC. Na questu bude rychlost škálována na základě fyzického pohybu paže uživatele.

Na úkolu se rychlost použitá při vyvolání objektu škáluje mezi minimální a maximální hodnotou pomocí skutečné rychlosti pohybu paže uživatele.

  • Nastavení 2D
    • Rychlost 2D házení: Rychlost, která se má použít u objektu při jeho vyvolání na počítači.
    • Posun směru hodu: Směrový posun, který se použije u objektu, když je vyvolán na počítači.
  • Vyvolání cílových pozic: Seznam cílových pozic, které slouží k umístění ruky avatara při vyhození položky. Pozice a posun otáčení jsou relativní vzhledem k pozici ruky avatara při zahájení hodu. Avatar bude interpolovat pomocí křivky animace z předchozí pozice na aktuální pozici postupně dolů v seznamu po dobu definovanou v čase interpolace. Objekt se uvolní a v předposekundovém cíli se použije pozice házení rukou.

Vizuální skriptování

Pro všechna interagovatelná těla:

  • Vlastnosti
    • IsHovered (jen pro čtení) – určuje, jestli váš místní avatar na objekt nabíhá myší.
    • IsSelected (jen pro čtení) – určuje, jestli objekt vybírá nějaký avatar. Při spuštění v MeshBrowser bude tato síť zasítěná.
    • IsSelectedLocally – určuje, jestli místní avatar vybírá objekt.
    • IsMine (jen pro čtení) – true pro poslední avatar, který má vybrat nebo vybavit objekt.

Vybavení:

  • Vlastnosti
    • EquippedAt (jen pro čtení) – kde je tento objekt vybaven – None, DefaultHand, RightHand, LeftHand. Při spuštění v MeshBrowser bude tato síť zasítěná.
    • EquipTime (jen pro čtení) – kdy byl tento objekt vybaven. Při spuštění v MeshBrowser bude tato síť zasítěná.
    • IsActivated (jen pro čtení) – pokud je tento objekt v aktivovaném stavu. Platí pouze pro objekty, které nelze vyvolat. Při spuštění v MeshBrowser bude tato síť zasítěná.
    • IsAiming (jen pro čtení) – pokud je místní avatar při držení tohoto objektu ve stavu zaměření. Platí pouze pro házitelné objekty.
    • IsThrowing (jen pro čtení) – pokud místní avatar aktivně vyvolává objekt. Platí pouze pro házitelné objekty.
    • IsEquipped (jen pro čtení) (jen pro čtení) – pokud je tento objekt aktuálně vybaven avatarem. Při spuštění v MeshBrowser bude tato síť zasítěná.
    • IsThrowable – pokud je tento objekt vyvolán.
    • ThrowVelocity – rychlost vyvolání objektu při jeho uvolnění.

Pro manipulables pro úpravu cílové pozice:

  • Cílová pozice (jen pro čtení): Cílová pozice těla při použití výchozího režimu vynucení v interagovatelných vlastnostech sítě
  • Otáčení cíle (jen pro čtení): Otáčení textu cíle při použití výchozího režimu vynucení v interagovatelných vlastnostech sítě
  • Pozice paprskového hitu (jen pro čtení): Pozice paprskového zásahu interagátoru na těle
  • Ray Hit Rotation (jen pro čtení): Otočení interagátoru kolem směru paprsku
  • Upravená cílová pozice (čtení a zápis): Slouží k nastavení nové cílové pozice vizuálním skriptem. Tím se přepíše výchozí cílová pozice. Osvědčeným postupem je přepsat tuto vlastnost:
    • Použití při změně stavu cílové pozice. V tomto případě skript vizuálu aktivuje tok pouze v případě, že se změnil interagátor a nová pozice.
    • Používá se při pozdní aktualizaci. Pokud potřebujete změnit cílovou transformaci v každém rámci, proveďte to v pozdější aktualizaci, aby byla nová cílová transformace k dispozici okamžitě v dalším rámci.
  • Změněné otočení cíle (čtení a zápis): Slouží k nastavení nového otočení cíle vizuálním skriptem. Tím se přepíše výchozí cílová pozice.

Nastavení

Upravit pomocí vizuálního skriptu: Tuto možnost povolte, pokud chcete upravit cílovou transformaci pro upravitelná těla pomocí vizuálního skriptu. Modify-with-visual-script

Další kroky