Pro Quickstart Guide ¶
Get started using Pro specific features. Please see the general Getting Started Guide if this is your first time using Logic Driver.
Video¶
Create a Node Class¶
Nodes can be extended through blueprints or C++ to allow reusable logic and node customization.
- Inherit from USMStateInstance, USMTransitionInstance, USMConduitInstance, or USMStateMachineInstance.
- Overload the virtual
_Implementation
methods, such asOnStateBegin_Implementation
. - See the Dialogue Plugin for an example C++ implementation of node classes.
Describe the Node¶
In your new node class give your node a name and category. This allows it to be considered a new node type in the state machine graph.
Display Variables on the Node¶
Any variable type can be displayed directly on the node. This allows either default values to be set or variables to be passed in and evaluated.
- Mark a variable public so it will be visible on the node.
- Make sure to
Compile
your class blueprint and state machine blueprint for the variable to display on the node.
- C++ variables need to be marked
BlueprintReadWrite
. - Setting
meta = (HideOnNode)
will always keep a variable from displaying on the node.
Assign Behavior to the Node¶
Rules can be assigned to each class to define which connections are allowed and where nodes can be placed.
This can be used to restrict when nodes show up in a context menu. For example, Dialogue Choice nodes can be configured to only be placed from a Dialogue Node. Custom transition classes can be automatically placed as well depending on which states are being connected.
Select the Node Class¶
In a state machine blueprint you can select the class you defined to be instanced in the graph.
The node will show up in your context menu just like normal nodes. By default it will be the title of the node class unless a different name was given in the description.
Once placed you will be able to drag & drop variables onto exposed node properties and edit values in the details panel. The details panel will have all of the normal node properties plus any variables you've added to your node.