Delen via


Mesh 101 Zelfstudie Hoofdstuk 4: Objecten verplaatsen en animaties activeren met Mesh Interactables en Physics

In dit hoofdstuk gaat u werken met een model van het windpark. U leert hoe u Mesh Interactables en Physics kunt gebruiken om starre lichamen (in dit geval windturbines) te pakken en los te laten en een animatietrigger in te stellen met behulp van Visual Scripting. U sluit de zaken af door de windturbines te beperken, zodat ze alleen binnen een bepaald gebied kunnen worden verplaatst.

Dit hoofdstuk is iets eenvoudiger dan wat u in Hoofdstuk 3 hebt gedaan---er is er geen scripting, en het netwerk is zo ingesteld dat de fysica er hetzelfde uitziet voor alle avatars in de sessie.

Er zijn een aantal dingen die we moeten doen voordat we aan de slag gaan met het eerste station.

De hiërarchie opnieuw configureren

  • Vouw in de hiërarchie het Chapter3 GameObject samen en vouw vervolgens het GameObject Chapter4 uit.

Een schermafbeelding van een computerbeschrijving

De weergave wijzigen om het Chapter 4 Sphere Terrace weer te geven

In de ervaring in Mesh gaat de deelnemer soepel van het einde van hoofdstuk 3 naar het begin van hoofdstuk 4 en bevindt hij zich op de juiste locatie om de hoofdstuk 4-leeractiviteiten te beginnen. Wanneer u de afspeelmodus echter aan het einde van hoofdstuk 3 hebt afgesloten, werd u niet automatisch met het oog op het hoofdstuk 4-model in het venster Scène geplaatst. Laten we die weergave instellen.

  1. Selecteer in de hiërarchie het GameObject met de naam 4.1 - Grab and Release.

    Een schermafbeelding van een computerbeschrijving

  2. Beweeg de cursor over het venster Scène en druk vervolgens op de toets F op het toetsenbord.

    Dit centreert de weergave op het 4.1 -- Grab and Release-object , maar u bevindt zich waarschijnlijk niet helemaal in de positie die we nodig hebben.

  3. Sleep, draai en/of zoom in op de weergave totdat u de Hoofdstuk 4-stations voor u ziet, zoals hieronder wordt weergegeven.

    Een door de computer gegenereerde afbeelding van een model van een berg Beschrijving automatisch gegenereerd

Station 4.1: Grab and Release

Het doel voor de deelnemer in dit hoofdstuk van de training is om windturbines van het tafelblad naar de oceaan te verplaatsen. Eenmaal daar, zullen de turbines de oceaanwind vangen, waardoor hun bladen draaien en energie genereren.

  1. Vouw in de hiërarchie de 4.1 -- Grab and Release GameObject uit. Houd er rekening mee dat het drie Windturbine GameObjects bevat die zich op het tafelblad in de scène bevinden.

    Een schermafbeelding van een computerbeschrijving

    Laten we 'grab and release'-mogelijkheden toevoegen aan WindTurbine1 , zodat deelnemers deze in Mesh kunnen verplaatsen.

  2. Selecteer windturbine1 in de hiërarchie.

  3. Klik in inspector op de knop Onderdeel toevoegen en zoek vervolgens naar Mesh Interactable Setup en voeg deze toe.

    Een schermafbeelding

    Tip

    Een uitleg van dit onderdeel is gegeven in hoofdstuk 3 van deze zelfstudie.

  4. Klik in hetzelfde onderdeel op de vervolgkeuzelijst Objecttype en selecteer vervolgens Manipulable.

    Een schermafbeelding

  5. Zorg ervoor dat het onderdeel actief is.

  6. Vouw in het onderdeel Rigidbody indien nodig de optie Beperkingen uit en selecteer vervolgens X,Y en Z voor de instellingen voor Rotatie blokkeren.

    Een schermafbeelding van een automatisch gegenereerde computerbeschrijving

Dit voorkomt dat de turbine kantelt als je hem op een oneffen oppervlak plaatst.

