Sdílet prostřednictvím


Kurz Mesh 101 Kapitola 4: Přesun objektů a aktivace animací pomocí interakce mesh a fyziky



V této kapitole budete pracovat s modelem větrné farmy. Dozvíte se, jak pomocí funkce Mesh Interactables a Fyzika uchopit a uvolnit tuhá těla (v tomto případě větrné turbíny) a nastavit aktivační událost animace pomocí vizuálního skriptování. Zabalíte to tím, že omezíte větrné turbíny tak, aby se mohly přesouvat pouze v zadané oblasti.

Tato kapitola je o něco přímočařejší než to, co jste udělali v Kapitole 3---není žádné skriptování a síť je nastavená tak, aby fyzika vypadala stejně pro všechny avatary v relaci.

Než začneme s první stanicí, musíme udělat několik věcí.

Změna konfigurace hierarchie

  • V hierarchii sbalte GameObject Chapter3 a rozbalte GameObject Chapter4 .

Snímek obrazovky s popisem počítače

Změna zobrazení tak, aby zobrazovala terasu Kapitoly 4 Sphere

V prostředí Mesh se účastník přesune hladce od konce kapitoly 3 na začátek kapitoly 4 a bude mít správné umístění pro zahájení výukových aktivit kapitoly 4. Když jste však na konci kapitoly 3 ukončili režim přehrávání, nebyli jste automaticky umístěni s zobrazením modelu Kapitola 4 v okně Scéna . Pojďme toto zobrazení nastavit.

  1. V hierarchii vyberte Objekt GameObject s názvem 4.1 – Grab and Release.

    Snímek obrazovky s popisem počítače

  2. Přesuňte kurzor na okno scény a stiskněte klávesu F na klávesnici.

    Zobrazení se vycentruje na objekt 4.1 – Chytit a uvolnit , ale pravděpodobně nebudete v takové pozici, kterou potřebujeme.

  3. Přetáhněte, otáčejte nebo přibližujte zobrazení, dokud před sebou neuvidíte stanice Kapitoly 4, jak je znázorněno níže.

    Počítač vygenerovaný obrázek modelu hory Popis automaticky vygenerovaný

Stanice 4.1: Chytit a uvolnit

Cílem pro účastníka této kapitoly školení je přesun větrných turbín ze stolního stolu do oceánu. Jakmile se tam turbíny nacházejí, zachytí oceánový vítr a jejich listy se otočí a generují energii.

  1. V hierarchii rozbalte 4.1 – Grab and Release GameObject. Všimněte si, že obsahuje tři objekty Wind Turbine GameObjects, které jsou umístěny na stole ve scéně.

    Snímek obrazovky s popisem počítače

    Pojďme do WindTurbine1 přidat funkce "chytit a uvolnit", aby ho účastníci mohli přesouvat ve službě Mesh.

  2. V hierarchii vyberte WindTurbine1.

  3. V inspektoru klikněte na tlačítko Přidat komponentu a pak vyhledejte a přidejte interagovatelné nastavení sítě.

    Snímek obrazovky

    Tip

    Vysvětlení této komponenty bylo uvedeno v kapitole 3 tohoto kurzu.

  4. Ve stejné komponentě klikněte na rozevírací seznam Typ objektu a pak vyberte Manipulable (Manipulable).

    Snímek obrazovky

  5. Ujistěte se, že je komponenta aktivní.

  6. V komponentě Rigidbody rozbalte v případě potřeby možnost Omezení a pak pro nastavení Ukotvit otočení vyberte X,Y a Z.

    Snímek obrazovky s automaticky vygenerovaným počítačem Popis

To zabrání tomu, aby se turbína převrácela, pokud ji umístíte na nerovný povrch.

