Visual Graphing – Utility Graph Scripting


Background
In the 14 months I worked at Armature Studios on ReCore I created over 10 utility graphs for the team. Each graph had a different entry point but allowed the designer a wide variety of options when triggering additional external events. For instance, if a designer needed to trigger a cutscene a few seconds after a custom event was received, instead of spending the time to create a new graph in the project the OnCustomEventReceivedTriggerCutscene graph was ready for implementation. This graph could be rapidly implemented and configured to their needs.

Interactive Object Utility Graph:

Graph Functionality:

A. Point of Entry – A graph node named “Interactible Object Listener” represents the point of entry for this utility graph. When an interactive game object occupies the InteractiveObject variable, this node listens for any player interaction.

B. Persistence – The designer can configure persistence based on the interaction by checking the _Persist option to True. This will set a persistent boolean in the Global context when the object is interacted with.

C. Interactive Sound – An optional graph branch that allows the designer to define a sound that is triggered when the interactive object is interacted with by the player. If the WwiseEventOnAnimationStart value is left blank this branch of the graph is never processed.

D. Delay – The designer can define a delay before other utility graph branches are processed.

E. Toggle On/Off – A list of game objects may be defined in the OnInteractToggleOn and OnInteractToggleOff game object list variables. If either or both of the lists have a size of zero, the branches are not processed.

F. Custom Event – If the designer needs to send a custom event as a result of the interaction it is defined in this branch. If the custom event string is left blank the branch is not processed.

G. Components – As opposed to toggling on or off an entire game object, a designer can define components in the OnInteractDeactiveComponent and OnInteractActivateComponent variables.

H. Animations – If the designer needs to animate the interactive object or an external game object the animation controller and animation strings can be defined in this branch of the graph.

I. Timed Toggle On/Off – In the event the designer needs to toggle a game object on or off for a specific amount of time, this branch of the graph can be configured as needed.