Uw werk testen

  1. Sla het project op en selecteer vervolgens de knop Afspelen van Unity-editor.

    Houd er rekening mee dat wanneer u de afspeelmodus opent, uw beginpunt in het gamevenster het Chapter 3 Sphere Terrace is. Voor dit hoofdstuk willen we in het andere Sphere Terrace zijn---het ene met de Chapter 4-functies. Gelukkig is er een makkelijke manier om daar te komen.

  2. Draai de weergave naar rechts totdat u het informatievak Ga naar hoofdstuk 4 ziet.

    Een schermafbeelding van een computerbeschrijving

  3. Ga naar het informatievak en selecteer vervolgens de knop Teleport naar Hoofdstuk 4 .

    Een schermafbeelding van een automatisch gegenereerde computerbeschrijving

  4. Nadat u bij het Chapter 4 Sphere Terrace bent aangekomen, beweegt u de cursor over WindTurbine1- de vorm verandert - en sleept u de turbine vervolgens over de scène.

    De turbine blijft rechtop staan als gevolg van het inschakelen van de vriesrotatiebeperkingen .

    Een afbeelding

  5. Klik op de knop Play van De Unity-editor om de afspeelmodus af te sluiten.

U hoeft de andere twee windturbines niet bij te werken. Dat hebben we al voor u gedaan.

Station: 4.2 Animatietrigger

Het idee hier is dat wanneer je een windturbine over de oceaan sleept, de "wind" ervoor zorgt dat de bladen van de turbine draaien. Wat er eigenlijk gebeurt, is dat een transparante kubus met de naam Animatietrigger zich boven de oceaan bevindt en als een triggervolume fungeert. Als u een windturbine naar het triggervolume sleept, wordt de gebeurtenis Bij activeren enter gestart waarmee een draaiende bladeanimatie wordt gestart.

Voor dit hoofdstuk voegen we een script toe aan een GameObject en schakelen we vervolgens animatie in het script in.

  1. Vouw in de hiërarchie het gameobject 4.2 -- Animatietrigger uit en selecteer vervolgens het onderliggende object met de naam Animatietrigger.

    Een schermafbeelding

    Merk op dat u de groene contouren van de Animatie Trigger GameObject's Box Collider kunt zien.

    Een schermafbeelding

  2. Navigeer in inspector naar het onderdeel Box Collider en selecteer Is trigger.

    Een schermafbeelding

Tip

Wanneer u Is trigger selecteert, wordt het object het collider-onderdeel gekoppeld aan een triggervolume.

  1. Navigeer in de hiërarchie naar Hoofdstuk 4>4.1 - Grab and Release en selecteer vervolgens WindTurbine1.
  2. Klik op de knop Onderdeel toevoegen en zoek naar scriptmachine en voeg deze toe.

We willen dat het script wordt ingesloten, maar dat betekent meestal dat u een volledig nieuwe scriptgrafiek moet maken. We nemen een korte weg; Laat de optie Bron voorlopig ingesteld op Grafiek . We voegen een bestaande scriptgrafiek toe en converteren deze vervolgens naar een ingesloten grafiek.

  1. Klik op de knop in het veld Graph en selecteer in het venster SelectSceneGraph de optie SPWindTurbineScript.

    Een schermafbeelding

  2. Klik op de knop Converteren . Houd er rekening mee dat hiermee de grafiekinstelling wordt verwijderd en de optie Bron wordt gewijzigd in Insluiten.

De draaiende bladeanimatie toevoegen aan de grafiek

Neem even de tijd om de scriptgrafiek te bekijken. Het heeft twee groepen: de bovenste groep activeert de draaiende animatie van het blad wanneer de gebruiker een windturbine naar het triggervolume sleept en de onderste groep stopt de animatie wanneer de gebruiker de turbine uit het volume sleept.

Een schermafbeelding

De grafiek is bijna ingesteld zoals we willen, maar er is nog één probleem. De twee Animator: Set Trigger-knooppunten zijn ingesteld op Deze ...

Een schermafbeelding

... maar Dit (met andere woorden , WindTurbine1) heeft niet de animatie die we willen activeren. Laten we het zoeken.

  1. Vouw in de hiërarchieWindTurbine1 uit en vouw vervolgens het onderliggende object met de naam WindTurbineBody uit. Hiermee wordt het onderliggende object met de naam Windmill_Turbine_001:Propellors10 weergegeven.

    Een schermafbeelding

  2. Selecteer Windmill_Turbine_001:Propellors10 en houd er vervolgens rekening mee dat deze in de InspectoreenAtur-onderdeel bevat met de Animator-controller met de naam WindTurbine1Propellers.

    Een schermafbeelding

    Deze Entertainer is wat onze animatie zal verzorgen.

  3. Sleep het Windmill_Turbine_001:Propellors10 GameObject uit de hiërarchie en zet deze in de scriptgrafiek neer in het eerste veld in het knooppunt Trigger instellen dat zich in de eerste groep bevindt.

    Een schermafbeelding

  4. Sleep het Windmill_Turbine_001:Propellors10 GameObject opnieuw uit de hiërarchie en zet deze in de scriptgrafiek neer in het eerste veld in het knooppunt Trigger instellen dat zich in de tweede groep bevindt.

