Enhanced Input Sequence

Kehel18 - Code Plugins - Jan 7, 2024
3
5 out of 5 stars(3 ratings)
  • 100%
  • 0%
  • 0%
  • 0%
  • 0%

Enhanced Input Sequence plugin allows you to process Input Actions and their sequences

  • Supported Platforms
  • Supported Engine Versions
    5.1 - 5.3
  • Download Type
    Engine Plugin
    This product contains a code plugin, complete with pre-built binaries and all its source code that integrates with Unreal Engine, which can be installed to an engine version of your choice then enabled on a per-project basis.
Enhanced Input Sequence


TURORIAL

SUPPORT/FEEDBACK

EXAMPLE/SOURCE CODE


You can create all assets provided by this plugin via opening Content Browser context menu (with Right Mouse Button) and navigating to Misc category after plugin is installed. In the next sections all assets will be covered.


Input Sequence


Input Sequence - is main asset class which contains graph for setting up Input Action sequences to process with this asset. It is configured with Graph Editor to edit nodes and links between them and with Property Editor to edit asset and nodes properties. All basic operations for nodes (add node/move node(s)/copy node(s)/paste node(s)/remove node(s)/duplicate node(s), add link/break link(s), undo/redo) and all basic operations for properties (edit value/copy value/paste value/reset value, undo/redo) are supported and can be executed in a similar way as it goes with any other Blueprint Editor. By default Input Sequence always has Entry node which defines entry point for all Input Action sequences to process with this asset.


[IMPORTANT]

Dont forget to set World for Input Sequence asset before usage (see SetWorldContext method). Input Sequence Events within each one of node's collections (Enter Events, Pass Events or Reset Events) will be using this context when operating with world contexted nodes like Get Player Pawn, etc.


PROPERTIES:

  • [Reset Time] - Time interval after which any node will be reset (global, can be overriden on any node), zero value (0) means node will not be reset by time
  • [Step When Game Paused] - If true, active nodes will continue to step even if Game is paused (see OnInput method)
  • [Tick When Game Paused] - If true, active nodes will continue to tick even if Game is paused (see OnInput method)


Nodes


There are two classes of nodes that can be created - FLOW nodes and INPUT nodes. FLOW nodes are used to define flow, INPUT nodes are used to process input. Nodes can be entered, passed and reset.


Entry node

Entry node is a FLOW node, which defines entry point for all Input Action sequences to process with this asset. It is created by default and can not be copied, duplicated or removed. This node has no properties.


Hub node

Hub node is a FLOW node, which transmits signal on input pin to all output pins, allowing to have many Input Action sequences to process in one Input Sequence asset. Output pins can be added via "Plus" button at the bottom of each node and can be removed with "Cross" button for each output pin added. This node has no properties.


Input node

Input node is an INPUT node, which is used to configure list of Input Actions and Trigger Events for them to check. Input Action entries can be added via "Plus" button at the bottom of each node and can be removed with "Cross" button for each Input Action entry added.


PROPERTIES:

  • [Enter Events] - Collection of Input Sequence Events to execute when node is entered
  • [Pass Events] - Collection of Input Sequence Events to execute when node is passed
  • [Reset Events] - Collection of Input Sequence Events to execute when node is reset
  • [Request key] - Request Key (used to identify context in Event Requests and Reset Requests)
  • [Require Strong Match] - If true, node will be reset by any Input Action that is not listed
  • [Reset Time] - Time interval after which this node will be reset (overrides global value), zero value (0) means node will not be reset by time


[IMPORTANT]

See next section below for more details how to configure list of Input Actions and Trigger Events for them to check.


Reset node

Reset node is a special FLOW node, which requests to reset all active nodes of Input Sequence.


PROPERTIES:

  • [Request key] - Request Key (used to identify context in Event Requests and Reset Requests)


Input Action entries


Input Action entries can be added via "Plus" button at the bottom of each node and can be removed with "Cross" button for each Input Action entry added.


Simple rules to understand how entries and nodes are processed:

  • Node is passed if ALL entries on it are passed
  • Node can be reset if ANY entry on it is reset OR if node has [Require Strong Match] set to true and any Input Action that is not listed is met OR node is reset by [Reset Time]
  • Entry is passed if corresponding Input Action is met with corresponding Trigger Event and [Wait Time] condition is met
  • Entry can be reset if it is using Strong mode (~) or Precise mode (!) and required Trigger Event is not met or if [Wait Time] condition is not met
  • External Reset Request will reset all active nodes of Input Sequence (see RequestReset method)
  • Every Reset node will reset all active nodes of Input Sequence when it is entered


On each entry two main settings can be changed:

  • [S T C] - selector to choose Trigger Event, that will be waited to pass this entry. Three values for it are - S (Started), T (Triggered), C (Completed). Active value is colored with green color. Along with simple switching between those values, clicking on active value more will give two special modes - Strong mode (~) and Precise mode (!). Strong mode (~) means that any other Trigger Event will reset this entry. Precise mode (!) means that any other Trigger Event or none of any will reset this entry
  • [Wait Time] - Time interval of continious check after which this entry can be passed


Input Action Events


Input Sequence Event Base - is abstract blueprintable class that is supposed to be parent class for C++ or BP child classes. It should be used to configure custom logic when entering, passing and resetting nodes. The main process is like:

  • Create child class and override Execute method to setup custom logic
  • Instanciate event of creatded child class within one of node's collections (Enter Events, Pass Events or Reset Events)
  • Setup properties on instanced event


[IMPORTANT]

See plugin Content folder to check how Input Action Events are used in Example project


Input Action Request Key


Input Action Request Key - is simple asset class without any properties. It should be used simply to identify context in Event and Reset Requests. For example, that can be useful when one of two Reset nodes was entered triggering reset and it is important to identify if that was first Reset node or other. The same usage goes with Input nodes.


[IMPORTANT]

See plugin Content folder to check how Input Action Request Keys are used in Example project


Additional Nodes


For simplicity plugin also contains Player Controller EIS child class for Player Controller that just adds two BP Implementable events - OnPreProcessInput and OnPostProcessInput. They can be used to add custom logic in BP precisely before engine input processing and after engine input processing.


Plugin Content folder contains Example project…

Technical Details

Features:

  • Enhanced Input Sequence plugin allows user to create Input Sequences (graph) and configure them for various reasons
  • Enhanced Input Sequence plugin allows user to create Input Sequence Events that are executed by Input Sequences when nodes are enetered, passed or reset
  • Enhanced Input Sequence plugin allows user to create Input Sequence Request Keys that can be used to pass context data from active node to events

Code Modules:

  •  InputSequenceCore [Runtime]
  •  InputSequenceCoreEditor [Editor] 

Number of Blueprints: 0

Number of C++ Classes: 42

Network Replicated: (Yes/No)

Supported Development Platforms: Win64, Linux, Mac

Supported Target Build Platforms: Win64, Linux, Mac

Documentation: see full description above

Example Project: see plugin Content folder

Important/Additional Notes: see full description above