View Issue Details
ID | Project | Category | View Status | Date Submitted | Last Update |
---|---|---|---|---|---|
0004076 | The Dark Mod | Animation | public | 01.02.2015 22:01 | 01.02.2015 22:45 |
Reporter | SteveL | Assigned To | SteveL | ||
Priority | normal | Severity | normal | Reproducibility | sometimes |
Status | resolved | Resolution | fixed | ||
Product Version | TDM 2.03 | ||||
Target Version | TDM 2.03 | Fixed in Version | TDM 2.04 | ||
Summary | 0004076: Final riverdancing | ||||
Description | Riverdancing can still occur if the game code sets a new anim state for an AI who wants to turn while a custom idle is playing, without clearing the wait state in a separate step. Most places in the code already clear the wait state, but there are 4 more places in the State code that start Legs_Idle without doing it, and there could be many more that set a different anim state that could then go on to start the Legs_Idle state. Legs_Idle will start Legs_Turn if the AI wants to turn and isn't doing anything else. If Legs_Turn starts up while the AI is still in an "idle" wait state, riverdancing will always happen, and the AI will be stuck shuffling on the spot until something ahpopensto trigger a new anim state. | ||||
Additional Information | From discussion with grayman and Springheel: - Riverdancing is the result of AI turning being delayed while the game thinks that a custom idle anim is playing, i.e. when an AI is in wait state "idle" or "idle_no_voice". If the idle is not actually playing, and the legs are already cycling their turn animation, that wait can go on forever. - The game code relies on the AI scripts to clear that wait state, once the custom idle animation is done. But there are dozens of places in the game code that potentially halt the custom animation script before it does its clean-up. - Turning is already a special case, a game action that has to be delayed to let an anim complete. - 100% of riverdancing is caused by a Legs_Turn script starting up while an "idle" wait state is active. We've done fixes to diverse places in the code to stop that happening, but *all* the bugs gave rise to that same situation. - If a Legs_Turn script starts while an "idle" wait state is in effect, riverdancing will happen 100% of the time. It can only be interrupted when something forces the AI into a new anim state, such as an alert. So by allowing the turn scripts to unblock river dancing (clearing the "idle" wait states) we cure all river dancing and affect zero situations that are working ok right now. It's not the original design, but it'd let us move forward with 2.03 riverdancing-free, and anyway we already decided the anim control system needs an overhaul that we plan to give it in 2.04. | ||||
Tags | No tags attached. | ||||
Date Modified | Username | Field | Change |
---|---|---|---|
01.02.2015 22:01 | SteveL | New Issue | |
01.02.2015 22:01 | SteveL | Status | new => assigned |
01.02.2015 22:01 | SteveL | Assigned To | => SteveL |
01.02.2015 22:01 | SteveL | Additional Information Updated | |
01.02.2015 22:37 | SteveL | Note Added: 0007402 | |
01.02.2015 22:45 | SteveL | Status | assigned => resolved |
01.02.2015 22:45 | SteveL | Fixed in Version | => TDM 2.04 |
01.02.2015 22:45 | SteveL | Resolution | open => fixed |
01.02.2015 22:45 | SteveL | Relationship added | related to 0004050 |
01.02.2015 22:45 | SteveL | Relationship added | related to 0004012 |