Page 1 of 1

How Can I Check Conversation flow in timeline?

Posted: Mon Feb 19, 2024 12:40 pm
by Lee
I trying to make CutScene with timeline.
So I made Conversation Track and Continue Conversation Track in timeline, and StartConversationClip in Conversation track.
I noticed that I didn't add Continue Conversation Clip in Continue Conversation Track, but Conversation is well-played.

because I set each conversation node's playtime with Sequencer Command, I thought Timeline don't need to add Continue Conversation Clip first.

but when I tried to add animation, I found that I can't check Conversation flow. I can check it only when I run the game.

Should I add Continue Conversation Clips to check Conversation flow, or is there any other way to check it?

Re: How Can I Check Conversation flow in timeline?

Posted: Mon Feb 19, 2024 1:59 pm
by Tony Li
Hi,

What do you mean by "check conversation flow"?

Re: How Can I Check Conversation flow in timeline?

Posted: Tue Feb 20, 2024 1:30 am
by Lee
I'm sorry for my poor English..
I mean that while during a conversation, which node is playing now.

If there's no continue conversation clip in continue conversation track, I can't find which node is playing in timeline panel.

Although I run the program and run timeline, I see my conversation is well-played, when program is not running, I can't know which node is playing in timeline panel.

I know that adding continue conversation clips can solve this problem, If there was a way to solve it without adding it, I thought it could save time and solve it more efficiently.

Re: How Can I Check Conversation flow in timeline?

Posted: Tue Feb 20, 2024 8:21 am
by Tony Li
Hi,

The node that is currently playing is in the property DialogueManager.currentConversationState. Example using the special script method OnConversationLine:

Code: Select all

void OnConversationLine(Subtitle subtitle)
{
    Debug.Log($"The current node's text is: {subtitle.formattedText.text}. The node's ID is {subtitle.dialogueEntry.id}.");
    
    Debug.Log($"The current node's text is: {DialogueManager.currentConversationState.subtitle.formattedText.text}.");
    if (!DialogueManager.currentConversationState.hasAnyResponses)
    {
        Debug.Log("This node ends the conversation.");
    }
}