Das Scriptable Tools-System bietet Funktion und einen Editor-Modus, um benutzerdefinierte interaktive Werkzeuge zu erstellen. Das Ziel des Systems ist es, es Nicht-C++-Programmierern zu ermöglichen, interaktive Werkzeuge in Unreal Engine zu erstellen.
Der Hauptreferenzpunkt für ein interaktives Werkzeug ist der Modellierungs-Editor-Modus. Allerdings hat das „Scriptable Tools“-System keine direkte Verbindung zum Modellierungmodus oder Geometrie-Scripting.
Das Plugin für das „Scriptable Tools“-System stellt das Interactive Tools Framework für Blueprint (BP) bereit und bietet Entwicklern und technischen Künstlern die Möglichkeit, Werkzeuge zu entwickeln, die sich ähnlich wie der Modellierungsmodus verhalten.
Wir empfehlen, die Grundlagen von Blueprints zu verstehen, um mit „Scriptable Tools“ loszulegen. Weitere Informationen finden Sie unter Introduction in Blueprints.
Indem Sie Blueprint (BP)-Subklassen von Basis-Klassen erstellen, können Sie dem Editormodus Scriptable Tools benutzerdefinierte Werkzeuge hinzufügen. Mit dem Editor-Modus können Künstler auf diese benutzerdefinierten Werkzeuge für ihr Projekt zugreifen.
Wofür ist das „Scriptable Tool“?
Sie können das „Scriptable Tool“ verwenden, um Folgendes auszuführen:
- Ausführen eines beliebigen Blueprint (BP)-Diagramms beim Einrichten und Abschalten des Werkzeugs sowie bei Ticks.
- Grundlegende 3D-Geometrien (z. B. Linien und Punkte) und 2D-HUD-Geometrien (z. B. Text an projiziertem 3D-Positionen) zeichnen
- Eigenschaften zu einem Werkzeug hinzufügen, definiert durch Blueprints, die als für Nutzer sichtbare Werkzeugeinstellungen fungieren.
- Überwachen und reagieren auf Änderungen an diesen Eigenschaftsparametern.
- Ein oder mehrere 3D-Gizmos erstellen, ihre Positionen steuern und auf Transformationsänderungen reagieren.
- Gibt dem Nutzer eine Feedback-Meldung.
- Input-Geräteverhalten hinzufügen, wie Mausklick, Maus-Hover und Tastaturüberwachung, und Blueprint-Diagramme bei Schlüssel-Events ausführen.
- Integration mit Blueprint Slate Widgets (UMG), um benutzerdefinierte Benutzeroberflächen (UI) wie in Viewport-Widgets bereitzustellen.
- Benutzerdefinierte Bedingungen für das Starten des Werkzeugs in Abhängigkeit von der aktuellen Szenenauswahl definieren.
Sie können „Scriptable Tools“ mit anderen Funktionen der Engine kombinieren, wie etwa Procedural Content Generation (PCG) und Motion Design.
Einen Überblick über das System und wie der Entwickler es mit anderen Funktionen verwendet hat, um ein Verlies zu bauen, finden Sie im Video Geometry Scripting and Scriptable Tools | Unreal Fest 2024.
Zugriff auf den Editor-Modus und die Knoten von „Scriptable Tools“
Plugin aktivieren
Um den Editor-Modus des „Scriptable Tools“ zu verwenden und auf den Knoten zuzugreifen, müssen Sie das assoziierte Plugin aktivieren.
Um das Plugin zu aktivieren oder zu überprüfen, ob es bereits aktiviert ist, führen Sie diese Schritte aus:
-
Wählen Sie in der Menüleiste *Edit > Plugins** aus.
-
Geben Sie in der Suchleiste „scriptable tools“ ein.
-
Aktivieren Sie das Plugin Scriptable Tools Editor Mode und wählen Sie im Dialog-Popup Yes aus.
Sie müssen das Framework-Modul „Scriptable Tools“ nicht aktivieren. Der Editor-Modus schließt es automatisch ein.
Editor-Modus
Über den Editor-Modus von Scriptable Tools haben Sie Zugriff auf alle Script-fähigen Werkzeuge. Um den Editor-Modus zu öffnen, klicken Sie im Level-Editor auf die Dropdown-Liste Selection Mode.
Jedes Werkzeug erscheint in einer automatisch verwalteten Werkzeugpalette im Editor-Modus, und die Eigenschaft, die für ein aktives Werkzeug festgelegt wurde, erscheint im Einstellungen-Panel. Weitere Informationen zu den Editor-Modi finden Sie unter Level Editor Modes.
Die Werkzeugpalette enthält eine Filteroption, die Werkzeugs basierend auf einem Gruppen-Tag anzeigt. Mit dieser Funktion können Sie Werkzeuge gruppieren und auswählen, welche Werkzeuggruppen im Editormodus geladen werden sollen. Die Gruppierung hilft dabei, ein Projekt mit vielen Werkzeugen zu organisieren, was die kognitive Belastung durch die Anzeige aller Werkzeuge verringern kann.
Blueprint-Knoten
Um Werkzeuge zu erstellen, die im Editor-Modus erscheinen, verwenden Sie die in Blueprints verfügbaren Funktionen des „Scriptable Tool“. Sie können entweder eine Blueprint-Klasse oder einen Editor-Hilfs-Blueprint verwenden, um auf die Basis-Klasse des „Scriptable Tool“ zuzugreifen. Weitere Informationen zur Basis-Klasse und Subklasse finden Sie im Abschnitt Klassen des „Scriptable Tool“ auf dieser Seite.
Im Blueprint-Editor befinden sich alle „Scriptable Tool“-Knoten im Untermenü „Scriptable Tool“.
Untermenü des „Scriptable Tool“ im Blueprint-Editor.
Eine vollständige Liste von Funktion finden Sie in der API-Dokumentation von Blueprints und Python.
Unterschiede zwischen „Scriptable Tool“ und Editor-Hilfsmittelwidgets
Ein Editor-Hilfsmittelwidget (EUW) ist ein nicht-modales Dialogfenster, das eine benutzerdefinierte Benutzeroberfläche enthält, die mit einem GUI-Builder erstellt wurde und in der Sie jede Art von Editor-Scripting durchführen können. Dies ist eine äußerst leistungsfähige Möglichkeit, aber da es sich um einen nicht-modalen Dialog handelt, gibt es verschiedene Einschränkungen.
Ein interaktives Werkzeug (die Basis für „Scriptable Tools“) ist modal. Modal bedeutet, dass kein anderes Werkzeug aktiv sein kann, während das Werkzeug aktiv ist, und der Editor-Zustand wird strenger verwaltet. Beispielsweise wird das Werkzeug automatisch heruntergefahren, bevor gespeichert, Levels geändert oder Play In Editor (PIE) gestartet wird, und die automatische Speicherung wird zurückgestellt, bis Sie das Werkzeug beenden. Diese Funktionalität bedeutet, dass viele Dinge in einem Werkzeug sicherer sind als sonst. Wenn Sie zum Beispiel temporäre Actors in einem Level erstellen und sie beim Abschalten des Werkzeugs zerstören, werden sie nicht versehentlich gespeichert.
In ähnlicher Weise kann ein Werkzeug als modaler Zustand die Maus effizienter erfassen.
In Bezug auf die Benutzeroberfläche ist ein Script-fähiges Werkzeug strukturierter als ein EUW. Sie können die Eigenschaft als separate BP-Objekte mit öffentlichen Variablen definieren. Diese öffentlichen Variablen werden dann in einem Standard-Editormodus-Einstellungs-Panel angezeigt.
„Scriptable Tools“ sind zur Laufzeit verfügbar, allerdings muss eine zusätzliche Infrastruktur eingerichtet werden, um diese in einem UE-Projekt zu nutzen.
Darüber hinaus bieten „Scriptable Tools“ einen zentraleren Ort zum Auffinden und Zugreifen auf alle im Projekt gefundenen Werkzeuge, während auf EUWs primär über den Inhaltsbrowser zugegriffen wird und die Verwaltung der Auffindbarkeit und Organisation dem Nutzer überlassen bleibt.
Klassen des „Scriptable Tool“
UScriptableInteractiveTool ist die Basis-Klasse für alle „Scriptable Tools“. The Klasse umfasst Events, allgemeine Einstellungen wie Werkzeugname, Rendering-Optionen, Gizmos, Messaging, Werkzeug-Shutdown-Optionen und mehr für die Subklassen. Sie können seine Editor-Variante, UEditorScriptableInteractiveTool, verwenden, um Zugriff zu Editor-exklusiven BP-Funktionen bereitzustellen.
UScriptableModularBehaviorTool und UEditorScriptableModularBehaviorTool sind die Subklassen für die Unterstützung von Maus- und Tastaturinteraktionen innerhalb des Werkzeugs. Diese beiden Klassen werden allgemein verwendet, sofern das Maus- und Tastaturverhalten nicht erforderlich ist.
UScriptableClickDragTool ist veraltet. Werkzeuge, die Sie zuvor aus der Klasse erstellt haben, werden jedoch in der neuesten Editor-Version funktionieren.
Wenn Sie eine Blueprint-Klasse oder ein Hilfs-Widget-Blueprint erstellen, müssen Sie eine der oben genannten Klassen auswählen, um auf den „Scriptable Tools“-Knoten zuzugreifen. Weitere Informationen zu diesen Klassen finden Sie im Abschnitt Modulares Basiswerkzeug auf dieser Seite.
Einstellungen des „Scriptable Tool“
Die Basis-Klasse gibt verschiedene Einstellungen frei, die in erster Linie für die UI des „Scriptable Tool“-Editor-Modus gelten, steuert aber auch das Werkzeugverhalten. Wenn Sie Ihre Blueprints öffnen, enthält das Details-Panel für das Werkzeug die folgenden Optionen.
| Knoten | Beschreibung |
|---|---|
| Tool Name | Kurzname für das Werkzeug. Dies ist derzeit, was im Editormodus unter dem Symbol des Werkzeugs angezeigt wird. |
| **Long Name | Wird an anderen Stellen angezeigt, beispielsweise neben den Schaltflächen zur Werkzeug-Vervollständigung. |
| Category | Legt fest, in welcher Sektion der Werkzeugpalette das Werkzeug platziert wird. |
| Tooltip | Der Text, der beim Bewegen des Mauszeigers über das Symbol angezeigt wird und Aufschluss über das Werkzeug gibt. |
| Custom Icon Path | Links zum Bildformatpfad (.png oder .sv) zur Anzeige des Werkzeugsymbols. |
| Visible in Editor | Legt fest, ob die Werkzeugklasse in der Benutzeroberfläche des Editormodus angezeigt werden soll. Dies kann nützlich sein, um in der Entwicklung befindliche Werkzeuge oder Werkzeug-BP-Basis-Klassen auszublenden, die in Subklassen unterteilt werden sollen. |
| Shutdown Type | Legt fest, ob das Werkzeug im Werkzeugbestätigungs-Panel die Option Accept/Cancel oder Complete hat. Diese Option beeinflusst die Funktionalität des Werkzeugs. |
| Tool Startup Requirements | Bestimmt die Startbedingungen für das Werkzeug. Umfasst die folgenden Optionen:
|
| Group Tags | Listet alle Gruppen-Tags auf, zu denen das Werkzeug gehört. Wird vom Modus verwendet, um zu filtern, welche Tools vom Modus geladen und dem Nutzer zur Ausführung bereitgestellt werden sollen. |
„Scriptable Tool“-Events
Die Klasse „Scriptable Tool“ bietet eine Reihe von Standard-Events für Ihr Werkzeug, um verschiedene Dinge zu verschiedenen Zeiten zu tun. Es gibt Standard-Events, die jede Werkzeugklasse hat, und verschiedene zusätzliche Funktionen sind in den Basis-Werkzeugen verfügbar.
-
Event „On Script Setup“: Wird einmal ausgeführt, wenn das Werkzeug gestartet wird. Hier würden Sie im Allgemeinen Eigenschaftssätze hinzufügen, Vorschauobjekte erstellen und mehr.
-
Event „On Script Tick“:** Wird bei jedem Editor-Tick ausgeführt, genau wie andere Ticks.
-
Event „On Script Shutdown“: Wird ausgeführt, wenn das Werkzeug heruntergefahren wird. Wenn zum Beispiel der Nutzer das Werkzeug explizit schließt, erzwingt der Modus das Abschalten, oder das Werkzeug fährt sich selbst herunter.
-
Event „On Script Draw HUD“: Führt jeden Frame aus und dort, wo das Werkzeug ein 2D-HUD von einem HUD-API-Objekt zeichnen kann. Weitere Informationen finden Sie im folgenden Abschnitt.
Event „On Script Render“ ist eine alte Zeichnen-Methode. Das Event wird in jedem Frame ausgeführt und erlaubt es dem Werkzeug, einfache 3D-Geometrie wie Linien und Punkte zu zeichnen. Sie können die alte Funktion verwenden, sollten dabei aber Folgendes beachten:
-
Das Event passiert in Echtzeit, sodass die Linien jedes Mal neu gezeichnet werden, wenn Render aufgerufen wird.
-
Es sind keine dauerhaften Referenzen auf die Geometrie vorhanden, daher müssen Sie die Handhabung der Grundkörper im Blueprint verwalten.
Benutzerdefinierte Bedingungen
Sie können benutzerdefinierte Bedingungen basierend auf den aktuellen Szenenauswahlen hinzufügen, um das Werkzeug zu starten. Definieren Sie die benutzerdefinierten Bedingungen in Class Defaults > Details panel > Scriptable Tool Settings > Tool Setup Requirements > Custom.
Die benutzerdefinierte Klasse enthält die folgenden Funktionen:
-
OnCanBuildTool: Muss auf Tick ausgeführt werden.
-
OnSetupTool: Wird ausgeführt, nachdem der Nutzer geklickt hat und bevor das Werkzeug ausgeführt wird.
Das Werkzeug-Builder-Diagramm wird bei jedem Tick ausgeführt. Daher besteht bei komplexen Bedingungen hier die Gefahr, dass die Performance des Editors beeinträchtigt wird.
Werkzeug-Rendering
Es ist üblich für ein Werkzeug, visuelles Feedback zu liefern. Eine Möglichkeit, dieses Feedback zu definieren, ist das Spawnen von temporären Actors. Sie können beispielsweise temporäre dynamische Mesh-Actors mit Meshs spawnen, die prozedural durch Geometrie-Scripting generiert werden. Ein Linien- oder Text-Label ist jedoch oft effektiver.
„Scriptable Tools“ unterstützen dieses Rendering, indem sie API-Objekte mit einer Reihe von „UFunction“-Knoten bereitstellen.
Rendering-Optionen
Die Drawing-API von „Scriptable Tools“ umfasst einen Render-Optionssatz für Linien, Punkte und Dreiecke. Jedes Set umfasst dann zusätzliche relative Optionen in der Kategorie „Drawing“.
Diese Zeichnenoptionen werden vom Werkzeug allokiert und enthalten die Geometrie. Mit diesen Sets können Sie die entsprechende Geometrie zu jedem Zeitpunkt während der Lebenszeit des Werkzeugs hinzufügen und entfernen und sie nach Bedarf aktualisieren.
Der Knoten Add Triangle Set umfasst Optionen für quads.

