View Issue Details

IDProjectCategoryView StatusLast Update
0004063The Dark ModAnimationpublic31.01.2015 18:40
ReporterSteveL Assigned ToSteveL  
PrioritynormalSeveritynormalReproducibilityalways
Status resolvedResolutionfixed 
Product VersionTDM 2.03 
Target VersionTDM 2.03Fixed in VersionTDM 2.03 
Summary0004063: Anim channels need to be enabled when another channel syncs to them
DescriptionAnim scripts for legs/torso channel can be disabled by frame commands in the anims themselves, or by AI scripts in 2.03. When one channel (A) syncs to another (B) and disables its own (A's) scripts, we need to ensure that B's scripts are running.

Additional InformationThis caused drunken AI with a bottle in hand to freeze, because idle_drunk_bottle calls overrideLegs to disable the legs and sync them to the torso, and it has a tendency to do it in the same frame that Torso_Turn disables the torso script at the beginning of a turn, meaning to sync the torso to the legs. Always enabling the channel being synced to resolves those conflicts.

Sequence of events

    Drunken AI stops walking and needs to turn, e.g. at a door.
    Idle states kick in briefly on both Torso and Legs before the desire to turn is detected by the animation scripts.
    The AI starts to play animation "idle_bottle_drunk".
    A couple of frames later, the turn scripts are activated. (new anim states are Torso_Turn and Legs_TurnLeft, but those scripts haven't activated their anims yet).
    Meanwhile "idle_bottle_drunk" is still playing on the torso and executes an "overrideLegs" frame command.
    The legs script gets suspended by that override before it begins to execute, although the AI is already in anim state "Legs_TurnLeft"
    The Torso_Turn script detects that the legs are in state "Legs_TurnLeft" and syncs to the legs, disabling its own scripts.
    At this point both legs and torso are suspended, waiting on one another, and the AI won't move until something happens to trigger a new anim state.
TagsNo tags attached.

Activities

SteveL

SteveL

31.01.2015 18:40

reporter   ~0007400

at rev 6466

Issue History

Date Modified Username Field Change
27.01.2015 19:28 SteveL New Issue
27.01.2015 19:28 SteveL Status new => assigned
27.01.2015 19:28 SteveL Assigned To => SteveL
31.01.2015 18:40 SteveL Note Added: 0007400
31.01.2015 18:40 SteveL Status assigned => resolved
31.01.2015 18:40 SteveL Fixed in Version => TDM 2.03
31.01.2015 18:40 SteveL Resolution open => fixed