Timing in conversations. - by Lady Rowena
Lady Rowena on 5/2/2014 at 23:18
For the first time I'm setting up a real converstaion between two AIs, and I'm going mad.
It's not that I'm not patient enough, it's that the timing is absolutely unreliable. Sometimes the AIs' are perfectly synchronized, sometimes they overlap the speech, or even miss a line, and sometimes they wait for ages before speaking.
I thought that they were distracted by something, I added the "don't block" to every line, but the result is just the same.
Does this also happen to you? Am I missing something? Any hints please?
R Soul on 6/2/2014 at 01:27
'Don't block' is more likely to make things worse.
A few tips:
Only ever use one actor in each step.
It is okay for an actor to use two steps in a row if the step does not have enough empty slots.
If an AI says something and performs a very long motion, the conv will wait for the motion to finish before continuing.
It's hard to be more specific without more details.
Lady Rowena on 6/2/2014 at 02:26
I dont't have motions yet....:o
The conversation is very short, also there shouldn't be pauses between the lines.
Maybe there's one thing that I don't understand. If Actor 1 performs lineNo 3 that lasts 5sec. , then Actor 2 has one of 2sec. how much time has Actor 1 to wait to perform LineNo 5? 2sec or 7sec? In other words, the wait begins when the AI starts performing her line or when she has finished?
At the moment I'm proceeding with trials and errors. Anyway, this is my conversation without waiting times. The seconds are the duration of the line. The sounds work fine.
Actor 1
play
c1601
LineNo 1 - 2sec
Actor 2
play
c1601
LineNo 2 - 1sec
Actor 1
play
c1601
LineNo 3 - 5sec
Actor 2
play
c1601
LineNo 4 - 2sec
Actor 1
play
c1601
LineNo 5 - 1sec
Actor 2
play
c1601
LineNo 6 - 1sec
Zoro on 6/2/2014 at 02:32
Quote:
the wait begins when the AI starts performing her line or when she has finished?
Hmm, I somehow believe It's "when she has finished".
As myself - I use only one Line per step, and if there's need a longer conversation - I make up a trigger which launches second conversation (after the first).
Though I might be wrong - prove me if you think so. I'm just not well skilled with DromEd yet...
Yandros on 6/2/2014 at 02:40
You don't want to have any Wait steps in there, if all they're doing is saying lines. Try stripping it down to just one actor with a single Play sound/motion action per step, just playing the line and no motions or other steps, just like what you have above, with no Wait actions. It should proceed at a good clip with minimal gaps between lines, since it will advance to the next step as soon as the line is over (no matter how long it is, 2s or 5s or whatever).
Lady Rowena on 6/2/2014 at 16:21
I'm almost there....but I realized that I don't understand almost anything about conversations. :o
i.e. if an AI is doing a motion, then he freezes in that position until is his turn to speak/move again.
Anyway, I can't understand what's wrong with the end of my conv. Here are the last steps:
Actor2
play...
c1601
LineNo 6
Conv 41
Actor2
Add/Remove Metaproperty
Add
M-DoesPatrol
Merle (who is Actor 2)
Actor 1
Wait
8000
IdleGesture 0
Actor 1
Goto
2697
Actor 1
Add/Remove Metaproperty
Add
M-DoesPatrol
Bethany (Actor 1)
I wanted Merle (Actor 2) to start patrolling as soon as he finish his performance, then Bethany (Actor 1) should wait 8000ms, go to object and start patrolling herself.
What happens instead, is that Merle waits until Bethany stars her patrol before moving.
What am I doing wrong?
BTW, R Soul & Yandros, I'm using one step per actor. How can you use more than one? I'm confused...:confused: And I yes wanted some brief motions.
nicked on 6/2/2014 at 19:10
I would imagine that's because even though the metaprop has been added correctly, the patrolling won't happen until the conversation is completely over.
Not sure if there's a better way around it, but you could maybe have two conversations instead e.g. :
1. Actor 2 - Add AIPatrol
2. Trigger second conversation that only uses Actor 1.
3. Actor 1 - Wait 8000
4. Actor 1 - Add AIPatrol
alternatively, just have Actor 2 walk to a point on the patrol route for the 8 seconds, and then revert to patrolling.
Lady Rowena on 6/2/2014 at 22:23
Thanks Nicked, you were right. :) Still it didn't work until I put a delay between the trigger and the 2nd conversation...
Yandros on 7/2/2014 at 13:14
I generally only play one line per step, but often have multiple motions. For instance a long line (10-20 seconds) may need several motions to keep the actor moving throughout. So I will use multiple Play motion/sound actions within the same step, like so:
Code:
Actor 1
Play motion/sound
c1901
LineNo 1
Conv 22
Actor 1
Play motion/sound
(blank)
(blank)
Conv 5
Actor 1
Play motion/sound
(blank)
(blank)
Conv 29
It depends on the length of the sound file and also the duration of the motions you use. Some are very long, but most are just a few seconds.
Nick's suggestion worked fine, it sounds like it. I think you could also have moved Actor 1's three actions to the next step in the conv and Actor 2 would have started patrolling, but I'm not sure.
Lady Rowena on 7/2/2014 at 14:10
Sorry, for some reason I never payed attention to the terms used. I thought that a step was one "action", so to say. Now I realize that a step is a "page/screen".
The way you say it's even more convenient. I had the conviction that you can't leave half of the step blank, that this way the conv will be interrupted. :o