Testování práce

  1. Uložte projekt a pak vyberte tlačítko Přehrát v editoru Unity.

    Všimněte si, že pokaždé, když přejdete do režimu hraní, je vaším výchozím bodem v okně Hry terasa Kapitoly 3 Sphere. V této kapitole chceme být na druhé terase Sphere---souboru s funkcemi Kapitola 4. Naštěstí existuje snadný způsob, jak se tam dostat.

  2. Otáčejte zobrazením doprava, dokud se nezobrazí informační okno Přejít na kapitolu 4 .

    Snímek obrazovky s popisem počítače

  3. Přejděte k informačnímu poli a vyberte tlačítko Teleportovat do kapitoly 4 .

    Snímek obrazovky s automaticky vygenerovaným počítačem Popis

  4. Po příjezdu na Terasu Kapitoly 4 Sphere přesuňte kurzor na WindTurbine1 - jeho tvar se změní - - a pak přetáhněte turbínu kolem scény.

    Turbína zůstane vzpřímená v důsledku zapnutí omezení zmrazování otáčení .

    Obrázek

  5. Kliknutím na tlačítko Přehrát v Unity Editoru ukončete režim přehrávání.

Nemusíte aktualizovat další dvě větrné turbíny, to už jsme udělali za vás.

Stanice: 4.2 Animační spoušť

Myšlenka je taková, že když přetáhnete větrnou turbínu přes oceán, "vítr" způsobí, že se otáčí listy turbíny. Ve skutečnosti se stane, že průhledná datová krychle s názvem Trigger animace se nachází nad oceánem a funguje jako hlasitost aktivační události. Pokud do objemu spouště přetáhnete větrnou turbínu, spustí událost On Trigger Enter , která spustí animaci otáčejícího se kotouče.

V této kapitole přidáme skript do objektu GameObject a pak ve skriptu povolíme animaci.

  1. V hierarchii rozbalte položku GameObject 4.2 – Aktivační událost animace a pak vyberte jeho podřízený objekt s názvem Trigger animace.

    Snímek obrazovky

    Všimněte si, že vidíte zelené obrysy uchytáče rámečku GameObjectu triggeru animace .

    Snímek obrazovky

  2. V inspektoru přejděte na komponentu Box Collider a pak vyberte Je trigger.

    Snímek obrazovky

Tip

Když vyberete Je aktivační událost, objekt je komponenta s collideru připojená ke svazku triggeru.

  1. V hierarchii přejděte na Kapitolu 4>4.1 – Chytit a uvolnit a pak vyberte WindTurbine1.
  2. Klikněte na tlačítko Přidat komponentu a vyhledejte a přidejte skriptovací počítač.

Chceme, aby byl náš skript vložený, ale obvykle to znamená, že musíte začít vytvářet nový graf skriptů od začátku. Vezměme si zkratku. Prozatím ponechte možnost Zdroj nastavenou na Graph . Připojíme existující graf skriptu a pak ho převedeme na vložený graf.

  1. Klikněte na tlačítko v poli Graph a pak v okně SelectSceneGraph vyberte SPWindTurbineScript.

    Snímek obrazovky

  2. Klikněte na tlačítko Převést . Všimněte si, že tím odeberete nastavení Graph a změníte možnost Zdroj na Vložit.

Přidání animace rotujícího okna do grafu

Chvíli se podívejte na graf skriptů. Má dvě skupiny: horní skupina aktivuje animaci otáčící se ostřím, když uživatel přetáhne větrnou turbínu do objemu triggeru, a dolní skupina zastaví animaci, když uživatel přetáhne turbínu z objemu.

Snímek obrazovky

Graf je téměř nastavený tak, jak ho chceme, ale zbývá ještě jeden problém. Dva uzly Animator: Set Trigger jsou nastaveny na This ...

Snímek obrazovky

... Ale toto (jinými slovy WindTurbine1) nemá animaci, kterou chceme aktivovat. Pojďme ho najít.

  1. V hierarchii rozbalte WindTurbine1 a pak rozbalte jeho podřízený objekt s názvem WindTurbineBody. Tím se odhalí podřízený objekt s názvem Windmill_Turbine_001:Propellors10.

    Snímek obrazovky

  2. Vyberte Windmill_Turbine_001:Propellors10 a pak v kontrole si všimněte, že obsahuje komponentu Animator s kontrolerem Animator s názvem WindTurbine1Propellers.

    Snímek obrazovky

    Tento animátor je to, co bude poskytovat naši animaci.

  3. Přetáhněte Windmill_Turbine_001:Propellors10 GameObject z hierarchie a potom ho v grafu skriptu umístěte do prvního pole v uzlu Animator: Set Trigger umístěném v první skupině.

    Snímek obrazovky

  4. Přetáhněte objekt Windmill_Turbine_001:Propellors10 GameObject z hierarchie znovu a potom ho v grafu skriptu umístěte do prvního pole v uzlu Animator: Set Trigger umístěném ve druhé skupině.

