View Issue Details

IDProjectCategoryView StatusLast Update
0003473The Dark ModAnimationpublic13.08.2013 23:47
ReporterSpringheel Assigned Tograyman  
PrioritynormalSeveritynormalReproducibilityhave not tried
Status resolvedResolutionfixed 
Product VersionTDM 1.08 
Target VersionTDM 2.00Fixed in VersionTDM 2.00 
Summary0003473: AI sometimes get "stuck" leaning back
DescriptionThis has been around for a while but I don't know if it's ever been tracked. Sometimes AI get stuck with their torso leaning back and their arms sticking out in front of them like frankenstein. I had it happen several times in Too Late today. I think it only happens when the player is higher than the AI. My guess is that the AI leans back to look up at the player, and then somehow gets stuck in this position. All walking and idle animations after this have the torso tilted back and the arms forward. (see image)
TagsNo tags attached.
Attached Files

Activities

grayman

grayman

29.07.2013 21:58

viewer   ~0005905

Was there a point where the posture went back to normal?

When the AI is looking up at you, he's focused on you. When he loses track of you, there's a timeout that resets his focus back to normal (i.e. his own eye level). I've seen it as high as 16 seconds, and was wondering if in your experience the AI eventually snapped out of Frankenstein mode.
Springheel

Springheel

30.07.2013 00:19

administrator   ~0005906

Last edited: 30.07.2013 00:39

No, they stay that way for a significant amount of time; possibly indefinitely.

I think I've gotten them to snap out of it by getting them to enter combat mode again, but I could be misremembering that.

I just had this happen again in Too Late. I alerted the thug early in the mission, and when I came out of the warehouse after dealing with the inside, he was walking around in the Frankenstein pose with his sword out.

Springheel

Springheel

30.07.2013 00:45

administrator   ~0005908

I just tested my theory above, and yes, if I engage the thug in combat and then run away, he plays regular combat and search animations, and his "lean" is gone when he goes back to idle (note I stayed on his level and didn't climb anywhere during the test).
grayman

grayman

30.07.2013 01:02

viewer   ~0005910

I don't think the Frankenstein arms are governed by the tilt of the head. I've been able to untilt the head by killing the focus timer, forcing him to return to a normal head position. The arms, however, stay out until he goes through some animation like drawing his sword.

I can reproduce it easily, but I can't figure out what causes the body to assume that position, what the position's "called", or how to disengage it, other than to give the AI something else to do. The problem there, however, is knowing when he's gotten himself into that position. Animations and body part positioning are a big black box.
grayman

grayman

30.07.2013 01:34

viewer   ~0005914

If I become unreachable when nearly over an AI, he tilts his head way back, and his arms come _way_ forward. It's as if the arms are trying to maintain the same relative angle to the torso as the head. Head back 15 degrees means arms forward 15 degrees. Head back 5 degrees means arms forward 5 degrees. Looks very unnatural. So it's not really a problem of killing the Frankenstein arms at the end of the episode, but of killing them when the episode begins.
Springheel

Springheel

30.07.2013 20:45

administrator   ~0005918

Last edited: 30.07.2013 20:46

My guess is that when the AI's head will not tilt any further, he then tilts his spine bone to allow him to target the player. This moves the torso back, and the arms would move with it because they're child bones. Perhaps the head then goes back to normal after combat, but the torso does not.

When the original head-turning was set up, there were additional joints added, like the spine, so the AI could turn its torso a bit too.

I found these in humanoid.def. I'm not familiar with what the combat ones mean, but I see they include arm joints. Could those have something to do with this?

 "look_min" "-80 -90 0"
    "look_max" "25 90 0"
    "look_joint Spine" "0.3 0.3 0"
    "look_joint Head" "0.7 0.7 0"



    // Allow vertical aiming at the player during combat
    "combat_look_joint Spine" "0.1333 0.1333 0"
    "combat_look_joint Spine2" "0.1333 0.1333 0"
    "combat_look_joint Head" "0.6 0.6 0"
    "combat_look_joint RightArm" "0.6 0 0"
    "combat_look_joint LeftArm" "0.6 0 0"

Springheel

Springheel

30.07.2013 20:57

administrator   ~0005919

Ok, try commenting out those RightArm and LeftArm lines, and see if you can get them to get stuck leaning back. I just tried in Too Late and wasn't able to.
grayman

grayman

30.07.2013 22:30

viewer   ~0005920

They don't come forward when he's beneath me, head way back, throwing rocks. I haven't tried a situation where he would walk away with his arms out, to show that they're no longer out.

I've no idea what effect this will have on anything else the AI does.

I sent angua a PM last night about this, but she hasn't read it yet.
Springheel

Springheel

30.07.2013 23:56

administrator   ~0005921

Last edited: 31.07.2013 00:00

I'm pretty sure, based on the comment and my fuzzy memory, that those values are there so that AI can effectively do melee attacks against the player when they are are standing on crates or otherwise higher than the AI.

edit: For the record, I tested in vision01 by climbing on top of the fireplace; the AI could still hit me with the arm values commented out.

grayman

grayman

04.08.2013 00:49

viewer   ~0005953

Stop an AI from continuing to look at where the player was in the moments before the AI killed the player.

Springheel found a relationship between the AI’s head and arm positions. Removing this relationship now allows an AI to keep his arms at his side when looking up, and not out in front of him.

Rev. 5833:

CombatState.cpp
UnreachableTargetState.cpp

Rev. 13578:

tdm_ai_humanoid.def
Springheel

Springheel

13.08.2013 23:47

administrator   ~0006014

I've been in lots of situations where this used to happen and haven't seen it, so I'm going to be optimistic and set this resolved.

Issue History

Date Modified Username Field Change
05.07.2013 00:54 Springheel New Issue
05.07.2013 00:54 Springheel File Added: too_late_2013-07-04_20.48.40.jpg
29.07.2013 21:58 grayman Note Added: 0005905
30.07.2013 00:19 Springheel Note Added: 0005906
30.07.2013 00:39 Springheel Note Edited: 0005906
30.07.2013 00:39 Springheel Note Edited: 0005906
30.07.2013 00:45 Springheel Note Added: 0005908
30.07.2013 01:02 grayman Note Added: 0005910
30.07.2013 01:34 grayman Note Added: 0005914
30.07.2013 20:45 Springheel Note Added: 0005918
30.07.2013 20:46 Springheel Note Edited: 0005918
30.07.2013 20:57 Springheel Note Added: 0005919
30.07.2013 22:30 grayman Note Added: 0005920
30.07.2013 23:56 Springheel Note Added: 0005921
31.07.2013 00:00 Springheel Note Edited: 0005921
04.08.2013 00:47 grayman Assigned To => grayman
04.08.2013 00:47 grayman Status new => assigned
04.08.2013 00:49 grayman Note Added: 0005953
04.08.2013 00:49 grayman Status assigned => feedback
04.08.2013 00:49 grayman Product Version => TDM 1.08
04.08.2013 00:49 grayman Target Version => TDM 2.00
13.08.2013 23:47 Springheel Note Added: 0006014
13.08.2013 23:47 Springheel Status feedback => assigned
13.08.2013 23:47 Springheel Status assigned => resolved
13.08.2013 23:47 Springheel Fixed in Version => TDM 2.00
13.08.2013 23:47 Springheel Resolution open => fixed