View Issue Details

IDProjectCategoryView StatusLast Update
0003182The Dark ModAIpublic01.04.2013 18:54
ReporterSpringheel Assigned Tograyman  
PrioritynormalSeveritynormalReproducibilityhave not tried
Status resolvedResolutionfixed 
Product VersionTDM 1.08 
Target VersionTDM 2.00Fixed in VersionTDM 2.00 
Summary0003182: Idle animations can interrupt idle barks.
DescriptionSome idle animations play a sound on the voice channel (coughs, sneezes, etc).

If played while an AI is making an idle bark, they interrupt the bark. This generally doesn't sound very believable as the bark is immediately cut off mid-word.

It would be better if idle animations did not play until after AI are finished making an idle bark.

TagsNo tags attached.

Activities

grayman

grayman

30.03.2013 20:32

administrator   ~0005269

While working on this, I found that sometimes a Single Bark (a greeting, or a voice sound that's part of an animation) can stop an AI from making any further idle barks (Repeated Bark).
grayman

grayman

31.03.2013 02:31

administrator   ~0005270

I now have these rules in place:

1 - If an idle anim is playing, an AI can't start an idle bark or a greeting. He CAN play any bark that's part of his anim (frame command). This prevents things like the AI being in the middle of a cough or yawn, and he says "Greetings" or starts one of his idle barks.

2 - If an AI is in the middle of an idle bark or greeting, he can't start an idle anim. This prevents an idle bark or greeting from being interrupted by--for example--the frame command cough in the cough idle anim.

3 - If an AI is in the middle of an idle bark, it CAN be interrupted by a higher priority bark, such as a greeting. While this sounds odd, it seems right. It's as if he's mumbling, and suddenly notices you, and interrupts his mumbling to greet you. Since there's no idle anim involved, there's less of a reason to disallow the greeting.

How do these rules sound?

Are there any other situations you can think of?

The only negative I can see with these rules is that idle anims that don't have barks could allow idle barks or greetings to start while they're running. This lets an AI scratch his arm, and in the middle of the anim, he starts babbling about going to the kitchen. The other side of the coin is to let idle barks and greetings play idle anims at the same time, as long as those anims don't include barks. This lets an AI start babbling about asking for a raise, and in the middle of the bark, he stands up on his toes. I think there's a way to do these things, but I haven't begun to look for it yet.
Springheel

Springheel

31.03.2013 13:53

administrator   ~0005271

I'm fine with those rules. While it might be nice to have barks play during non-speaking idle animations, it's a minor concern.
grayman

grayman

31.03.2013 23:56

administrator   ~0005272

I figured out how to play barks during non-speaking idle anims, as well as how to play non-speaking idle anims during barks.
Springheel

Springheel

01.04.2013 00:54

administrator   ~0005273

Bonus points. :)
grayman

grayman

01.04.2013 18:54

administrator   ~0005279

1 - If an idle anim is playing, an AI can't start an idle bark or a greeting if the anim contains a voice frame command. He CAN play the frame command bark itself. This prevents things like the AI being in the middle of a cough or yawn, and he says "Greetings" or starts one of his idle barks. An idle bark or greeting CAN play in the middle of an idle anim if that anim doesn’t contain a voice frame command.

2 - If an AI is in the middle of an idle bark or greeting, he can't start an idle anim if it includes a voice frame command. This prevents an idle bark or greeting from being interrupted by--for example--the frame command cough in the cough idle anim. An idle anim that doesn’t contain a voice frame command can start in the middle of an idle bark or greeting.

3 - If an AI is in the middle of an idle bark, it CAN be interrupted by a higher priority bark, such as a greeting. While this sounds odd, it seems right. It's as if he's mumbling, and suddenly notices you, and interrupts his mumbling to greet you. Since there's no idle anim involved, there's less of a reason to disallow the greeting.

4 - There were instances where the repeated bark task (idle barks) would stop when a single bark came in from elsewhere. This was due to the way bark priorities were being handled, killing the repeated bark task. Fixed.

rev. 5731:

AgitatedSearchingState.cpp
AgitatedSearchingStateLanternBot.cpp
AlertIdleState.cpp
CombatState.cpp
FleeDoneState.cpp
IdleState.cpp
State.cpp
SwitchOnLightState.cpp
IdleAnimationTask.cpp
IdleAnimationTask.h
RepeatedBarkTask.cpp
RepeatedBarkTask.h
SingleBarkTask.cpp
SingleBarkTask.h
CommunicationSubsystem.cpp
Memory.cpp
Memory.h
Anim.h
Anim_Blend.cpp


rev. 13398:

tdm_ai_base.script

Issue History

Date Modified Username Field Change
19.07.2012 21:50 Springheel New Issue
30.03.2013 20:23 grayman Assigned To => grayman
30.03.2013 20:23 grayman Status new => assigned
30.03.2013 20:32 grayman Note Added: 0005269
31.03.2013 02:31 grayman Note Added: 0005270
31.03.2013 13:53 Springheel Note Added: 0005271
31.03.2013 23:56 grayman Note Added: 0005272
01.04.2013 00:54 Springheel Note Added: 0005273
01.04.2013 18:54 grayman Note Added: 0005279
01.04.2013 18:54 grayman Status assigned => resolved
01.04.2013 18:54 grayman Resolution open => fixed
01.04.2013 18:54 grayman Fixed in Version => TDM 2.00
01.04.2013 18:54 grayman Target Version => TDM 2.00
01.04.2013 18:54 grayman Description Updated View Revisions