Thank you for taking the time to check out Better Captions. On this page you’ll find a breakdown of each of the Blueprints contained within the project, how they’re intended to be used, and how you can integrate them into your own game.
Need help?
If you have any questions or concerns you may find them addressed in the Frequently Asked Questions section at the bottom of this page. If you can’t find what you’re looking for you can reach me at nick@techarthub.com and in the techarthub Community Discord server.
Table of Contents
Activating Better Captions
Better Captions is a content-only Blueprint plugin that isn’t dependent on any changes to your engine configuration. If you’re trying to reduce the number of plugins in your project you should be able to migrate all the files into your content folder without anything falling apart on you.
Using Better Captions
Better Captions works by having sound-emitting objects communicate via Blueprint Interface to any Player Controllers in range, which will then process that data into text/visual cues via a Widget Blueprint.
Player Controller setup
To set up Better Captions to work with your project from scratch you’ll first need to add a BetterCaptionsComponent and the BetterCaptions Blueprint Interface to your Player Controller. These are used in tandem to receive and process instances of caption-creating sound in the world and translate them into text/visual cues for the player.
The BetterCaptions interface provides two functions that you’ll need to override with a bit of your own logic. This step is already done for you in the project’s demo content, but doesn’t come with the plugin because the intention is for you to add these functions into your existing Player Controller.
Creating Captions
You can send caption data to your Player Controller from any Blueprint Actor. To achieve this you’ll first need to add the BetterCaptions interface so the two Actors can communicate, and then call one of the interface functions using a reference to your Player Controller. This information is then passed down the chain to to the Widget Blueprint.
Settings
Sources
Name | Description |
---|---|
Name | The name of the caption source (environment, specific character/enemy etc.) |
TextColor | The text color used by this caption source |
BackgroundColor | The background color used by this caption source |
Caption Library
Name | Description |
---|---|
Source | The caption’s source. This field needs to match a row in the Sources Data Table. |
Content | The text content of the caption (a line of dialogue, a description of a sound etc.) |
Duration | How long the caption should stay on screen |
bHideDirectionIfListenerOrigin | If enabled the direction indicator will be disabled if the sound is coming from a Pawn that the listening Player Controller is controlling. If we’re making the sound we already know where it’s coming from. |
bStackByID | If enabled captions with the same StackingID will overwrite each other rather than create a new caption at the top of the stack. This helps prevent spam from very common sounds like footsteps. |
StackingID | The identifier used by the stacking system. Captions with the same ID will overwrite if bStackByID is enabled. |
Frequently Asked Questions
Is this system intended to replace Unreal’s default subtitle system?
Eventually, yes. At the moment we’re still in beta and is missing a lot of features.
Will this work in Multiplayer?
Absolutely, as long as each of your Player Controllers has been set up to receive Better Captions interface calls. You can see this in action in the demo content project.