Het script is nu voltooid.

Uw werk testen

  1. Sla het project op en druk vervolgens op de knop Play van unity-editor.

  2. Zoals eerder vermeld, plaatst u in de play-modus uw avatar in het Chapter3 Sphere Terrace. Draai de scène naar rechts en loop vervolgens naar de knop Teleport naar Hoofdstuk 4 en druk erop.

    Een schermafbeelding van een automatisch gegenereerde computerbeschrijving

  3. U bent nu in het Chapter4 Sphere Terrace. Sleep WindTurbine1 (herinnering: het is het verst in de rug, met de rode bladen) over de oceaan. Merk op dat de bladen van de turbine nu draaien.

    Een afbeelding met schermopname, 3d-modellering, pc-game, videogamesoftware Beschrijving automatisch gegenereerd

  4. Sleep dezelfde turbine weg van de oceaan en plaats deze terug op het tafelblad. Merk op dat de bladen van de turbine niet meer draaien.

  5. Wanneer u klaar bent met het observeren van de animatie, drukt u op de knop Afspelen van Unity-editor om de afspeelmodus af te sluiten.

Je hoeft de andere windturbines niet bij te werken---we hebben het al voor je gedaan.

Station 4.3: Beperkende lichamen

Op dit moment is er geen beperking waar een deelnemer een windturbine kan neerzetten. We hopen dat ze de turbines in de oceaan plaatsen waar ze de wind kunnen vangen, maar een deelnemer kan bijvoorbeeld per ongeluk een turbine op de vloer laten vallen. We willen dit voorkomen, dus om ervoor te zorgen dat de turbines alleen op het tafelblad of in de oceaan kunnen landen, kunnen we een insluitingsveld opzetten. Dit is in feite een transparante doos---de turbines worden beperkt tot de binnenkant van de doos.

  1. Vouw in de hiërarchie het gameobject 4.3 -- Constraining Bodies uit en selecteer het onderliggende object met de naam Containment Field.

    Een schermafbeelding van een automatisch gegenereerde computerbeschrijving

  2. Selecteer in de Inspector de knop Onderdeel toevoegen en voeg vervolgens het onderdeel Insluitingsveld toe.

    Een schermafbeelding van een automatisch gegenereerde computerbeschrijving

  3. Selecteer in het onderdeel Insluitingsveld de knop '+' rechts van de optie Betrokken lichamen en selecteer vervolgens in het pop-upmenu de voorwaarde GameObjectnaam .

    Een schermafbeelding van een automatisch gegenereerde computerbeschrijving

  4. Typ 'WindTurbine' in het vak Begint met . Aangezien alle drie de windturbines in onze scène beginnen met "WindTurbine" zullen ze allemaal beperkt zijn tot het Containment Field.

    Een schermafbeelding van een computerbeschrijving

Uw werk testen

  1. Sla het project op en druk vervolgens op de knop Play van unity-editor.

  2. Zoals eerder vermeld, plaatst u in de play-modus uw avatar in het Chapter3 Sphere Terrace. Draai de scène naar rechts en loop vervolgens naar de knop Teleport naar Hoofdstuk 4 en druk erop.

    Een schermafbeelding van een automatisch gegenereerde computerbeschrijving

  3. U bent nu in het Chapter4 Sphere Terrace. Sleep een van de windturbines weg van het tafelblad en de oceaan en probeer het op de vloer te laten vallen. Het insluitingsveld voorkomt dat u dit doet.

Hoofdstuk 4: Samenvatting

In dit hoofdstuk hebt u Mesh-functies toegevoegd waarmee deelnemers aan uw ervaring het volgende kunnen doen:

  • Een object ophalen en verplaatsen

  • Een animatie activeren wanneer de deelnemer een object naar een triggervolume sleept

  • Een object alleen neerzetten in een bepaald gebied dat u hebt opgegeven

Volgende stappen

Hoofdstuk 5: Uw omgeving beschikbaar maken voor testen