Inhoud
- Wat vooraf ging
- Inleiding
- Wat moet het materiaal wijzigen doen?
- Wat hebben we ter beschikking?
- Materiaal wijzigen
- Line Trace aanpassen
- Testen
Wat vooraf ging
- U bent vertrouwd met de werkomgeving van Unreal Engine.
- U bent vertrouwd met Blueprint Visual Scripting.
- Deze handleiding maar deel uit van de reeks AEC Blueprints stap voor stap.
Inleiding
Deze handleiding is geïnspireerd door deze tutorial op de Unreal Engine Learning website.
In deze handleiding gaan we het materiaal wijzigen van een zetel.
De bedoeling van deze handleiding is om stap voor stap een aantal belangrijke programmeertechnieken toe te passen.
Het is niet de bedoeling van deze handleiding om in detail te gaan, de bedoeling is om snel tot een werkend resultaat te komen. De details vindt u in andere handleidingen die ik in deze handleiding link. In tegenstelling tot de meeste van mijn andere handleidingen ga ik deze handleiding niet uitbreiden/verdiepen met aanvullende video’s.
Situering van deze handleiding binnen Unreal Engine
Wat moet het materiaal wijzigen doen?
Wijzig het materiaal van een zetel als u in de omgeving van de zetel bent.
- U beschikt over een zetel, Static Mesh, en meerdere materialen waar u kunt uit kiezen.
- U kunt het materiaal enkel wijzigen als u in de omgeving bent van de zetel. Hiervoor kunt u een Box Collision gebruiken.
- Tekst dient aan te geven dat u het materiaal kunt wijzigen.
- Gebruik de reeds bestaande Line Trace om het materiaal te wijzigen met de linkermuisknop als u de zetel in het vizier hebt.
Welke programmeertechnieken worden gebruikt?
Onderstaande programmeertechnieken komen aan bod:
Wat hebben we ter beschikking?
Het project, dat we geïnstalleerd hebben in de inleidende handleiding, heeft ons het nodige materiaal aangereikt.
We werken enkel met:
- SM_MatChange
Merk op dat er ook reeds 2 materialen beschikbaar zijn: Fabric_Green en Fabric_White.
Materiaal wijzigen
- Open SM_MatChange.
De Blueprint bevat reeds de Static Mesh, de Box Collision en Text Render.
U moet enkel maar het materiaal kunnen wijzigen als uw Character in de omgeving van de zetel is. Om die omgeving af te bakenen dient de Box Collision. Is uw Character binnen de Box Collision dan moet het mogelijk zijn het materiaal te wijzigen, is uw Character buiten de Box Collision dan kan het materiaal niet gewijzigd worden.
- Ga naar de Event Graph.
- Klik met de rechtermuisknop in de Event Graph en zoek naar Event ActorBeginOverlap.
- Klik met de rechtermuisknop in de Event Graph en zoek naar Event ActorEndOverlap.
- We gaan hiervoor een variabele gebruiken om bij te houden of er al dan niet mag gewijzigd worden. Klik op + Variabele.
- Maak een nieuwe variabele aan met de naam CanUse van het type Boolean (True of False).
- Sleep de variabele CanUse in de Event Graph en kies voor Set zodat de waarde van de variabele kan ingesteld worden. Doe dit een tweede keer.
- Vink CanUse aan bij Event ActorBeginOverlap en laat het uitgevinkt bij Event ActorEndOverlap.
- Sleep de Text Render Interact in de Event Graph en verbind met de Set Visibility-node toe.
- Vink New Visibility aan bij Event ActorBeginOverlap en laat het uitgevinkt bij Event ActorEndOverlap.
We gaan nu een functie (een Custom Event) toevoegen voor het effectief wijzigen van het materiaal.
- Klik met de rechtermuisknop in de Event Graph en zoek naar Add Custom Event.
- Geef de Custom Event een gepaste naam (bv. ChangeMat).
- Sleep de variabele CanUse in de Event Graph en verbind deze variabele met een Branch.
We hebben 2 materialen waartussen we kunnen flipfloppen.
- Voeg een FlipFlop-node toe en verbind deze met de True-pin van de Branch-node. Dus enkel indien de variabele CanUse True is, ons Character zich binnen de Box Collision van de zetel bevindt, kan er gewijzigd worden.
Het materiaal van de zetel, SM_Chair_LP, moet gewijzigd worden.
- Sleep SM_Chair_LP in de Event Graph.
- Sleep vanuit SM_Chair_LP een verbindingslijn en zoek naar Set Material.
- We moeten 2 keer een materiaal wijzigen (de Flip en de Flop) dus zoek nogmaals naar Set Material.
- Selecteer voor de eerste Set Material Fabric_White.
- Selecteer voor de tweede Set Material Fabric_Green en verbind met de FlipFlop-node A– en B-pin.
- Voeg ook nog een Commentaar toe.
- Compile en Save.
Line Trace aanpassen
Om het materiaal effectief te wijzigen gaan we de reeds aangemaakte Line Trace gebruiken.
- Ga naar de folder FirstPersonBP – Level_BP en dubbelklik FirstPersonCharacter om de FirstPersonCharacter Blueprint te openen.
- Ga naar de LineTrace Graph. U ziet er de programmeercode voor LineTrace staan.
- De LineTrace moet nu voor 2 zaken gebruikt worden, de Lichtschakelaar en het wijzigen van het materiaal van de zetel. Voeg hiertoe, na de True-pin van de Branch-node, die True oplevert als de LineTrace iets geraakt, gehit heeft, een Sequence-node toe. De Sequence-node organiseert de volgorde waarin de code uitgevoerd wordt: eerst “dit” en direct nadien “dat” (dit is anders dan een FlipFlop waarin nu deze en de volgende keer de andere code wordt uitgevoerd).
- Voeg nu een Cast To SM_MatChange toe en As SM_Mat_Change voert u de hierboven aangemaakte functie Change Mat uit.
- Voeg de nodige Commentaar toe zodat duidelijker is wat de code precies doet.
- Compile en Save.
Testen
- Druk op Play.
- Ga naar de zetel (op het verdiep).
- Ga dichter in de omgeving van de zetel en op een gegeven ogenblik, wanneer u binnen de Box Collision (die u niet ziet in het spel) komt verschijnt de tekst.
- Wijs de zetel aan en druk op de linkermuisknop, de LineTrace wordt uitgevoerd en het materiaal van de zetel wordt gewijzigd.
- Ga wat achteruit. Op een gegeven ogenblik, als uw Character de Box Collision verlaat, verdwijnt de tekst maar het materiaal blijft gewijzigd.
- Ons project is klaar.