Creating ADA and In-game Inbox Messages

This page is a work in progress.

Ada messages can add an immersive feel to your mods fitting in with every in game milestone unlock.

What to Say

TODO info on what speaking patterns ADA and Aliens have

Use the SMLEditor/Content/AdaMessages/AdaMessageExtractor editor utility widget to quickly view all messages as text

Defining Messages

Creating the Data Asset:

First right click in a content browser and go to Miscellaneous → Data Asset Then Select the class of FGMessage

AdaMessage_1

AdaMessage_2

The name of the new data asset can be anything, but the following naming convention is strongly suggested:

MSG_<ModName>_Tier<TierNumber>-<MilestoneName>

For example:

MSG_ExampleMod_Tier1-ExampleMilestone

This will refer to the example mods schematic for tier 1 and the first schematic. This is optional but will help you distinguish each milestone if you have lots of ADA messages.

When the game loads it will look for all data assets with the class of FGMessage and load these automatically. There is no requirement to manually register these data assets.

Setting up the Email Message

As part of the new message data asset this will also create a new email that can be viewed in the Inbox window in game.

This is the first stage of setting up the Data Asset by setting the Title and Message variables:

AdaMessage_3

Setting Up Subtitles

If your ADA speak is quite long then you will need to split this into multiple subtiles. This is because the text will not fit in the ADA popup widget.

This can be done by adding a new Array element to the mSubtitles variable.

Each element in the array should have Subtitle Sender Class and Time Stamp

  • Subtitle - This is the text you want to show in the ADA popup message

  • Sender Class - This is the class of the Sender aka ADA or Alien Message

  • Time Stamp - This is the Time Stamp when the message should be sent. Correlates to the audio message timestamp if there is pauses.

AdaMessage_4

Setting the voice over requires a Wwise Audio Event and can be set in the data asset.

AdaMessage_5

Setting up the Trigger

The trigger is automatically registered when the game is loaded, you just need to populate the trigger settings in the data asset.

AdaMessage_6

For messages triggered by schematics, set the Trigger Dependency to BP Schematic Purchased Dependency and configure the dependencies according to what schematic should trigger the message.

Additional trigger settings:

  • Can Be Queued - This setting is for if another ada message is being played then it will wait for it complete.

  • Can Be Repeated - This setting is for if the ada message can be repeated.

  • Can Interupt - Setting for if another lower priority message is playing then interupt it.

  • Play Interupt Message - This setting will first play the default interupt message then play our message.

  • Blocked By Cooldown - Message will not play if in the message cooldown. Generally don’t check this.

  • Priority - The priority of this message - suggested baseline value of 1.

Generating ADA Audio

All voice lines spoken by ADA (and the ????) are generated using Google’s Text-to-Speech API with the en-US-Wavenet-C voicebank. The additional affects applied to the ???? voice are not currently known by the community.

It was previously possible to try out on the Google Cloud TTS demo website using the following settings, but they have since removed it from the list.

  • Voice type: WaveNet

  • Voice name: en-US-Wavenet-C

  • Pitch: -1.2

The community is not currently aware of a place to use the en-US-Wavenet-C voicebank for free, however, some similar alternatives are known:

  • The TTSFree website allows generating audio using en-US-Standard-C voicebank, which is similar but has clearly audible differences.

  • Nightingale Text to Speech Demo claims to allows generating audio using en-US-Wavenet-C, but it seems to be using en-US-Standard-C instead.

  • You can set up a paid Google Cloud account and use its APIs to generate Wavenet C audio

You may need to change the text of what the TTS is saying to not match what the captions are when saying certain words. For example, to have it pronounce FICSIT correctly, use the word 'fixit'

It is strongly suggested that you keep the text you fed to the TTS on hand so you can re-record lines later if needed or figure out how you got it to say a specific word in the past.

Importing ADA Audio to the Editor

Message data assets reference the audio to play via the mAudioEvent field that takes an Audiokinetic Event. Importing audio and creating Audiokinetic Events is done through Wwise, the process of which is documented on the Audio page.