It's a cross-platform tool that you can make the cutscenes interactive and ask the player to press certain keys during the cutscene. You can also use it on non-cutscene situations as well, there is no limitation!
I’ve tried to put tooltips and comments everywhere so make sure you check out each property’s tooltip first!
Extremely Easy to Use
100% Blueprint
Cross-platform
Enhanced Input System Support (UE5.1+)
Built-in Sequencer Support
3 Different Key Prompt Modes (Press, Hold and Spam)
Optimized
Supports both UE4 and UE5
Open up your character blueprint.
P.S: It has to be derived from Character class.
Add "Interactive Cutscene" component to your character blueprint.
Go to Project Settings -> Engine -> Enhanced Input
Then tick "Enable World Subsystem" and "Enable User Settings" boxes.
Enjoy using it!
Make sure you check out the "Examples" folder.
Whenever you call any of these functions below a key will pop up on the screen and player will have to press, hold or spam it.
Default: The typical type, you can use it if your use case doesn't fit in the provided functions, this is the most flexible version.
Eventless: Basically it's the typical type but it has no events since events are not optional, you will probably use this function the least.
Sequencer: This type is compatible with level sequencers and can control the sequencer based on the settings you set while calling the function. You will probably use this the most especially in sequencer blueprints.
Now let's go ahead and explain all of the function parameters.
Keys: I'll explain this at the end.
Type: There are 3 types of key prompt types.
1. Press: Succeeds when the player presses the shown key/button on the screen before the timeout.
2. Hold: Succeeds when the player holds down the shown key/button on the screen before the timeout.
3. Spam: Succeeds when the player spams the shown key/button on the screen enough times before the timeout.
Hold Time: Only relevant when the Type's set to Hold. Obviously it determines how long should the player hold down the popped key in order to end the key prompt.
Spam Times: Only relevant when the Type's set to Spam. How many times should the player hit the button to succeed?
Slomo: Slow motion on key show up, range[-1,1] Controls the game's time dialation; 0 pauses the game and negative values won't touch the time dialation.
Position: [-1,1] Determins the location of the key prompt. X is for the horizental axis, 1: Right | 0: Center | -1:Left and Y is for the vertical axis, 1: Top | 0: Center | -1: Bottom. You can pretty much pop the key up anywhere you wish on the screen.
Timeout: You can set a limit for the player to succeed if they couldn't it will timeout and they will fail and the key will hide.
On Key Down: Executes every time the player presses the prompted key.
On Key Up: Executes every time the player releases the prompted key.
On Success: Fires when the player succeeds. Pressed, Holds or Spam the key correctly.
On Timeout: Fires when the player misses the key prompt.
Keys: The that will show up on screen. The reason why it's a map is because of the cross-platform feature. You have to determine a key for each platform (if you wish to use that platform otherwise just ignore it)
Take a look at the image, that's how you can build up a key map.
There are 2 ways of retrieving a key:
Direct Input: Enter the key/button directly
Input Action Mapping: You can retrieve the key from an existing mapping context and an input action using the "Get Key From Input Action" function.
Typically there should be a pin for each platform in the map.
This function is not global and whenever you'd like to use it you have to get Interactive Cutscene component ref and call it. The reason why it's not global is because there are some platform settings for each Interactive Cutscene component.
Mapping Context: The mapping context file that you wish to get the key from.
Input Action: The input action which the key is related to.
Index: If there are multiple keys for the same mapping you can select one of them with Index.
In Platform: Which platform should we get the key for?
This function is not performance friendly so try caching or other optimizing techniques if you can.
You can also use this function to get all of the keys mapped to a certain input action in a mapping context with respect to the selected platform.
NOTE: If the engine is using localized language gamepad keys will not show up as their names won't match up with the ones in the data table.
I'm not gonna go through the parameters that were explained previously, if you haven't read 'em yet just scroll up and read.
Sequencer: The sequencer you wish to pop a key prompt in.
Idle Behavior: Determines what happens when player's doing nothing.
Nothing: Takes no action
Pause: Pauses the sequencer where the playback is.
Rewind: Plays the sequencer backwards till the initial point.
Play Amount: Only relevant if the type's set to Hold or Spam. It determines how much should the the sequencer play forward at the end of the key prompt. for example for Hold, when the player finishes up holding the key the playback position will be at (Initial Position + Play Amount).
Rewind Start Delay (In Seconds): Only relevant if Type's set to Spam and Idle Behavior is set to Rewind. It determines how long after the last key release should it start rewinding
Rewind Decrement Rate (In Seconds): This only works if the Type's set to Spam and Rewind is selected. It will play the sequencer backwards this much in every second.
For instance if you set it to 2 it means every second the playback will play backwards for 2 seconds!
This is the first part of settings.
You can set the Theme to Light or Dark, you can set the default platform that the blueprint starts with via Platform variable.
Input System: Based on your project you can use between 2 input systems:
1. Legacy: The old unreal input system.
2. Enhanced Input: New and standard input system.
If you use Legacy then you should use "Pop Key Prompt" instead of "Show Quick Time Event".
Master Action Mapping Name doesn't really matter, it just shouldn't have conflict with your existing action/axis mappings. It's set to "ICKey" on default.
BP_InteractiveCutsceneComponent
There are 3 platforms supported by default: PC, Xbox and Playstation
Platforms Settings: This one is a bit tricky. If you don’t want to add custom platforms just skip this part entirely.
If you wish to add other platforms you'll have to go through the below steps:
Design the target platform's keys and buttons
Add the new platform to EICPlatforms enum
Create a new row in DT_PlatformsData with the platform name
Located under "InteractiveCutscene/Blueprints/DataTables" directory
Add all the icons with respect to the platform keys
Done
P.S: Due to some copyright issues we had to use alternative names for the platforms.
Use these 2 functions for changing platform and theme in realtime. DO NOT set the Platform and Theme variables directly.
For changing the audio settings you should open up WBP_InteractiveCutscene and head over to variables and set your desired sound effect for each event. Of course you can leave them empty if you don't like them.
Hold Key Sound Effect
If you don't like the holding key sound you should change it from the animation. This is the only sound that plays from the animation directly.
Congratulations! You've mastered the Interactive Cutscene.
The legacy input system is supported by default on UE4.27 and UE5 however it is not advised to use this system for UE5.1+
The system works pretty much the same in both input systems. But if you're using legacy input system:
You have to set the input system to "Legacy" in Interactive Cutscene Component inside your character's blueprint.
You have to use the below functions instead of Show Quick Time events:
And use the below functions to get the keys from mappings:
Please rate the product, it won’t take more than 1 minute, but it means a lot for me. Just click the rate button:
Thank you for purchasing the asset, I hope you enjoy it
Whenever a feature didn’t work, check out the output log first. You’ll probably find something useful there.
I tried to set a tooltip for every variable and function in the plugin, so always check the tooltips first.
If you had any question after reading this documentation, feel free to send me an email. thekooroshtorabi@gmail.com I will try to answer ASAP
Added
Added PCv2 Icon Pack
Added some missing icons
Fixed
Fixed a bug with localization not working with the input system
Added
Auto gamepad detection (It's off by default)
"Is Any Prompt Visible" function to check whether any prompts displaying or not
Added
Enhanced Input System is now supported on UE5.1+
Notes
You can select the input system from Interactive Cutscene Component in your character blueprint.
Input system is set to Enhanced Input by default so if you're using Legacy input system make sure you set it to Legacy.
Read the deprecated section if you want to continue using the legacy system.
Users Who Owned the Asset Before the Update
You have to set the input system to Legacy otherwise the asset will not work on your project.
Converting Legacy to Enhanced Input Guide
Set Input System to "Enhanced Input" in your character blueprint's Interactive Cutscene Component
Replace all of the "Show Key Prompt" functions with "Show Quick Time Event"
Replace "Get Key from Mappings" with "Get Key from Input Action"
Remove all of the "Key 2 Map" functions because they're no longer required, you can set the key directly while making the map.
Done
Added
Wrong key press detection added
You can now prevent the player from pressing the wrong key