View Issue Details

IDProjectCategoryView StatusLast Update
0003634The Dark ModSoundpublic13.07.2014 16:44
Reportergrayman Assigned ToSteveL  
PrioritynormalSeveritynormalReproducibilityalways
Status resolvedResolutionfixed 
Product VersionTDM 2.01 
Fixed in VersionTDM 2.02 
Summary0003634: Patrolling AI ignore tdm_nodrawsolid_moss when determining footstep sound
DescriptionWhen the player walks across tdm_nodrawsolid_moss, you hear a muffled footstep.

When AI walk across the same, you hear a footstep associated with the material beneath the tdm_nodrawsolid_moss.

I don't know if this is the case for all AI, but skeletons, zombies, and revenants behave this way.
TagsNo tags attached.
Attached Files
tdm_ai_humanoid.def (12,571 bytes)   
entityDef atdm:ai_humanoid
{
    "inherit"   "atdm:ai_base"
    "editor_displayFolder"      "AI/Internal/Base Class"
    
    "editor_usage"      "Don't use. Base class for all TDM humanoid AI entities."
    // This defines how AIs will interact with this entity
    "AIUse"             "AIUSE_PERSON"
    "personType"        "PERSONTYPE_GENERIC"
    "personGender"      "PERSONGENDER_UNKNOWN"

        "anim"                      "idle"  //animation to play on map start
        "head_joint"                "Head"  // humanoids will have their head attached to this joint

        "anim_rate_run"             "0.8" //slows down AI so they are slightly slower than player
        "anim_rate_run_torch"               "0.8"
                

    // These defines the chances the AI will notice various visual stimuli
    "chanceNoticeWeapon"    "1.0"
    "chanceNoticeSuspiciousItem"        "1.0" // grayman #1327
    "chanceNoticeRope"      "1.0" // grayman #2872 
    "chanceNoticePerson"    "1.0"
    "chanceNoticeMonster"   "1.0" // grayman #3331
    "chanceNoticeUndead"    "1.0" // grayman #3343
    "chanceNoticeBlood"     "1.0"
    "chanceNoticeLight"     "0.9" // grayman #2603
    "chanceNoticeMissingItem"   "1.0"
    "chanceNoticeDoor"          "1.0"
        
    // These define if the AI can operate various kinds of lights
    "canLightTorches"           "1"
    "canOperateSwitchLights"    "1"
    "chanceLightTorches"        "0.4" // grayman #2603
    "chanceOperateSwitchLights" "0.7" // grayman #2603
    
    "canOperateDoors"           "1"
    "canOperateElevators"       "1"

    "canGreet"                  "1"
    
    // Humans need weapons to fight
    "unarmed_melee"     "0"

    "damage_zone head"                           "*Neck"
    "damage_zone chest"             "*Spine_Dummy -*Neck"
    "damage_zone torso_low"             "Hips"
    "damage_zone left_arm"              "*LeftArm"
    "damage_zone right_arm"             "*RightArm"
    "damage_zone legs"              "*LeftHips_Dummy *RightHips_Dummy origin"

    "damage_scale head"             "2"
    "damage_scale chest"                "1.5"
    "damage_scale torso_low"            "1.0"
    "damage_scale left_arm"             "0.3"
    "damage_scale right_arm"            "0.3"
    "damage_scale legs"             "0.4"

        //all humanoid AI will be using the same base skeleton
        "ik_numLegs"                    "2"
    "ik_minWaistAnkleDist"          "16"
    "ik_footSize"                   "4"
    "ik_waist"                      "Hips"
    "ik_hip1"                       "LeftUpLeg"
    "ik_hip2"                       "RightUpLeg"
    "ik_knee1"                      "LeftLeg"
    "ik_knee2"                      "RightLeg"
    "ik_ankle1"                     "LeftFoot"
    "ik_ankle2"                     "RightFoot"
    //normally a knee joint
    //"ik_dir1"                     "LeftFoot"
    //"ik_dir2"                     "RightFoot"
    "ik_foot1"                      "LeftToeBase"
    "ik_foot2"                      "RightToeBase"


    // We now use AAS32 by default
    "use_aas"                   "aas32"
    "size"                      "32 32 68"
    "cylinder"                  "10"            // optional

    "eye_height"                "77"  

    // rates for AI turning their head randomly--these values cause AI to move their shoulders slightly as well

    "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" // grayman #3473
    //"combat_look_joint LeftArm"           "0.6 0 0" // grayman #3473

        "head_focus_rate"               "0.05"     //how fast head turns to focus on target

        // the number of degrees an AI can turn in 1 second
        "turn_rate"                 "180"

    // Attachment Positions (For OLD skeleton, NEW skeleton positions are in tdm_ai_humanoid_newskel)
    
    // hand: orientation matches the weapon model convention
    // (forward in the hand is to the right in the model)
    "attach_pos_name_handr"             "hand_r"
    "attach_pos_joint_handr"            "RightHand"
    // joint orientation: down sideways forward
    "attach_pos_origin_handr"           "-5 2 0"
    // joint orientation: roll, pitch, yaw
    "attach_pos_angles_handr"           "180 0 90"

    "attach_pos_name_handl"             "hand_l"
    "attach_pos_joint_handl"            "LeftHand"
    "attach_pos_origin_handl"           "5 -3 0"
    "attach_pos_angles_handl"           "180 0 -90"

    // Position for sword sheathed at the left hip (still WIP, not quite right)
    "attach_pos_name_hipsheathl"            "hip_sheath_l"
    "attach_pos_joint_hipsheathl"           "Hips"
    "attach_pos_origin_hipsheathl"      "7.5 4.4 6.6"
    "attach_pos_angles_hipsheathl"      "-60 -90 -80"

    // Positions on the belt (calibrated for builder guard w/ purse)

    "attach_pos_name_beltb"             "belt_back"
    "attach_pos_joint_beltb"            "Hips"
    // left, up, in/out
    "attach_pos_origin_beltb"           "0 7 -4"
    "attach_pos_angles_beltb"           "-90 0 -90"

    "attach_pos_name_beltbr"            "belt_back_r"
    "attach_pos_joint_beltbr"           "Hips"
    // left, up, in/out
    "attach_pos_origin_beltbr"          "-5 7 -4"
    "attach_pos_angles_beltbr"          "-90 0 -90"

    "attach_pos_name_beltbl"            "belt_back_l"
    "attach_pos_joint_beltbl"           "Hips"
    "attach_pos_origin_beltbl"          "5 7 -4"
    "attach_pos_angles_beltbl"          "-90 0 -90"

    "attach_pos_name_beltfr"            "belt_front_r"
    "attach_pos_joint_beltfr"           "Hips"
    // left, up, in/out
    "attach_pos_origin_beltfr"          "-5 7 5.5"
    "attach_pos_angles_beltfr"          "90 0 -90"

    "attach_pos_name_beltfl"            "belt_front_l"
    "attach_pos_joint_beltfl"           "Hips"
    "attach_pos_origin_beltfl"          "5 7 5.5"
    "attach_pos_angles_beltfl"          "90 0 -90"


    "editor_bool ground_when_dragged"   "If set to true, don't let the player pick the ragdoll all the way up off the ground."
    "ground_when_dragged"           "1"
    
    "editor_string ground_critical_bodies" "A list of AF bodies, separated by space. These bodies checked to see if they're on the ground when 'ground_when_dragged' is true."
    // Currently based on /af/guard_base.af
    "ground_critical_bodies" "waist chest rupleg Lupleg ruparm Luparm"
    
    "editor_int ground_min_number"  "At least so many AF bodies defined in 'ground_critical_bodies' must remain on the ground, or dragging upwards is not allowed."
    "ground_min_number"         "1"

    "editor_bool drag_af_damping"   "If true, apply AF damping when dragging the ragdoll."
    "drag_af_damping"           "1"

    // This frob distance is intended for frobbing AI ragdolls
    // Might have to revise this to have conversations via frobbing, etc.
    "frob_distance"             "60"

    "editor_int hold_distance_min"  "Distance ragdoll is from player when dragged, default is 35. In units."
    "hold_distance_min"         "35"

    // melee weapon swing sound
    "snd_swing"     "sword_swing"

    //  blade sounds
    "snd_drawsword"             "sword_ai_unsheath"
    "snd_sheathesword"                "sword_ai_sheath"

    // default footstep, 
    "snd_footstep"      "human_stone"

    // material specific footsteps (DarkMod SFX)

    "snd_footstep_straw"                         "human_straw"
    "snd_footstep_wood"                           "human_wood"  
    "snd_footstep_puddle"           "movement_water"
    "snd_footstep_wading"           "movement_water"
    "snd_footstep_tile"             "human_tile"

    "snd_footstep_stone"            "human_stone"

    "snd_footstep_snow"             "human_snow"
    "snd_footstep_gravel"           "human_gravel"
    "snd_footstep_metal"            "human_metal"
    "snd_footstep_grass"            "human_grass"
    "snd_footstep_carpet"           "human_carpet"
    "snd_footstep_dirt"             "human_dirt"
    "snd_footstep_foliage"          "human_foliage"

    // SteveL #3634: Adding 8 footstep sounds
    "snd_footstep_sand"         "human_dirt"
    "snd_footstep_glass"        "human_glass"
    "snd_footstep_ice"          "human_ice"
    "snd_footstep_cloth"        "human_carpet"
    "snd_footstep_armor_leath"  "human_carpet"
    "snd_footstep_flesh"        "human_mud"
    "snd_footstep_moss"         "human_carpet"
    "snd_footstep_liquid"       "movement_water"
    
    // voice set (test set for now, remove before release!)

    // greebo: The base humanoid AI is using the base vocal set
    "def_vocal_set"                 "atdm:ai_vocal_set_base"
    
    "health"                        "100"
    
    // Projectile, for throwing when the enemy is out of reach (make me a rock please)
    "def_projectile"                "atdm:projectile_rock"
    
    // Accuracy of projectile-throwing. 0 means perfect accuracy, larger values are worse.
    "attack_accuracy"               "2.3"
    
    //This value may not even be needed, but is included here just in case:
    "attack_cone"               "70"

    // ============== Melee Settings ===========
    // melee difficulty set to use (default is skilled)
    "def_melee_set" "atdm:ai_melee_set_skilled"

    // Range at which an AI thinks it can hit you
    "melee_range"                       "40"

    "melee_predicts_proximity"          "1" // most humanoids are smart enough to do this
    "melee_predicted_attack_time"       "750" // works for our sword anims, needs overloading for animals, zombies
    // ============ End Melee Settings ===========
    
    // Set this to 0 to turn off throwing projectiles when enemies are out of reach.
    // For example, you might use scripts to prevent guards from throwing things in
    // the antiques room (don't want to break those vases!)
    "outofreach_projectile_enabled"         "1"
    
    // This is used to limit the distance which an AI will travel to take cover.
    // 0 means no limit. As a rough guideline, this is approximately measured in Doom units
    // divided by 3; however, this can vary.
    "taking_cover_max_cost"             "100"
    
    // Set to 0 to disable taking cover.
    "taking_cover_enabled"              "1"
    
    // Set to 0 to take cover from all enemies, not just ones that can threaten us from a distance.
    "taking_cover_only_from_archers"    "1"

    // greebo: Humanoids should be translated upwards a bit when stepping up slopes
    "step_up_increase"                  "10"

    /**
    * ishtvan: This larger box CM for the head is swapped in
    * doing collision tests with the blackjack, at all
    * times the AI is alive, except when in combat state.
    **/
    "blackjack_headbox_mins"            "-10 -3 -9"
    "blackjack_headbox_maxs"            "5 3 3.5"

    "mouth_offset"                      "0 0 15" // grayman #1488
    "eye_offset"                        "0 0 19" // grayman #3525

    "hitByMoveableLookAtTime"           "2.0" // grayman #2816
    "hitByMoveableLookBackTime"         "2.0" // grayman #2816
}

