Makros sind im Grunde das gleiche wie zugeklappte Knoten-Diagramme. Sie haben einen Einstiegspunkt und einen Ausgangspunkt, die durch Tunnelknoten bestimmt werden. Jeder Tunnel kann eine beliebige Anzahl von Ausführungs- oder Daten-Pins haben, die auf dem Makro-Knoten sichtbar sind, wenn sie in anderen Blueprints und Diagrammen verwendet werden.
Makros erstellen
In diesem Tutorial erstellen Sie ein Makro, um zu prüfen, ob ein Charakter genug Energie zum Springen hat. Hat er genug Energie, dann entzieht das Makro dem Spieler die Energie, gibt seinen aktuellen Wert auf dem Bildschirm aus und ruft dann die Funktion ab. Wenn der Spieler nicht genug Energie hat, gibt Ihr Makro auf dem Bildschirm aus, dass er keine Energie mehr hat. Damit wird verhindert, dass er springen kann.
Für dieses Beispiel verwenden wir das Blueprint Third Person Project mit aktiviertem Starter-Inhalt.
Nachdem Sie Ihr Projekt erstellt und gestartet haben, navigieren Sie zum Ordner
Inhalt/ThirdPerson/Blueprintsund öffnen den Blueprint BP_ThirdPersonCharacter.Navigieren Sie zum Fenster Mein Blueprint und klicken Sie dort auf die Schaltfläche Makro hinzufügen.
Ein neues Makro wird erstellt. Wählen Sie es aus und drücken Sie F2, um es in EnergyCheck umzubenennen.
Wählen Sie das Makro aus und navigieren Sie zu Details > Inputs. Klicken Sie auf Hinzufügen(+), um einen neuen Input mit dem Namen BeginCheck zu erstellen. Ändern Sie dann den Typ auf Exec** (Ausführungs-Pin).
Navigieren Sie zu Details > Outputs und klicken Sie auf Hinzufügen (+), um zwei neue Outputs zu erstellen. Benennen Sie einen HasEnergy und den anderen NoEnergy und legen Sie die Exec-Pin-Typen fest.
Dadurch werden Input-/Output-Knoten auf dem Makro-Knoten erstellt, die verwendet werden können, um Daten an das und vom Makro durchzuleiten.
Verwenden Sie für den Input einen Ausführungs-Pins namens BeginCheck, um das Makro zu starten. Erstellen Sie als Nächstes ein Script, das prüft, ob der Spieler genug Energie zum Springen hat, und wenn ja, führen Sie den HasEnergy-Pin aus. Wenn der Spieler nicht genug Energie hat, soll der NoEnergy-Pin ausgeführt werden.
Klicken Sie im Fenster Mein Blueprint auf die Schaltfläche Variable hinzufügen, um eine neue Float-Variable namens Energy zu erstellen.
Klicke Sie auf der Werkzeugleiste auf Kompilieren, wählen Sie dann Energie und navigieren Sie zum Details-Panel, um den Wert auf 100 festzulegen.
Klicken Sie im Diagramm Energie auf + Links-Klick, um einen Verzweigung-Knoten zu erstellen.
Blueprintcontext_graphHalten Sie Strg gedrückt und ziehen Sie die Energie-Float-Variable aus dem Mein Blueprint-Tab in das Makro-Diagramm. Klicken Sie auf den Output-Pin und ziehen ihn, um nach einem Größerer -Operator-Knoten zu suchen. Verbinden Sie dann den Output-Pin mit der Verzweigung.
Halten Sie Alt gedrückt und ziehen Sie die Energie-Variable herein, um einen Einstellen-Knoten hinzuzufügen.
Drücken Sie Strg und ziehen Sie erneut Energie ein und verbinden es mit einem Subtact(-)-Knoten; stellen Sie den Wert auf 10 und verbinden ihn mit dem Einstellen-Knoten. Mit diesem Script definieren wir, wenn die Energie > 0 ist, subtrahieren Sie 10 vom aktuellen Wert.
Rechtsklicken Sie in das Diagramm und fügen Sie einen Print String-Knoten hinzu. Verbinden Sie dann den Energie einstellen-Knoten mit dem In String-Pin.
Ein Konvertierung-Knoten wird hinzugefügt, der den Wert von Energie in einen String konvertiert, der auf dem Bildschirm angezeigt wird und seinen Wert anzeigt.
Fügen Sie vom False-Pin der Verzweigung aus einen weiteren Print String-Knoten hinzu und geben den Text „Energie verbraucht!“ in die Box ein. Verbinden Sie dann den ersten und zweiten Print String-Knoten mit dem HasEnergy-Pin bzw. dem NoEnergy-Pin.
Blueprintcontext_graphDas Makro ist jetzt eingerichtet, um die Energie-Variable zu prüfen (und gegebenenfalls davon zu subtrahieren) und auszugeben, ob Sie genug Energie haben oder nicht. Damit wird bestimmt, ob Sie springen können oder nicht. Jetzt müssen Sie das Makro implementieren, nachdem Sie die Sprung-Taste gedrückt haben, aber bevor die Springen-Action ausgeführt wird.
Ziehen Sie auf dem EventGraph den Gedrückt-Pin des InputAction Jump-Knoten und suchen Sie nach EnergyCheck.
Sie sollten sehen, dass das von Ihnen erstellte Makro unter Hilfsmitteln aufgeführt ist und neben seinem Namen ein Makro-Symbol hat.
Nach dem Hinzufügen des Makros sollte das Springen-Script ungefähr so aussehen wie unten.
Klicken Sie auf die Schaltflächen Kompilieren und Speichern und schließen Sie den Blueprint anschließend.
Klicken Sie auf Spielen in der Haupt-Symbolleiste im Editor.
Wenn Sie die Leertaste zum Springen drücken, wird in der oberen linken Ecke des Bildschirms der Wert von Energie auf dem Bildschirm angezeigt. Wenn Energie bei 0 liegt, sollten Sie nicht mehr springen können.
Endergebnis
Dies ist ein grundlegendes Beispiel für die Verwendung eines Makros zur Ausführung und Konsolidierung eines Scripts in einem einzigen Knoten, was die Lesbarkeit unseres Event Graph und des Hauptcharakter-Scripts verbessert. Außerdem können Sie dieses Makro in anderen Instanzen aufrufen. Wenn Sie zum Beispiel eine andere Action haben, welche die Energie des Spielers reduziert, und Sie prüfen möchten, ob dieser genug Energie zum Ausführen der Action hat (z. B. angreifen), können Sie dieses Makro ausführen, um zu prüfen, ob der Spieler anschließend genug Energie zum Angreifen hat. Drücken Sie Ihre Angreifen-Taste und führen Sie dann einen Angriff vom HasEnergy exec-Pin aus.