Welcome
Ladies and Gents:

These forums are now closed and registration disabled.

Please join us at our new forum on Proboards. Our hope is that these new forums are more stable, provide more and better features, and allow continuation of the project forums in a safer, more secure, long term environment.

me3explorer.proboards.com

--The ME3Explorer Team

Dialogs overview

Semi-technical area to discuss content modding research and discoveries. Technical information necessary for coding tools should be posted in Technical Research on the Coders board.

Dialogs overview

Postby mnn » 08 Mar 2013, 23:27

The Fob, creator of MEHEM, wanted to know how dialogs work in ME3 (actually the seem to work very similar to ME1-2, except for changes like Interrupts or smooth transitions between regular gameplay and dialog itself in ME3).

Well, this should be an overview how it works:
- SFXSeqAct_StartConversation or BioSeqAct_StartConversation (ME2) / SFXSeqAct_StartAmbientConv (ME3) sequence object is "activated" (through its input links)
- BioConversation is connected with a "matinee sequence" (through its property MatineeSequence; not through any (variable) link)
- BioConversation picks BioDialogEntryNode from its m_StartingList, using their conditions of course (conditionals or just plot variables - nConditionalFunc, nConditionalParam, bFireConditional; bFireConditional == true, then nConditionalFunc represents a conditional and nConditionalParam its parameter, otherwise nConditionalFunc is a plot variable, which should equal to nConditionalParam)
- BioConversation then just handles dialog wheel and fires events BioSeqEvt_ConvNode
- matinee sequence (usually named Node_Data_Sequence located in same package as the BioConversation) receives these events and runs matinees (complex animation actions) using actions SeqAct_Interp
- after matinee finishes, it activates BioSeqAct_EndCurrentConvNode, which *should* notify BioConversation that conversation node was finished and that dialog tree should be followed further

FaceFXAnimSets are linked in BioConversation, sounds should be linked as well. WwiseEvents should be located in Audio package.

As for BioConversation itself, then there always is the player and the owner. Owner is not in m_SpeakerList (ME2) / m_aSpeakerList (ME3).

Owner:
- is usually set in variable link of the sequence action, which starts dialog (see above) (as a SFXPawn or some of its ancestors).
- if not, it is set through an intermediary BioSeqVar_ObjectFindByTag variable, which should search whole level for given SFXPawn object (AFAIK it tries to match Actor.Tag property)
- however in ME3, Bioware switched to using SFXStuntActor objects, which are pain in the ass. There are several instances of the "same" object (i.e. NPC).

So, basically if you get hold of SFXStuntActor object, which has SFXSelectionModule in Actor.Modules Modules property, then you can get value of property m_srGameName of SFXSelectionModule (which is ancestor of SFXSelectionModule), which should contain string ref of the NPC (which should be displayed, when the NPC talks in a dialog).

Since it's pain in the ass to get the real SFXStuntActor (at least I wasn't able to find the correct one; but only by searching through references of the objects, not by "guessing"), I'm using a workaround, which is just to provide full NPC name from its tag (if the NPC is located in speaker list of BioConversation). If the owner can't be found, then I just use "NPC" string instead of its real name.


That's probably all I know about dialogs. But just by playing the game and looking through game files and relationships between objects, dialogs in ME3 are very, very complex, in comparison with ME1. So, my opinion is, that modifying/creating dialogs in ME1 (maybe ME2), would much, much simpler than in ME3 (so it might be better idea to not start in the latest game).

mnn
User
 
Posts: 42
Joined: 22 Aug 2012, 17:10
Has thanked: 1 time
Have thanks: 15 time

Re: Dialogs overview

Postby Renmiri » 17 Mar 2013, 23:19

Many thanks, this will help our mod work ^^
Renmiri
Emeritus
 
Posts: 207
Joined: 31 Aug 2012, 20:42
Has thanked: 141 time
Have thanks: 37 time

Re: Dialogs overview

Postby WarrantyVoider » 25 Apr 2014, 12:16

wow, so took me a while to grasp what you have written here, but now here the TL;DR version

SFXStuntActor are the objects that define where a NPC stands in level. It has a location property and references to head,body and hair meshes. and as you said, its used in dialogs.

looks like this
Image

greetz WV
always backup your files!
mess with the best or die like the rest!
"I tried everything!" - "mkay, please list that..." ; please dont pm me for help, we have a help section
User avatar
WarrantyVoider
Emeritus
 
Posts: 2270
Joined: 22 Aug 2012, 11:33
Has thanked: 480 time
Have thanks: 626 time


Return to Modders' Research

Who is online

Users browsing this forum: No registered users and 0 guests

cron
suspicion-preferred