top of page

Action Guide DataTable

ActionGuideCreation.png

When making an Action Guide for your Action Objects you will want to make a DataTable. You can find DataTables under miscellaneous and then select the Action Guide row struct for it. You will use this to map all your instructions for your Action Objects. Below we will show you how to use this table and map commands for your objects.

ActionGuideData.png

Here are the rows used for the demo level I constructed for this plugin. Each row includes three things to make these objects work. The row name, which will need to match the Action Guide Name of the Action Object, tells the Action Object which row it will use to find its commands. The reference number for routing commands within the guide. As you will see this value is used in the Next Sequence Options to activate new possible sequences. These values are also available in hexadecimal to expand the number of objects you can have. Of course you can just use normal decimal numbers and everything will function just fine. The Sequence Information contains all the information the objects need to function and will be explained in more detail through the descriptions below.

Each row's Sequence Information contains an array of values four members each. This includes the Sequence Type which will assign what kind of sequence that value in the array is. The Sequence References which contain all the object references that will be passed on and used in that sequence. The Sequence Action Options are a list of actions you can have execute when the associated sequence is called. And the Next Sequence Options are an array of the sequences you want to be active after the associated sequence has finished execution. 

SequenceIndex.png
SequenceType.png
SequenceTypes.png

The Sequence Type section defines each sequence will do when executed. Below we will go through each type of sequence. The Custom Type Identifier is for use in the Custom Type sequences so you can create multiple custom sequences to call for your game.

The Sequence References is where you will put all the objects that are passed to the sequence to be executed. As we explain the different sequence types we will describe how these references are used with each.

SequenceReferences.png
SequenceReferences_Audio.jpg

The audio inputs are used in both the Player Speak and NPC Speak sequences. Player Speak will wait for the player to press the 'Audio Interact' input to call the sequence and the NPC Speak will be called immediately once the sequence is made available and the Action Object is active. When these sequences are called it will play the Audio Reference SoundWave object with the subtitle entered in Audio Subtitles. The sequence will be active for the length of the SoundWave passed in and made inactive once the played audio has finished.

The animation inputs are used in both the Player Animation and General Animation sequences. Player Animation will wait for the player to press the 'Physical Interact' input to call the sequences. The NPC Speak will be called immediately once the sequence is made available and the Action Object is active. When these sequences are called it will check to see if there is a valid Animation Reference first, calling that if it's found. Then it will check if there is a valid Level Sequence Reference and execute that if it is found. When called the length of both References will be checked and whichever is longer will be how long the sequence is active, turning inactive once both the Animation and Level Sequence has finished. If only one is valid it will just skip over whichever doesn't have an input. 

PlayerRequestAction.png

The Custom Object References are used in both Player Input Custom Type and Automatic Custom Type sequences. You can set up the player to use the Player Input Custom Type by setting up an Input Action similar to Custom Sequence Action setup in the Action Object Character Components section. With this you can make it so that the button you choice for the input action calls on the Player Request Action with a specific Custom Type Identifier. So if you select a Player Input Custom Type with a Custom Type Identifier of '2', it will only execute of the Input Action pressed also has that Custom Type Identifier of '2'. This will allow you to make multiple different Player Input Custom Types for your game to use. For the Automatic Custom Type it will be called with the Custom Type Identifier input as soon as the sequence is available and the Action Object is active. When executed it will call on the Custom Sequence Call blueprint function with an input of your Custom Object References array to use in your sequence execution. This should allow you to make sequences to do whatever you can create within the Action Objects blueprint.

The Action Options for a sequence are called once the sequence has been set active. These options will be checked on all sequences except for Start Stage, Action Hold, and End Stage. The Action Options sequence type will just call these options to be checked and executed. It is also the one sequence type that if made an option while the Action Object is not active, will be executed anyway. This allows you to do things like setting the Allow Activation true even when the object is unable to be active. All these options are further explained below.

Delay Action Timeout allows you to delay the execution of a non-player input sequence. If you want the player to press an input but don't want to tell them right away, you can use this. If you have it set to 5 your NPC Speak, General Animation, or Automatic Custom Type will wait for 5 seconds to see if a Player Speak, Player Animation, or Player Input Custom Type is selected. If not, the non-player input sequence will execute. Conversation Lock keeps the object from deactivating until the next sequence changes this value. If you want to make sure the Player cannot leave a conversation or series of sequences, make sure to check this box on each sequence. The only things that override this are an EndStage sequence or if the Set Allow Activation False is checked forcing the object to deactivate.

Allow Activation is a Boolean value that an Action Object will check before becoming active. If it is set false, the object will never activate when it's trigger box is hit. If it is set true then when the trigger box interacts with the player it will go through its checks to become active. Disable Allow Activation on Deactivation will be checked when an object deactivates. If this is true when the object is deactivated the Allow Activation will be set false. This can be nice if you want to permanently end the conversation when the player leaves the interaction, effectively EndStaging it when the object deactivates.

Custom Action Option calls the Custom Action Options Call function which should be in your parent Standard Action Object blueprint. You can use the Custom Type Identifier to select the custom action you want to use and the Custom Input is a string you can use to help pass instructions to the function. (See an example of this in the BP_StandardActionObject in the plugin's content folder) The Custom BPAction will call the Action Object Custom BPCall function which should be in your child Action Object blueprints. This is designed to be a more specific function for the child blueprints while the parent blueprints function is more general and therefore has the additional input that can be used to help specify its functionality.

The final thing for each sequence is the Next Sequence Options. These are to direct the Action Object to the next possible available sequences. You can Assign none, one, or multiple sequences to both itself and other Action Objects. Here you can see this object wants to have object 000 on sequence 1, object 004 on sequence 12, and object 00C on sequence 3 (Again you can use hex for the object's reference numbers if you want). If you have both a player input and a non-player input sequence selected, the non-player input will be seen first and executed unless the Delay Action Timeout is used. For inactive objects this will just set the next possible sequences for when it is active, except for an Action Options sequence. This sequence will be called while inactive to allow for execution of code while an object is inactive to do things like turn the Allow Activation boolean back to true.

bottom of page