View Issue Details
ID | Project | Category | View Status | Date Submitted | Last Update |
---|---|---|---|---|---|
0003182 | The Dark Mod | AI | public | 19.07.2012 21:50 | 01.04.2013 18:54 |
Reporter | Springheel | Assigned To | grayman | ||
Priority | normal | Severity | normal | Reproducibility | have not tried |
Status | resolved | Resolution | fixed | ||
Product Version | TDM 1.08 | ||||
Target Version | TDM 2.00 | Fixed in Version | TDM 2.00 | ||
Summary | 0003182: Idle animations can interrupt idle barks. | ||||
Description | Some 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. | ||||
Tags | No tags attached. | ||||
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). | |
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. |
|
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. | |
I figured out how to play barks during non-speaking idle anims, as well as how to play non-speaking idle anims during barks. | |
Bonus points. :) | |
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 |
|
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 |