Better Captions | Technical Documentation

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.

Example
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.

Once it’s copied into your project’s plugins folder you will be able to find
Better Captions in the plugin menu under the Accessibility category.

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.

The Create Caption at Location Interface Function.

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.

The Create Caption at Location function being triggered on the Player Controller.

Settings

Sources

NameDescription
NameThe name of the caption source (environment, specific character/enemy etc.)
TextColorThe text color used by this caption source
BackgroundColorThe background color used by this caption source

Caption Library

NameDescription
SourceThe caption’s source. This field needs to match a row in the Sources Data Table.
ContentThe text content of the caption (a line of dialogue, a description of a sound etc.)
DurationHow long the caption should stay on screen
bHideDirectionIfListenerOriginIf 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.
bStackByIDIf 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.
StackingIDThe 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.

You can set it up so other Players interpret the same caption data in different ways.

I am a technical artist from Adelaide, Australia. I created techarthub to share my knowledge and love for this industry. I hope you feel it too!

Scroll to Top