View Issue Details
ID | Project | Category | View Status | Date Submitted | Last Update |
---|---|---|---|---|---|
0003394 | The Dark Mod | Sound | public | 04.05.2013 01:29 | 04.05.2013 16:29 |
Reporter | Springheel | Assigned To | grayman | ||
Priority | normal | Severity | normal | Reproducibility | have not tried |
Status | resolved | Resolution | fixed | ||
Product Version | TDM 2.00 | ||||
Target Version | TDM 2.00 | Fixed in Version | TDM 2.00 | ||
Summary | 0003394: Ragdoll AI not propagating sounds properly | ||||
Description | I didn't think ragdoll AI impact sounds were propagating to AI at all, but apparently the ones that are spawned at run time are. What is the difference? atdm:ai_base has the following line: "sprS_bounce" "yell" But the ragdoll AI entities don't inherit ai_base. So where are they getting a propagated sound from? | ||||
Tags | No tags attached. | ||||
Attached Files | victim.map (6,630 bytes)
Version 2 // entity 0 { "classname" "worldspawn" "editor_drLastCameraPos" "-37.1318 -61.33 67.6615" "editor_drLastCameraAngle" "-26.4 87.3 0" "editor_drMapPos1" "1738.55 1171.14 -520.531" "editor_drMapAngle1" "14.7001 87.8977 0" "editor_drMapPos2" "414.798 255.441 -264.933" "editor_drMapAngle2" "2.10002 84.5976 0" "editor_drMapPos3" "-749.97 -1606.21 -470.066" "editor_drMapAngle3" "-3.29998 6.59757 0" "editor_drMapPos4" "1014.05 -953.679 -556.857" "editor_drMapAngle4" "-10.2 355.498 0" "editor_drMapPos5" "987.599 3513.79 -319.877" "editor_drMapAngle5" "-61.1999 172.198 0" "editor_drMapPos6" "-1032.5 -2840 739.5" "editor_drMapAngle6" "-77.0999 175.798 0" "editor_drMapPos7" "952.822 285.005 1366.04" "editor_drMapAngle7" "-74.8 149.373 0" "editor_drMapPos8" "976 424 320" "editor_drMapAngle8" "-3 15.3467 0" "editor_drMapPos9" "409.146 547.464 392.83" "editor_drMapAngle9" "-16.8 284.947 0" // primitive 0 { brushDef3 { ( 0 0 1 -200 ) ( ( 0.0078125 0 0 ) ( 0 0.0078125 0 ) ) "textures/darkmod/paint_paper/wallpaper_fancy_gold" 0 0 0 ( 0 1 0 -192 ) ( ( 0.0078125 0 0 ) ( 0 0.0078125 0.125 ) ) "textures/darkmod/paint_paper/wallpaper_fancy_gold" 0 0 0 ( 1 0 0 -64 ) ( ( 0.0078125 0 0 ) ( 0 0.0078125 0.375 ) ) "textures/darkmod/paint_paper/wallpaper_fancy_gold" 0 0 0 ( 0 -1 0 -64 ) ( ( 0.0078125 0 0 ) ( 0 0.0078125 0.375 ) ) "textures/darkmod/paint_paper/wallpaper_fancy_gold" 0 0 0 ( -1 0 0 -192 ) ( ( 0.0078125 0 0 ) ( 0 0.0078125 0.375 ) ) "textures/darkmod/paint_paper/wallpaper_fancy_gold" 0 0 0 ( 0 0 -1 192 ) ( ( 0.0078125 0 0 ) ( 0 0.0078125 0 ) ) "textures/darkmod/paint_paper/wallpaper_fancy_gold" 0 0 0 } } // primitive 1 { brushDef3 { ( 0 0 1 -192 ) ( ( 0.0078125 0 15.9375 ) ( 0 0.0078125 0 ) ) "textures/darkmod/paint_paper/wallpaper_fancy_gold" 0 0 0 ( 0 1 0 -200 ) ( ( 0.0078125 0 0 ) ( 0 0.0078125 0.0625 ) ) "textures/darkmod/paint_paper/wallpaper_fancy_gold" 0 0 0 ( 1 0 0 -64 ) ( ( 0.0078125 0 15.9375 ) ( 0 0.0078125 0.3125 ) ) "textures/darkmod/paint_paper/wallpaper_fancy_gold" 0 0 0 ( 0 0 -1 -64 ) ( ( 0.0078125 0 15.9375 ) ( 0 0.0078125 0 ) ) "textures/darkmod/paint_paper/wallpaper_fancy_gold" 0 0 0 ( -1 0 0 -192 ) ( ( 0.0078125 0 0.0625 ) ( 0 0.0078125 0.3125 ) ) "textures/darkmod/paint_paper/wallpaper_fancy_gold" 0 0 0 ( 0 -1 0 192 ) ( ( 0.0078125 0 0 ) ( 0 0.0078125 0.0625 ) ) "textures/darkmod/paint_paper/wallpaper_fancy_gold" 0 0 0 } } // primitive 2 { brushDef3 { ( 0 0 1 -192 ) ( ( 0.0078125 0 0 ) ( 0 0.0078125 15.9375 ) ) "textures/darkmod/paint_paper/wallpaper_fancy_gold" 0 0 0 ( 0 1 0 -192 ) ( ( 0.0078125 0 0.0625 ) ( 0 0.0078125 0.0625 ) ) "textures/darkmod/paint_paper/wallpaper_fancy_gold" 0 0 0 ( 1 0 0 -72 ) ( ( 0.0078125 0 0 ) ( 0 0.0078125 0.3125 ) ) "textures/darkmod/paint_paper/wallpaper_fancy_gold" 0 0 0 ( 0 0 -1 -64 ) ( ( 0.0078125 0 0 ) ( 0 0.0078125 0.0625 ) ) "textures/darkmod/paint_paper/wallpaper_fancy_gold" 0 0 0 ( 0 -1 0 -64 ) ( ( 0.0078125 0 15.9375 ) ( 0 0.0078125 0.3125 ) ) "textures/darkmod/paint_paper/wallpaper_fancy_gold" 0 0 0 ( -1 0 0 64 ) ( ( 0.0078125 0 0 ) ( 0 0.0078125 0.3125 ) ) "textures/darkmod/paint_paper/wallpaper_fancy_gold" 0 0 0 } } // primitive 3 { brushDef3 { ( 0 1 0 -192 ) ( ( 0.0078125 0 0 ) ( 0 0.0078125 0 ) ) "textures/darkmod/paint_paper/wallpaper_fancy_gold" 0 0 0 ( 1 0 0 -64 ) ( ( 0.0078125 0 0 ) ( 0 0.0078125 0.25 ) ) "textures/darkmod/paint_paper/wallpaper_fancy_gold" 0 0 0 ( 0 0 -1 -72 ) ( ( 0.0078125 0 0 ) ( 0 0.0078125 0 ) ) "textures/darkmod/paint_paper/wallpaper_fancy_gold" 0 0 0 ( 0 -1 0 -64 ) ( ( 0.0078125 0 0 ) ( 0 0.0078125 0.25 ) ) "textures/darkmod/paint_paper/wallpaper_fancy_gold" 0 0 0 ( -1 0 0 -192 ) ( ( 0.0078125 0 0 ) ( 0 0.0078125 0.25 ) ) "textures/darkmod/paint_paper/wallpaper_fancy_gold" 0 0 0 ( 0 0 1 64 ) ( ( 0.0078125 0 0 ) ( 0 0.0078125 0 ) ) "textures/darkmod/paint_paper/wallpaper_fancy_gold" 0 0 0 } } // primitive 4 { brushDef3 { ( 0 0 1 -192 ) ( ( 0.0078125 0 0.0625 ) ( 0 0.0078125 0 ) ) "textures/darkmod/paint_paper/wallpaper_fancy_gold" 0 0 0 ( 1 0 0 -64 ) ( ( 0.0078125 0 0.0625 ) ( 0 0.0078125 0.3125 ) ) "textures/darkmod/paint_paper/wallpaper_fancy_gold" 0 0 0 ( 0 0 -1 -64 ) ( ( 0.0078125 0 0.0625 ) ( 0 0.0078125 0 ) ) "textures/darkmod/paint_paper/wallpaper_fancy_gold" 0 0 0 ( 0 -1 0 -72 ) ( ( 0.0078125 0 0 ) ( 0 0.0078125 0.3125 ) ) "textures/darkmod/paint_paper/wallpaper_fancy_gold" 0 0 0 ( -1 0 0 -192 ) ( ( 0.0078125 0 15.9375 ) ( 0 0.0078125 0.3125 ) ) "textures/darkmod/paint_paper/wallpaper_fancy_gold" 0 0 0 ( 0 1 0 64 ) ( ( 0.0078125 0 0 ) ( 0 0.0078125 0.3125 ) ) "textures/darkmod/paint_paper/wallpaper_fancy_gold" 0 0 0 } } // primitive 5 { brushDef3 { ( 0 0 1 -192 ) ( ( 0.0078125 0 0 ) ( 0 0.0078125 0.0625 ) ) "textures/darkmod/paint_paper/wallpaper_fancy_gold" 0 0 0 ( 0 1 0 -192 ) ( ( 0.0078125 0 15.9375 ) ( 0 0.0078125 0.0625 ) ) "textures/darkmod/paint_paper/wallpaper_fancy_gold" 0 0 0 ( 0 0 -1 -64 ) ( ( 0.0078125 0 0 ) ( 0 0.0078125 15.9375 ) ) "textures/darkmod/paint_paper/wallpaper_fancy_gold" 0 0 0 ( 0 -1 0 -64 ) ( ( 0.0078125 0 0.0625 ) ( 0 0.0078125 0.3125 ) ) "textures/darkmod/paint_paper/wallpaper_fancy_gold" 0 0 0 ( -1 0 0 -200 ) ( ( 0.0078125 0 0 ) ( 0 0.0078125 0.3125 ) ) "textures/darkmod/paint_paper/wallpaper_fancy_gold" 0 0 0 ( 1 0 0 192 ) ( ( 0.0078125 0 0 ) ( 0 0.0078125 0.3125 ) ) "textures/darkmod/paint_paper/wallpaper_fancy_gold" 0 0 0 } } } // entity 1 { "classname" "info_player_start" "name" "info_player_start_1" "angle" "90" "origin" "-72 -40 -64" } // entity 2 { "classname" "light_fireflames_wide" "name" "light_fireflames_wide_1" "light_center" "0 0 2" "light_radius" "200 200 200" "origin" "-96 136 64" } // entity 3 { "classname" "atdm:ai_citywatch" "name" "victim" "origin" "-28.5602 165.619 -64" "rotation" "0 1 0 -1 0 0 0 0 1" } // entity 4 { "classname" "func_static" "name" "func_static_19" "model" "models/darkmod/mechanical/switches/switch_flip_backplate.ase" "origin" "26 55.375 6.625" "sr_class_1" "R" "sr_effect_1_1" "effect_kill" "sr_effect_1_1_arg1" "victim" "sr_state_1" "1" "sr_type_1" "STIM_TRIGGER" } // entity 5 { "classname" "atdm:switch_flip" "name" "atdm_switch_flip_1" "origin" "26 55.625 6.625" "rotate" "0 0 165" "target0" "func_static_19" } // entity 6 { "classname" "atdm:ai_citywatch" "name" "atdm_ai_citywatch_1" "origin" "-79.5602 57.6192 -29" "rotation" "0 1 0 -1 0 0 0 0 1" "def_head" "atdm:ai_head01_commoner_old" } // entity 7 { "classname" "atdm:weapon_blackjack" "name" "atdm_weapon_blackjack_1" "origin" "-112 -26 -50" } | ||||
related to | 0002953 | resolved | Springheel | Add _Propogated_ material-specific bounce sounds to ragdolls |
related to | 0003393 | resolved | grayman | TDM 2.00 crashes Alberic's Curse |
Ragdolls dropping on a stone floor at map start propagate this sound: bounce_medium_hard_on_hard If I shoulder, then drop, a ragdoll skeleton, or a dead AI, the same sound propagates. I verified that a nearby AI hears the sounds of the dropped bodies, and is alerted. Please test some more and see if you can find a specific instance of an AI not getting alerted. |
|
I just made a little testmap with two citywatch. Pickup the blackjack on your left, KO the first citywatch, and then drop him behind the second one. Can you get him to react? He pays no attention when I try it. | |
I can't reproduce what I swear I saw earlier. During sound propagation, there's a check to see if the listener cares about who made the sound. In the case of an inanimate object, everyone w/in range hears it and reacts. This is the case for a ragdoll that drops at map start or is unshouldered near an AI. In the case of unshouldering an AI and dropping it near another AI on the same team, there are propagation flags that need to be set on the propagating sound so the right listeners can react. Propagation sounds take the form: prop_to_same (default false) prop_to_friend (default false) prop_to_neutral (default false) prop_to_enemy (default true) If you look at sprGS_yell in tdm_propagated_sounds.def, you see that it has "prop_to_friend" "1" This lets friends hear calls for help, etc. bounce_medium_hard_on_hard, the sound a body makes when it hits the floor, has none of these flags set, so the defaults keep friendly AI from hearing the sound. I gave it a "prop_to_friend" "1" and the sound now gets through to a friendly AI, but his alert level doesn't go up, so something else is getting in the way. I'll continue work on this tomorrow. |
|
The listening AI doesn't get alerted because an enemy didn't make the "hit the floor" sound. The sound was made by the falling body, who is a friend. An AI can hear a friend's call for help because it's an AI->AI messaging system that sets up the alert. A falling body sound isn't part of the messaging system, so it relies on who made the sound. Since we don't want AI reacting to friendly sounds in general, it seems that a falling body sound has to become an exception. I'm going to think about that as a solution. |
|
The propagated sound that an AI makes when he hits the ground is SprGS_bounce_medium_hard_on_{soft,hard}. Both sounds need this spawnarg so a nearby AI can hear the sound: "prop_to_friend" "1" Also, at the spots where an AI’s fall to the ground can be attributed to the player (kill, KO by blackjack, KO by gas, unshouldered), that fact needs to be noted. When the sound is checked for “who’s responsible”, the player is now known to be the cause. These two changes allow “ragdoll AI” to propagate their “hits the ground” sound. A “ragdoll AI” is different than a “ragdoll”. The latter are not actors or AI, and when they hit the ground, they’re considered inanimate objects, which propagate the sound to all AI. Also changed a blood splat thrown by weapon damage to not be painted on surfaces farther away than 64. An arrow to the head was generating a blood splat across the room, which didn’t look natural. Rev. 5750: AI.cpp Game_local.cpp Grabber.cpp Rev. 13443: tdm_propagated_sounds.def |
|
Date Modified | Username | Field | Change |
---|---|---|---|
04.05.2013 01:29 | Springheel | New Issue | |
04.05.2013 01:30 | Springheel | Relationship added | related to 0002953 |
04.05.2013 01:30 | Springheel | Relationship added | related to 0003393 |
04.05.2013 01:31 | Springheel | Summary | Ragdoll AI not propogating properly => Ragdoll AI not propogating sounds properly |
04.05.2013 02:36 | grayman | Note Added: 0005363 | |
04.05.2013 02:36 | grayman | Note Edited: 0005363 | |
04.05.2013 02:37 | grayman | Note Edited: 0005363 | |
04.05.2013 02:46 | Springheel | Note Added: 0005364 | |
04.05.2013 02:47 | Springheel | File Added: victim.map | |
04.05.2013 04:22 | grayman | Note Added: 0005365 | |
04.05.2013 04:24 | grayman | Note Edited: 0005365 | |
04.05.2013 14:51 | grayman | Note Added: 0005366 | |
04.05.2013 14:51 | grayman | Assigned To | => grayman |
04.05.2013 14:51 | grayman | Status | new => assigned |
04.05.2013 16:29 | grayman | Note Added: 0005367 | |
04.05.2013 16:29 | grayman | Status | assigned => resolved |
04.05.2013 16:29 | grayman | Resolution | open => fixed |
04.05.2013 16:29 | grayman | Product Version | => TDM 2.00 |
04.05.2013 16:29 | grayman | Fixed in Version | => TDM 2.00 |
04.05.2013 16:29 | grayman | Target Version | => TDM 2.00 |
04.05.2013 16:29 | grayman | Summary | Ragdoll AI not propogating sounds properly => Ragdoll AI not propagating sounds properly |
04.05.2013 16:29 | grayman | Description Updated |