// ============ Humanoid Corpse ============
entityDef atdm:env_ragdoll_humanoid_base
{
    "inherit"                   "atdm:env_ragdoll_base"
    "spawnclass"                "idAFEntity_WithAttachedHead"
    "editor_usage"              "Don't use, base class for all TDM humanoid ragdolls."

        "head_joint"            "head" 

    // This defines how AIs will interact with this entity
    "AIUse"                     "AIUSE_PERSON"
    "personType"                "PERSONTYPE_GENERIC"
    "personGender"              "PERSONGENDER_UNKNOWN"

    // Don't let the player pick the ragdoll all the way up off the ground
    "ground_when_dragged"       "1"
    
    // The following are the AF bodies checked to see if they're on the ground
    // Currently based on /af/guard_base.af
    "ground_critical_bodies" "waist chest rupleg Lupleg ruparm Luparm"
    
    // At least one of these bodies must remain on the ground, or dragging upwards is not allowed
    "ground_min_number"         "1"

    // Apply AF damping when dragging the ragdoll
    "drag_af_damping"           "1"
}
tdm_ai_humanoid.def (12,571 bytes)   

Relationships

related to 0003693 resolvedSteveL nodrawsolid_liquid doesn't work for player 

Activities

SteveL

SteveL

13.03.2014 20:18