Skript je teď dokončený.

Testování práce

  1. Uložte projekt a stiskněte tlačítko Přehrát v Unity Editoru.

  2. Jak už bylo uvedeno dříve, po přechodu do režimu hraní se váš avatar umístí na terasu Kapitoly3 Sphere. Otočte scénu doprava, přejděte na tlačítko Teleportovat do kapitoly 4 a stiskněte ho.

    Snímek obrazovky s automaticky vygenerovaným počítačem Popis

  3. Teď byste měli být na terase Sphere Chapter4 . Drag WindTurbine1 (připomenutí: je to nejdál vzadu, s červenými čepelemi) přes oceán. Všimněte si, že lopatky turbíny se nyní otáčejí.

    Obrázek obsahující snímek obrazovky, 3D modelování, počítačová hra, videoherní software Popis automaticky vygenerovaný

  4. Přetáhněte stejnou turbínu pryč od oceánu a položte ji zpět na desku stolu. Všimněte si, že se ostří turbíny přestanou otáčet.

  5. Až dokončíte sledování animace, stisknutím tlačítka Přehrát v Unity Editoru ukončíte režim přehrávání.

Nemusíte aktualizovat ostatní větrné turbíny--- už jsme to udělali za vás.

Stanice 4.3: Omezující tělesa

V současné chvíli není žádné omezení, kam může účastník vyhodit větrnou turbínu. Doufáme, že turbíny umístí do oceánu, kde mohou zachytit vítr, ale účastník může například omylem shodit turbínu na podlahu. Chceme se tomu vyhnout, abychom zajistili, že turbíny mohou přistát pouze na stole nebo v oceánu, můžeme nastavit udržovací pole. Jedná se v podstatě o průhlednou krabici--- turbíny budou omezeny na vnitřní část krabice.

  1. V hierarchii rozbalte 4.3 - Omezující těla GameObject a vyberte jeho podřízený objekt s názvem Containment Field.

    Snímek obrazovky s automaticky vygenerovaným počítačem Popis

  2. V inspektoru vyberte tlačítko Přidat komponentu a pak přidejte komponentu Pole pro uzavření .

    Snímek obrazovky s automaticky vygenerovaným počítačem Popis

  3. V komponentě Pole obsahující vyberte tlačítko +vpravo od možnosti Ovlivněná těla a pak v místní nabídce vyberte podmínku Název herního objektu .

    Snímek obrazovky s automaticky vygenerovaným počítačem Popis

  4. Do pole Začíná na zadejte "WindTurbine". Vzhledem k tomu, že všechny tři větrné turbíny v naší scéně začínají "WindTurbine", budou všechny omezeny na kontejnment field.

    Snímek obrazovky s popisem počítače

Testování práce

  1. Uložte projekt a stiskněte tlačítko Přehrát v Unity Editoru.

  2. Jak už bylo uvedeno dříve, po zadání režimu přehrávání se avatar umístí na terasu Sphere Chapter3 . Otočte scénu doprava a pak přejděte na tlačítko Teleportovat do kapitoly 4 a stiskněte ho.

    Snímek obrazovky s automaticky vygenerovaným počítačem Popis

  3. Teď byste měli být na terase Sphere Chapter4 . Přetáhněte jednu z větrných turbín pryč od stolu a oceánu a zkuste ho shodit na podlahu. V tom zabráníte v poli obsahující obsah.

Kapitola 4: Shrnutí

V této kapitole jste přidali funkce Mesh, které účastníkům ve vašem prostředí umožňují provádět následující akce:

  • Uchopte a přesuňte objekt

  • Aktivace animace, když účastník přetáhne objekt do svazku triggeru

  • Přetažení objektu pouze do určité oblasti, kterou jste zadali

Další kroky

Kapitola 5: Zpřístupnění prostředí pro testování