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 .
- V hierarchii vyberte objekt.
- V inspektoru klikněte na tlačítko Přidat komponentu a pak vyberte Interagovatelné nastavení sítě.
Přidá se komponenta s výchozí vlastností Typ objektu nastavenou na Interagovatelný. (Typy objektů budou vysvětleny v další části.)
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.
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í.
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.
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.
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.
Nastavení
Nastavení společná pro manipulables, equippables a throwables
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
- 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
- Cílové místo:
- 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
- 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
- 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.
- Aktivovat typ: Kdy nastavit položku jako aktivní. Házetelné objekty nelze aktivovat a vždy budou mít aktivovaný typ nastavený na žádný.
Nastavení, která se dají použít výhradně pro házení
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.