Jump to content

Recommended Posts

Posted (edited)

This isn't something I am really working on, but I figured it might be interesting to others.

I've just discovered it is possible to have adventurers (the custom characters that can be hired from most inns) speak during a conversation!

In brief you can do this by adding the speaker GUID (these are found in speakers.gamedatabundle) of the voice set in use by the character to the SpeakerGuid andĀ FocusedSpeaker sections of a conversation node.Ā The name of the character and the current portrait will then appear in the conversation window. If there are audiofiles that correspond to the conversation node in the folder associated with the voice set these will also be played during the conversation.

This should in theory allow for the creation of rudimentary sidekicks/companions with voiced dialogue!

With a lot of work and some degree of trial and error possibly even full conversation hubs of their own... Though theĀ main hurdle as far as that goes, is that the lack of a button to start a conversation with adventurers directly. So the only way I could think of is using something like an item to start the conversation, similar to how the burned book works.Ā There is also the lack of modding documentation related to the data structure of .conversationbundle files to contend with.

None the less could be really cool to see what someone dedicated enough might come up with!

I'm happy to answer questions to the best of my ability about anything I have written here.

Edited by Kvellen
fixing some grammar
  • Like 3
Posted

Oh wow, that's an awesome discovery!

1 hour ago, Kvellen said:

Though theĀ main hurdle as far as that goes, is that the lack of a button to start a conversation with adventurers directly. So the only way I could think of is using something like an item to start the conversation, similar to how the burned book works.Ā 

Yeah, maybe also script hooks to trigger convos on entering specific locations.

1 hour ago, Kvellen said:

There is also the lack of modding documentation related to the data structure of .conversationbundle files to contend with.

Actually, I've been working on a thorough documentation of the conversation and quest formats. I'll clean up and post tomorrow.

  • Like 1
  • Thanks 2
Posted
1 hour ago, Noqn said:

Yeah, maybe also script hooks to trigger convos on entering specific locations.

Oh yeah now that you mention it, script hooks could total work for this couldn't they!

I do wonder though, would there potentially be some impact on performance with a lot of scripts checking if their conditions are met on level load?

1 hour ago, Noqn said:

Actually, I've been working on a thorough documentation of the conversation and quest formats. I'll clean up and post tomorrow.

Awesome!

  • Like 2
Posted (edited)

Ok. First up I believe that this blog post by Josh Sawyer gives a great introduction to the general concepts of Deadfire Conversations: https://jesawyer.tumblr.com/post/175082312536/im-curious-as-to-what-the-conversation-editor

Ā 

Basically, Conversations are flow charts. They contain Nodes, where each Node represent e.g. a player dialogue option or an NPC line.

All Nodes have a unique ID, and they contain a list of Links pointing to the IDs "descending" Nodes.

Ā 

Now, here's the WIP documentation on these data formats, I hope it's not too much of a mess: https://docs.google.com/document/d/1jv8GvSuWlunC_nElQsPBM9nqEt8iCOoOP5PlBVAT1Bc/edit?usp=sharing

Most properties and values are somewhat self-explanatory, I've tried to describe the ones that aren't. (The major remaining ones are the concepts of Ghost Links and Question Nodes.)

Ā 

Edited by Noqn
  • Like 3
  • 2 weeks later...
Posted (edited)

So I did a bit of tinkering using the excellent documentation noqn has provided, and have created a basic proof of concept!Ā PoE2_Adventurer_Conversation.zip

There isn't really much to this mod beyondĀ this one custom conversation, with a man giving monosyllabic responses (and possibly challenging you to a staring contest), but it does maybe give some insights into a few aspects of how a custom conversations can be implemented. For convenience, the "Speech Bubble" in the actual mod comes pre-equipped on the character.

There is likely a lot I am skipping over explaining, so if there is something that anyone is curious about or would like me to go into further detail on, please let me know!

Here are a few interesting aspects:

As you can hear the conversation uses voice lines from the Stoic Male voice set. I've used theĀ "ExternalVO"Ā line on some nodes in the .conversationbundle to play specific audiofiles during certain points. For example "ExternalVO": "player_stoic_m/ch_player_stoic_m_investigate_40011", is used on the first node of the conversation for the character to give a sort of grunt as a greeting.

However it's totally possible to add new voiced dialogue for characters during a custom conversation! I only did things this way to keep it simple for myself. But as I mentioned in the original post, if there is an audio file related to a conversation in the folder associated with theĀ speakerĀ (this is defined by the ChatterPrefix line) the game will play it. The audio file itself needs to be named after conversation and the 4 digit ID of the specific node it should be played on. So for example if there were an audio file named "adventurer_caedman_0001.wem" in the "player_stoic_m" folder, this could be played without needing "ExternalVO": "", to be used.

There are a few minor details you might noticed that don't really sell this as a proper conversation between the characters:

  • The adventurer and Watcher don't turn to face each otherĀ when speaking. Which is pretty impolite if you ask me!
  • The Watcher won't approach the adventurer like they doĀ otherĀ companions, which leads to potential forĀ instances of conversations happening over longĀ distances, or from other rooms entirely.

The scriptsĀ FaceTargetĀ andĀ AIPathToObject/AIPathToPointĀ could be potential solutions for these respective problems? But I've yet to actually test them, since I've only just become aware of them as I am writing this post.

Moving on to the character themselves, there are some pretty cool things that could potentially be done using the GUID of an exported character. An example of this is to do with the "Speech Bubble"Ā item. On the "InspectOnUseButton": [ ]Ā Ā there is a conditionalĀ to only display the "Talk to Caedman" button when a character with the specific GUID of the adventurer is in the party.

