About Dialogue Actor component

Announcements, support questions, and discussion for the Dialogue System.
CHOPJZL
Posts: 97
Joined: Wed Sep 02, 2020 10:05 pm

Re: About Dialogue Actor component

Post by CHOPJZL »

Hi,
About the EntryTag. If a conversation between Actor AAA and BBB is running by CCC and DDD, will the EntryTag follow the change?
User avatar
Tony Li
Posts: 21925
Joined: Thu Jul 18, 2013 1:27 pm

Re: About Dialogue Actor component

Post by Tony Li »

Hi,

No. It uses the entry's actor -- if the entrytag format includes the actor. If the entrytag format is ConversationTitle_EntryID or VoiceOverFile, it doesn't matter since those formats don't reference the actor.

The entrytag is specific to each active conversation, however. If two conversations are active, their entrytags will be unique to each conversation.
CHOPJZL
Posts: 97
Joined: Wed Sep 02, 2020 10:05 pm

Re: About Dialogue Actor component

Post by CHOPJZL »

What should I do if I want to have a different EntryTag when the Actor becomes CCC?
User avatar
Tony Li
Posts: 21925
Joined: Thu Jul 18, 2013 1:27 pm

Re: About Dialogue Actor component

Post by Tony Li »

Hi,

You can define your own tag and replace it in an OnConversationLine method. The Subtitle object will have all the info you need.
CHOPJZL
Posts: 97
Joined: Wed Sep 02, 2020 10:05 pm

Re: About Dialogue Actor component

Post by CHOPJZL »

Hi,
How is the progress of adding record to sequencer?

I almost forgot, Last month when we talked about showing response or random NPC line in according to the CharacterType of the Speaker, I made a small modification in ConversactionModel

In GetCharacterInfo(int id, Transform character) around line 581

Code: Select all

		//  original is 
                //  CharacterInfo characterInfo = new CharacterInfo(actorID, nameInDatabase, character, m_database.GetCharacterType(id), portrait);
                CharacterInfo characterInfo;
                if (updateCharType)
                {
                    characterInfo = new CharacterInfo(actorID, nameInDatabase, character, m_database.GetCharacterType(actorID), portrait);
                }
                else
                {
                    characterInfo = new CharacterInfo(actorID, nameInDatabase, character, m_database.GetCharacterType(id), portrait);
                }
In EvaluateLinksAtPriority() around line 383

Code: Select all

			//  original is
                        //  CharacterType characterType = m_database.GetCharacterType(destinationEntry.ActorID);
                        CharacterType characterType;
                        if (updateCharType)
                        {
                            var charInfo = GetCharacterInfo(destinationEntry.ActorID);
                            characterType = m_database.GetCharacterType(charInfo.id);
                        }
                        else
                        {
                            characterType = m_database.GetCharacterType(destinationEntry.ActorID);
                        }
In this way, everytime encounter a branch, it will become response selection if the speak's type is Player, it will become a random NPC line if the speak's type is not Player.

I did some simple test and it works as I want. Is there any hidden problem in this modification? If there is no problem, I hope this can be added to DS. If it is not appropriate to add, I'd like to have a way to use custom(subclass) of Conversation Model/View/Control.

The bool "updateCharType" could be added in the display settings.
User avatar
Tony Li
Posts: 21925
Joined: Thu Jul 18, 2013 1:27 pm

Re: About Dialogue Actor component

Post by Tony Li »

Hi,

In version 2.2.16, sequencer commands will have access to the active conversation record, unless QA testing turns up an issue.

I'll also try to get updateCharType into 2.2.16.
CHOPJZL
Posts: 97
Joined: Wed Sep 02, 2020 10:05 pm

Re: About Dialogue Actor component

Post by CHOPJZL »

I found a small issue about my modificatin.

If updateCharType=true at the beginning of the conversation, during conversation I can set it to false to let branch act like before. This is fine.

But if updateCharType=false at the beginning of the conversation, I suppose I can't set it to true to enable this feature. As the CharacterInfo is already in m_characterInfoCache.

This may need some more work when you add it.
------------------
I think over it again and updateCharType=true at beginning won't allow change to false during conversation, either. I suppose a method of refreshing m_characterInfoCache is needed when set updateCharType
CHOPJZL
Posts: 97
Joined: Wed Sep 02, 2020 10:05 pm

Re: About Dialogue Actor component

Post by CHOPJZL »

Hi,
How are the progress of
1. sequencer/commands have access to the active conversation record.
Is it pushed to 2.2.17?

2. Per conversation displaysettings.
It's better to be able to set it in StartConversation(). Then I can create a displaysettings and pass it as a variable. It will be Actor free like ForceOverrideSubtitle()

3. updateCharType.
This is actually a edge case so it can wait.

4. more than 2 conversant in conversation.
I know this one is huge. Just asking if there is any chance it can be implemented.
User avatar
Tony Li
Posts: 21925
Joined: Thu Jul 18, 2013 1:27 pm

Re: About Dialogue Actor component

Post by Tony Li »

Hi,

Yes, these got pushed to 2.2.17. I ran out of development time. I'll try to send you patches as I implement each one.

Would you please remind me what this one means? "4. more than 2 conversant in conversation."
CHOPJZL
Posts: 97
Joined: Wed Sep 02, 2020 10:05 pm

Re: About Dialogue Actor component

Post by CHOPJZL »

Would you please remind me what this one means? "4. more than 2 conversant in conversation."
It is almost at the beginning of this thread on Mar 07, when you explain the Character GameObject Assignments feature, I said about making the Conversation Conversants to be a list. In this way we can make the conversation reusable for more than 2 participants.
Post Reply