View Issue Details

IDProjectCategoryView StatusLast Update
0003806The Dark ModAIpublic15.09.2014 19:33
ReporterSpringheel Assigned ToSteveL  
PrioritynormalSeveritynormalReproducibilityhave not tried
Status resolvedResolutionfixed 
Product VersionTDM 2.03 
Target VersionTDM 2.03Fixed in VersionTDM 2.03 
Summary0003806: Make sure turn animation overrides idles
Descriptionright now if AI are in the middle of an idle animation while turning, their legs just spin on the spot instead of playing the turn animation.

http://forums.thedarkmod.com/topic/16402-turn-left-right-animations/page__p__350194#entry350194
TagsNo tags attached.

Relationships

related to 0003850 new AI turn speed is wrong 

Activities

Springheel

Springheel

17.08.2014 01:11

administrator   ~0006855

Not sure from the thread...did you already deal with this Steve?
SteveL

SteveL

20.08.2014 16:32

reporter   ~0006860

Erm... no I didn't. I'm trying to remember what it was I did do. I remember making a video. I think I demo'd that legs could be synced with torso in the game scripts but without actually changing anything. Anyway, I'll take a look at it when I'm done with the occluder proof of concept--hopefully soon!
Springheel

Springheel

22.08.2014 17:01

administrator   ~0006867

Here's the correct link to the thread: http://forums.thedarkmod.com/topic/16402-turn-left-right-animations/page__view__findpost__p__350194
SteveL

SteveL

09.09.2014 20:21

reporter   ~0006972

There are 3 issues mentioned by Arcturus in the thread -- this one, plus:
2: turn anim doesn't play on torso
3: anim turn rate is too fast for the current anim

I'll take (3) back to the thread for discussion after fixing this, but I wonder if (2) should be fixed with this one? Should the same rules apply, i.e. that a turn anim should override idle anims on both legs and torso? For example, we wouldn't want the turn anim to override purposeful anims like sword-drawing, but it should override idle anims like knee-scratching or nose-picking.
Springheel

Springheel

09.09.2014 21:42

administrator   ~0006973

Last edited: 09.09.2014 21:42

Is it possible/reasonable to allow an idle to finish -before- the AI turns? I'm imagining that interrupting some idles might look a bit odd.

SteveL

SteveL

09.09.2014 21:57

reporter   ~0006974

I guess I could make the scripts do that but I'd have to ask you and grayman to think about the consequences :) I don't know anything about the AI state system. Would it have to be dependent on alert level, for example?
Springheel

Springheel

10.09.2014 03:45

administrator   ~0006975

Maybe we need a discussion topic on the issue; I'm too fuzzy to think it through just now.
SteveL

SteveL

12.09.2014 18:58

reporter   ~0006983

Last edited: 12.09.2014 18:58

Proposed fix following discussion:
== Idle wait states (custom idles) override turns by delaying the turn, which happens after the idle finishes. Shouldn't affect critical moments like combat or chasing as idles won't be playing anyway.
== Turn anims only get to play therefore when the AI is standing still and not playing a custom idle, so it's safe to play them on the torso too.
== Random custom idle anims that arise during a turn are suppressed.

SteveL

SteveL

13.09.2014 09:53

reporter   ~0006986

Patch is ready for this, but waiting on a decision whether we need new torch-carrier versions of the turn animations first.
SteveL

SteveL

14.09.2014 20:38

reporter   ~0007000

Committed rv6101 (code), rv13993(script, game dll)

tdm_ai_base.script
game/ai/AI.cpp
game/ai/Tasks/IdleAnimationTask.cpp
SteveL

SteveL

15.09.2014 06:25

reporter   ~0007005

Reopening tracker and rolled back commit while I check out an error report. grayman has supplied a test map where fighting AI stop moving, which was fixed by removing the changes.
SteveL

SteveL

15.09.2014 19:33

reporter   ~0007010

Last edited: 15.09.2014 19:33

Commit attempt # 2 at rv6014 (code), rv13995 (binaries, script).

Legs anim state no longer overrides anything on the torso. Torso is independently responsible for syncing itself to the legs anim state if it's idle and detects a turn.

Issue History

Date Modified Username Field Change
05.08.2014 15:53 Springheel New Issue
17.08.2014 01:11 Springheel Note Added: 0006855
17.08.2014 01:11 Springheel Assigned To => SteveL
17.08.2014 01:11 Springheel Status new => assigned
20.08.2014 16:32 SteveL Note Added: 0006860
22.08.2014 17:01 Springheel Note Added: 0006867
09.09.2014 20:21 SteveL Note Added: 0006972
09.09.2014 20:21 SteveL Status assigned => feedback
09.09.2014 21:42 Springheel Note Added: 0006973
09.09.2014 21:42 Springheel Status feedback => assigned
09.09.2014 21:42 Springheel Note Edited: 0006973
09.09.2014 21:57 SteveL Note Added: 0006974
10.09.2014 03:45 Springheel Note Added: 0006975
12.09.2014 17:23 SteveL Description Updated
12.09.2014 17:27 SteveL Relationship added related to 0003850
12.09.2014 17:27 SteveL Target Version => TDM 2.03
12.09.2014 18:58 SteveL Note Added: 0006983
12.09.2014 18:58 SteveL Note Edited: 0006983
13.09.2014 09:53 SteveL Note Added: 0006986
14.09.2014 20:38 SteveL Note Added: 0007000
14.09.2014 20:41 SteveL Status assigned => resolved
14.09.2014 20:41 SteveL Fixed in Version => TDM 2.03
14.09.2014 20:41 SteveL Resolution open => fixed
15.09.2014 06:25 SteveL Note Added: 0007005
15.09.2014 06:25 SteveL Status resolved => assigned
15.09.2014 19:33 SteveL Note Added: 0007010
15.09.2014 19:33 SteveL Status assigned => resolved
15.09.2014 19:33 SteveL Note Edited: 0007010