Page 2 of 3
Re: Animate Characters While Speaking
Posted: Sun Feb 06, 2022 9:58 pm
by PayasoPrince
I have the sequence in a Dialogue System Trigger's Actions:
I'm calling it from a Timeline's StartConversationClip.
Is there anyway to make it work this way?
I imagine it would be pretty time consuming adding this to every node:
Code: Select all
AnimatorPlay(Talking);
required AnimatorPlay(Idle)@{{end}}
Re: Animate Characters While Speaking
Posted: Sun Feb 06, 2022 10:05 pm
by Tony Li
Leave the node's Sequence fields blank.
Put that sequence in the Dialogue Manager's Display Settings > Camera & Cutscene Settings > Default Sequence.
Re: Animate Characters While Speaking
Posted: Sun Feb 06, 2022 10:37 pm
by PayasoPrince
Hmm, I added it to the Dialogue Manager's Default Sequence section and still not playing. I also removed the node's sequence to make sure it isn't overriding it.
Btw, if you notice a discrepancy between the animation names in my screenshots, I changed the animation names to a more generic "Talking" & "Idle" so that it can be used by all characters. The name shouldnt be the issue
Re: Animate Characters While Speaking
Posted: Mon Feb 07, 2022 9:03 am
by Tony Li
Temporarily set the Dialogue Manager's Other Settings > Debug Level to Info.
When each dialogue entry plays, check the Console log. You should see two lines for each of those three commands.
The first line reports how the sequencer has parsed the command and the time at which it will play. For AnimatorPlay(Talking) it should look similar to:
Dialogue System: Sequencer.Play( AnimatorPlay(Talking)@0 )
The second line appears when the command actually runs, and should look similar to:
Dialogue System: Sequencer: AnimatorPlay(Talking, <gameObject>)
where <gameObject> is the GameObject on which the Animator should be. The Animator can be on a child in its hierarchy.
Check that:
1. The commands are actually appearing in the Console, and
2. The correct GameObject(s) are being used.
If both of those things are correct, look for any other scripts that might be immediately switching the Animator to another state.
Re: Animate Characters While Speaking
Posted: Mon Feb 07, 2022 3:33 pm
by PayasoPrince
Here's what the console says:
The actor looks correct, but I did notice that it says "Sequencer.Play( None()@0 )".
It is also blank after is says (actor) says "
Any idea?
Re: Animate Characters While Speaking
Posted: Mon Feb 07, 2022 3:42 pm
by Tony Li
Those Console lines are from the <START> node.
Does the conversation continue automatically after that, to the 'How about a little help up here' line?
Re: Animate Characters While Speaking
Posted: Mon Feb 07, 2022 3:45 pm
by PayasoPrince
No, it doesn't continue automatically. It waits for the player to hit the Continue button.
Re: Animate Characters While Speaking
Posted: Mon Feb 07, 2022 4:17 pm
by Tony Li
Try changing the <START> node's Sequence to:
If you're doing this in Timeline, it might be a quirk with the Timeline integration.
Re: Animate Characters While Speaking
Posted: Mon Feb 07, 2022 5:32 pm
by PayasoPrince
Added Continue() to the start node and no dice.
I don't mind going about setting it up a different way. I really just want it to work.
Is it not possible to start a conversation with Timeline that waits for a continue button and also animates the actor?
Re: Animate Characters While Speaking
Posted: Mon Feb 07, 2022 7:26 pm
by Tony Li
PayasoPrince wrote: ↑Mon Feb 07, 2022 5:32 pmIs it not possible to start a conversation with Timeline that waits for a continue button and also animates the actor?
Here's an example that uses Continue Conversation clips to continue automatically:
DS_TimelineAnimateExample_2022-02-07.unitypackage
Here's an example that pauses the timeline until the player clicks the continue button:
DS_TimelineContinueClipExample_2022-02-07.unitypackage
It uses a small script, and it's based on the example
here.