Alte Optionen
Sie führen die alten Rendering-Befehle im Event-Knoten Event On Script Render aus.
Wie bereits bei diesem Event erwähnt:
-
Sie können mit der Rendering-API überschreiben.
-
Linien und Punkte zeichnen.
-
Es wird bei einem Tick ausgeführt und verschwindet beim nächsten Tick.
-
Keine Persistenz.
Die Events „2D Draw HUD“ und „3D Render“ werden mit den Objekten DrawHUDAPI bzw. RenderAPI aufgerufen. Das Werkzeug erstellt und verwaltet diese API-Objekte intern. Sie können nur über diese Events darauf zugreifen, da sie von den vom Werkzeug bereitgestellten temporären Zustandsinformationen pro Frame abhängen.
BP hat ebenfalls eine Standardbibliothek mit Debug-Zeichnen-Funktionen. Diese können Sie alternativ zu den DrawHUD- und Render-Funktionen nutzen und jederzeit aufrufen. Sie sind jedoch nur für die Entwicklung gedacht und die Render-APIs des Werkzeugs bieten mehr Funktionalität.
Gizmos
Eine weitere Funktionalität der Basis-Klasse des „Scriptable Tool“ ist die Option, mehrere 3D-Transformations-Gizmos zu erstellen. Dieses Widget ist nicht das Standard-Editor-Gizmo, sondern das Gizmo des Modellierungsmodus. Es steht ein Set von Funktionen zum Entwickeln und Verwalten von Gizmos sowie ein Event zum Reagieren auf Gizmo-Änderungen zur Verfügung.
Gizmo-Objekte werden Blueprints nicht direkt exponiert. Stattdessen spawnen Sie ein Gizmo mit dem String Identifier und die verschiedenen Funktionen und Events des Gizmo arbeiten mit dieser Kennung.
| Knoten | Beschreibung |
|---|---|
| CreateTRSGizmo | Erstellt ein TRS-Gizmo (Verschieben, Drehen und Skalieren) mit dem angegebenen Identifier und den Gizmo Options. Weitere Informationen zu den Optionen finden Sie im Text nach der Tabelle. |
| DestoryTRSGizmo | Zerstört eines vorhandenes Gizmo nach Name. Alle Gizmos, die im Kontext eines Werkzeugs erstellt wurden, werden beim Beenden des Werkzeugs zerstört. |
| Get Gizmo Transform | Holt die aktuelle Transformation auf einem Gizmo nach Name. |
| Set Gizmo Transform | Aktualisiert die aktuelle Transformation auf einem Gizmo nach Name. |
| Set Gizmo Visible | Blendet ein Gizmo nach Name aus oder zeigt es an. |
| Event On Gizmo Transform Changed | Wird ausgelöst, wenn ein aktives Gizmo transformiert wird. Verwenden Sie die Kennung, um zu unterscheiden, welches Gizmo geändert wurde. |
Das grundlegende TRS-Gizmo kombiniert Verschiebungs-, Drehungs- und Skalierungselemente für alle Achsen. Durch angepasste Gizmo-Optionen können Sie jedoch einfachere Gizmos für bestimmte Aufgaben erstellen. Beispielsweise können Sie nur die Verschiebung und Drehung in der XY-Ebene aktivieren, indem Sie die anderen Gizmo-Unterelemente deaktivieren.
Werkzeug-Messaging
Die standardmäßige „Scriptable Tool“-BP-API bietet verschiedene Funktionen für Nachrichten an den Nutzer.
-
Display User Help Message: Aktualisiert einen Hilfe-String am unteren Rand der Editor-Benutzeroberfläche.
-
Display User Warning Message: Aktualisiert einen String im Werkzeugeinstellungen-Panel.
- Clear User Messages: Löscht die aktuellen Hilfe- oder Warnmeldungen.
- Add Log Message: Gibt derzeit eine Nachricht in das Editor-Log aus.
Die obigen Nachrichten sind FText-Strings und können daher lokalisiert werden. Derzeit kann nur eine einzige Warnung angezeigt werden. Dies kann in Zukunft verbessert werden.
Sonstiges
Ein „Scriptable Tool“ wird immer im Kontext einer aktuellen Welt ausgeführt. Im Level-Editor ist es beispielsweise die Standard-Levelwelt. Sie können die Funktion Get Tool World verwenden, um auf diese Welt im Kontext eines Werkzeugs zuzugreifen.
Werkzeug abschalten
Der Standardablauf zum Beenden eines „Scriptable Tool“ besteht darin, in der Benutzeroberfläche auf eine der Schaltflächen Accept, Cancel oder Complete zu klicken. Sie können ein „Scriptable Tool“ jedoch explizit über die Funktion Request tool Shutdown abschalten, die das Werkzeug selbst aufrufen kann. Diese Funktion nimmt ein bAccept-Flag, das nur für Werkzeuge mit der Option zum Akzeptieren oder Abbrechen des Abschaltens und einer optionalen Popup-Nachricht für den Nutzer relevant ist.
Werkzeug-Eigenschaftssätze
Ein Script-fähiges Tool kann dem Nutzer UI-Widgets aus Property Set-UObjects verfügbar machen, die in einem Standardeinstellungs-Panel des Werkzeugs angezeigt werden. Derzeit gibt es keine Möglichkeit, diese Benutzeroberfläche in Blueprints zu personalisieren, so dass nur Standard-Eigenschaftseinstellungen (ähnlich wie bei einem Parameter in einem Actor-BP) verfügbar sind.
Um einen Eigenschaftensatz zu erstellen, erstellen Sie eine BP-Subklasse vom Typ ScriptableInteractivetoolPropertySet, wie unten gezeigt.
Anschließend können Sie den Eigenschaftensatz der BP-Subklasse zum Bearbeiten öffnen und öffentliche Member-Variablen hinzufügen. Nachfolgend werden die Typen Boolean, Integer und Enum hinzugefügt.
Um den Eigenschaftensatz in einem bestimmten „Scriptable Tool“ zu erstellen, verwenden Sie die Funktion Add Property Set of Type. Diese Funktion wird allgemein im Event „On Script Setup“ verwendet. Sie können Sie aber jederzeit verwenden.
Sie müssen den richtigen Klassentyp für den Parameter Property Set Type auswählen. Wählen Sie den Typnamen Ihrer BP-Subklasse, die Sie oben erstellt haben. Außerdem müssen Sie für jeden Eigenschaftensatz einen eindeutigen Identifier festlegen (Sie können mehrere Eigenschafts-Sets in einem einzigen Werkzeug kombinieren). Sie werden wahrscheinlich später Zugang zu diesem Eigenschaftensatz-Objekt benötigen. Wir empfehlen Ihnen, den Output von Add Property Set Of Type in Ihren BP-Subklassentyp umzuwandeln und ihn in einer lokalen Variable zu speichern.
Wenn der Nutzer eine Instanz Ihres „Scriptable Tools“ erstellt, wird die öffentliche Member-Variable Ihres Eigenschaftensatzes im Einstellungen-Panel Scriptable Tools auf der linken Seite neben der Werkzeugpalette angezeigt.
Die „Scriptable Tool“-Klasse hat verschiedene Hilfsfunktionen für die Arbeit mit Eigenschaftensätzen. Sie können Remove Property Set by Name verwenden, um einen Eigenschaftensatz zu entfernen. Beachten Sie jedoch, dass dies in den meisten Fällen nicht notwendig ist. Wenn Sie einen Eigenschaftensatz einfach basierend auf bestimmten Kriterien oder einer anderen Parameteränderung ausblenden oder anzeigen möchten, verwenden Sie Set Property Set Visible by Name.
Darüber hinaus können Sie beim Abschalten des Werkzeugs die Funktion Save Property Set Settings verwenden, um die aktuellen Werte eines Eigenschaftensatzes zu speichern. Mit Restore Property Set Settings können Sie diese gespeicherten Werte beim Einrichten des Werkzeugs wiederherstellen. Standardmäßig werden in jedem Werkzeug, das die Eigenschaftensatz-Klasse verwendet, dieselben Werte wiederhergestellt. Es kann jedoch ein optionaler Save Key bereitgestellt werden, um unterschiedliche Werte in unterschiedlichen Werkzeugen oder sogar innerhalb desselben Werkzeugs zu speichern oder wiederherzustellen.
Eigenschaftswächter
Eine allgemeine Funktion, die Sie wahrscheinlich mit einem Eigenschaftensatz machen möchten, ist auf Änderungen im Eigenschaftswert zu reagieren. Die einzige vollständig zuverlässige Lösung besteht darin, nach Wertänderungen in der Tick-Funktion zu fragen. Da dies jedoch ein allgemeines Muster ist, bietet das „Scriptable Tool“-System Eigenschaftswächter-Hilfsfunktionen, die diese Abfrage automatisch ausführen können.
Sie können die folgenden Funktionen in einem „Scriptable Tool“ verwenden, um auf Änderungen in einer bestimmten Eigenschaft eines Eigenschaftensatzes zu achten und ein Event aufzurufen, wenn der Wert geändert wird.
In BP ist es derzeit nicht möglich, einen UProperty-Typ automatisch aus einer Variablenreferenz zu erkennen. Um die Erkennung einzurichten, stellen Sie Folgendes sicher:
- Vergewissern Sie sich, dass Sie die Funktion verwenden, die dem Typ der öffentlichen Variable im Eigenschaftensatz entspricht.
- Übergeben Sie den richtigen Property Name (der Name der öffentlichen Variable im Eigenschaftensatz).
Wenn es sich nicht um einen einfache Typ handelt (die Eigenschaften Int, Float, Bool, String, FName, Enum oder Object), verwenden Sie die allgemeine Version Watch Property. Ihr Callback-Event ist jedoch begrenzter.
Unten sehen Sie ein Beispiel für die Funktion Watch Enum Property. Dies ist der komplexeste der einfachen Typen, da der Enum-Typ unbekannt ist. Der Parameter New Value, der an das Callback-Event übergeben wird, ist ein uint8 und muss explizit in den korrekten UEnum-Typ (in diesem Fall EGGeometryScriptAxis) umgewandelt werden. Es ist derzeit nicht möglich, hier auf Fehler zu prüfen. Der Editor wandelt die Funktion in einen Enum-Typ um.
Für komplexe Parameter, etwa ein geschachteltes UStruct wie eine FVector-Membervariable, können Sie die Funktion Watch Property verwenden. Diese Funktion kann Änderungen an fast jeder UProperty-Variable erkennen. Das Callback-Event empfängt jedoch nicht den Parameter New Value wie die anderen Felder. Wenn Sie eine Member-Variable für die in Ihrem Werkzeug festgelegte Eigenschaft erstellen, können Sie den Eigenschaftswert direkt im Event holen. Dieser Wächter-Typ erfordert außerdem mehr Rechenleistung und sollte nur bei Bedarf verwendet werden.
Modulares Basis-Werkzeug
Basis-Werkzeuge sind C++-Subklassen des Scriptable Interactive Tool Framework, die zusätzliche eingebaute Funktionalität bieten, um allgemeine Fälle zu bearbeiten und zusätzliche Funktionalität wie die Handhabung und Erfassung von Input-Geräten zu bieten. Sie wählen ein Basis-Werkzeug basierend auf dem Typ des Werkzeugs aus, das Sie erstellen möchten. Die Editor-Version des Basis-Werkzeugs bietet Zugriff zu Editor-exklusiven BP-Funktionen.
Die Klasse Scriptable Modular Behavior Tool und ihre Editorinstanz bieten Zugriff auf Verhaltensfunktionen, die durch eine Liste von Callbacks parametrisiert werden. Dieses System ersetzt die integrierten Events und bietet die Möglichkeit, Verhaltensweisen zu kombinieren und anzupassen, möglicherweise sogar mit Duplizierung. Dieser Ersatz ist hilfreich, da Sie innerhalb eines einzigen Werkzeugs mehrere Klickverhalten erstellen können, die unterschiedliche Bedingungen auslösen. Beispielsweise ein Klick mit der linken Maustaste, ein weiterer mit der rechten und ein weiterer mit der linken + Strg.
Die exponierten Verhaltensweisen umfassen Folgendes:
- Klicken und ziehen
- Hover
- Mausrad
- Mehrfachklicken
- Klicken oder ziehen
- Einzelne und mehrfache Tastatureingaben
„Scriptable Tools“ Verhaltenseingaben.
Plugins Editor-exklusiv aktivieren
In Unreal Engine können Sie Plugin-Abhängigkeiten für Projektmodule und Plugins definieren.
In den Dateien .uproject und .uplugin, die UScriptabletoolsFramework oder UScriptabletoolsEditorMode für die Verwendung im Editor erfordern, konfigurieren Sie die Sektion TargetAllowList auf Editor.
Mehr über Plugins und die Dateikonfiguration erfahren Sie unter Plugins.
{
"Name": "ScriptabletoolsEditorMode",
"Enabled": true,
"TargetAllowList": [
"Editor"
]
},
Nächste Schritte
Mit einem grundlegenden Verständnis des „Scriptable Tools“-Systems können Sie mit dem Tutorial Creating a Scriptable Tool mit der Erstellung Ihrer Werkzeuge loslegen.