reporter   ~0006439

Caused by spawnargs missing from tdm_ai_humanoid_guards01.pk4/def/tdm_ai_humanoid.def > atdm:ai_humanoid, which includes revenants in its class tree. The player entityDef has 6 footsteps sounds used in nodrawsolid textures that ai_humanoid doesn't have:
    "snd_footstep_sand" "human_dirt"
    "snd_footstep_glass" "human_glass"
    "snd_footstep_ice" "human_ice"
    "snd_footstep_cloth" "human_carpet"
    "snd_footstep_armor_leath" "human_carpet"
    "snd_footstep_flesh" "human_mud"
    "snd_footstep_moss" "human_carpet"

Plus there's one needed for nodrawsolid_liquid that neither the player nor the AI has:
    "snd_footstep_liquid" "movement_water"
SteveL

SteveL

27.03.2014 18:10

reporter   ~0006475

Added replacement .def file to tracker issue for time being. I'll merge with the current svn version later, when access issues sorted out.
SteveL

SteveL

28.03.2014 18:09

reporter   ~0006478

At revision: 13781

Issue History

Date Modified Username Field Change
27.12.2013 20:09 grayman New Issue
13.03.2014 20:18 SteveL Note Added: 0006439
14.03.2014 18:43 SteveL Assigned To => SteveL
14.03.2014 18:43 SteveL Status new => assigned
14.03.2014 18:44 SteveL Status assigned => confirmed
14.03.2014 18:55 SteveL Relationship added related to 0003693
27.03.2014 18:09 SteveL File Added: tdm_ai_humanoid.def
27.03.2014 18:10 SteveL Note Added: 0006475
28.03.2014 18:09 SteveL Note Added: 0006478
28.03.2014 18:09 SteveL Status confirmed => resolved
28.03.2014 18:09 SteveL Fixed in Version => TDM 2.02
28.03.2014 18:09 SteveL Resolution open => fixed