Oh and with regards to making a fully featured companion with topics of interest... this GUID can be usedĀ to link companion data to the adventurer!

E2poSEK.png

I haven't looked into anything really surrounding flagging a node as a topic, so I have no idea if this character will "roll their eyes and let out a long sigh" when an assigned topic is mentioned in other conversations.

So yeah really exciting stuff!

Edited by Kvellen
  • Like 3
  • 6 months later...
Posted (edited)

After some more testing utilising the power of Apotheosis here are some fresh insights:Ā 

  • Adding the Adventurer'sĀ GUID (this will be in brackets of the .character file of an exported Adventurer) to the CompanionGuidString ofĀ CompanionData seems to stopĀ the AdventurerĀ from being exported again.
  • Adding progression tables to the linkedĀ CompanionData of an Adventurer, and using aĀ script that doesĀ RemoveFromPartyĀ and thenĀ AddToPartyĀ opens theĀ classĀ selection menu allowing you to change theirĀ classĀ in the same wayĀ as a sidekick/companion.
  • By making additions toĀ relevant .conversationbundles, anĀ AdventurerĀ can haveĀ party banterĀ and comment onĀ points of interest pretty seamlessly.
  • While Companions will react and track their relationship to an Adventurer, reaction to topics and tracking of relationships isn't functional on the Adventurer's side for some reason.
  • QuestĀ creation isĀ possible with Apotheosis, and while I haven't figured out all the aspects of it,Ā quests that involveĀ an Adventurer can be done.

The following video of an adventurer based on Durance shows some examples of the above:

Class and Quest Pop-up 3:45 and Companion banter at 4:15.

Still can't figure out a way to get character to face each other during a staring contest conversation.Ā šŸ˜‘

Edited by Kvellen
  • Like 5
  • 1 month later...
Posted

Hey, Kvellen.

Could you pls release the mod with Durance as sidekick?

Have any chance for this?

Durance + Eder is my favorite characters from POE1.

I was very annoyed and dissapointed when I did not meet Durance in the quest The Bridge Ablaze. šŸ˜­


How i looking that?Ā  - as sidekick with 3 class/multiclass options:

1) Priest (Magran);
2) Priest (Magran) + Berserker (Furyshaper);
3-A) Priest (Magran) + Monk (Shattered Pillar);
3-B) Priest (Magran) + Fighter (Tactician);
3-C) Priest (Magran) + Fighter (Black Jaket);

That looking like quite logical class/multiclass options, based on the origin and past of this character.




P.S: Kana Rua as sidekick would also be interesting enough (have all in-game portraits for that), but having Maia Rua in the party and not having conversations between them would look a bit odd. šŸ¤”

  • Like 2
Posted

HeyĀ @Gwynrick, I'm sorry to say I don't have any plans for further expanding on this I'm afraid.Ā My aim with recreating Durance was at first as a way to explore how Deadfire's conversation system worked by referencing and recreating a PoE1 conversation. And then just used it as a way to show off some of what is possible in making a sidekick with the Apotheosis tool. There is pretty much only what is in that video, which is Durance's introductory conversation hub from PoE1, his banter with Pallegina and Aloth, and part of his voice set.

Best I can probably do is release what is there?

  • Like 1
  • Thanks 1
Posted (edited)
On 2/12/2023 at 6:52 PM, Kvellen said:

HeyĀ @Gwynrick, I'm sorry to say I don't have any plans for further expanding on this I'm afraid.Ā My aim with recreating Durance was at first as a way to explore how Deadfire's conversation system worked by referencing and recreating a PoE1 conversation. And then just used it as a way to show off some of what is possible in making a sidekick with the Apotheosis tool. There is pretty much only what is in that video, which is Durance's introductory conversation hub from PoE1, his banter with Pallegina and Aloth, and part of his voice set.

Best I can probably do is release what is there?


Hey @Kvellen, I am Gwynrick.

I had to create a second account when I could not remember which e-mail the main account was registered to. šŸ˜…

It's very unfortunate to hear that you have no plans to release the mod.
But at the same time, I understand that this is a very time-consuming and labor-intensive task.


It would be great to see a version of the mod where Durance not only use his voice set for commenting basic actions (attack, etc.), because his banter with Aloth, Eder and Pallegina while traveling is very cool and atmospheric - but it's just wishlist.

The personal quest of Durance and other dialogues (available when use item from inventory) are not such an important thing, as it seems to me.

I will be glad if you release the "Sidekick Durance" mod in any form. šŸ™ƒ

Edited by Khagmas
  • Like 2
Posted (edited)

Okay, what I'll do is polish up what I did for Durance and release it on Nexus as a demonstration of a custom Sidekick. and since Custom voice sets are something I am messing with at the moment, I'll include a ported version of Durance's voice set with it as well.Ā šŸ˜

Edited by Kvellen
  • Like 2
  • 2 weeks later...
  • 2 years later...
Posted (edited)

Probably, but the character is at the end of the day only an adventurer that you can just recreate at any inn.
All you need is thisĀ mod for Dyrwood Culture, and the portraits which are are in the gui folder of the .characterĀ (it's pretty much a zip file).Ā Save your game and exit.
For the voice you can either remove the conditional statement in between the [square brackets] afterĀ "Components": [] "PlayerVoice_Durance.gamedatabundle" or select it later in the character customizerĀ bmeBOfO.pngĀ once you have done following.

Change all the instances of "135d47bd-5a32-4af1-8a44-1f7d3822b0f9" in the mod's files to whatever the new GUID is for the character. You can find their GUID by hovering the mouse cursor over the character and entering this command into the console:

PrintInstance oei_hovered

It'll be in the combat log and should be on your clipboard for you to paste somewhere outside of game to reference.

Edited by Kvellen

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...