Dialogue System with Audio Table and Parameters

,

I am trying to create a dialogue system with various NPC types and states (Ex. Soldier_Female_British_Idle) as well as variations and a parameter for “Dialogue Rarity”. The Audio Table / Programmer Instrument method doesn’t seem to accomplish the functionality I need, as it can only play individual audio files and not events.

Has anyone else created a complex dialogue system using UE5/UE4 and FMOD? Should I just create a Data Table in Unreal Engine and play events from there?

I’m not sure what the most ideal setup would be, any advice would be greatly appreciated.

Hi!

Due to the current nature of working with localized dialogue in FMOD, primarily the fact that the assets to be played are chosen at run time in engine and not at design time in Studio, it’s considerably easier to implement something like a “Dialogue Rarity” parameter on the engine side of things. Using a data table in UE would be a decent way of going about this.

If you can provide me with more specific details on what exactly you’re trying to implement, I may be able to make some more in-depth suggestions as to how to go about it.

Hey, thanks for the response!

The base functionality I’m going for is

  1. NPC type (Soldier_Female_British)
  2. NPC action (Idle, aggro, death, etc.)
  3. Dialogue rarity setting/parameter (think Halo skulls)

Maybe when the dialogue is triggered there is a switch that updates a parameter and each event can have separate multi-instruments for each rarity level? I just want to make sure the system is scalable and makes sense. In your opinion, what is the best implementation of a dialogue system you have seen?

Sorry for the delayed response!

Using multi instruments is entirely possible, as is using levels of nested events to consolidate states like dialogue rarity or NPC states into more manageable, modular pieces. However, since you’re dealing with localized audio, there unfortunately needs to be some adaptation either in engine or in Studio.

If you want to handle all localized audio at design time in Studio, you can set up individual events for all languages and the conditions/parameters for NPC actions/states, but you will also need make sure that you’re loading and playing the desired locale and localized events at runtime.

If you want to handle it using audio tables, you’ll need to handle the coordination of NPC type/action/rarity yourself on the engine side, while the choice of which asset to play will be handled by FMOD’s audio tables.

It’s a trade-off that can be worth thinking about, depending on your preferences, workflow, and the scope of your project, but we usually see projects with lots of localized assets use the latter option.