View Issue Details
| ID | Project | Category | View Status | Date Submitted | Last Update |
|---|---|---|---|---|---|
| 0003634 | The Dark Mod | Sound | public | 27.12.2013 20:09 | 13.07.2014 16:44 |
| Reporter | grayman | Assigned To | SteveL | ||
| Priority | normal | Severity | normal | Reproducibility | always |
| Status | resolved | Resolution | fixed | ||
| Product Version | TDM 2.01 | ||||
| Fixed in Version | TDM 2.02 | ||||
| Summary | 0003634: Patrolling AI ignore tdm_nodrawsolid_moss when determining footstep sound | ||||
| Description | When 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. | ||||
| Tags | No 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"
}
| ||||
|
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" |
|
| Added replacement .def file to tracker issue for time being. I'll merge with the current svn version later, when access issues sorted out. | |
| At revision: 13781 | |
| 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 |