Jump to content
The Dark Mod Forums
Sign in to follow this  
Fidcal

Collision Sound Alerts

Recommended Posts

I changed my mind about vlarge and want to keep it as simple as possible with just 3 types:

 

"sprS_bounce_min_soft" "bounce_default:-5"

"sprS_bounce_min_hard" "bounce_default:-3"

"sprS_bounce_mid_soft" "bounce_default:-3"

"sprS_bounce_mid_hard" "bounce_default"

"sprS_bounce_max_soft" "bounce_default"

"sprS_bounce_max_hard" "bounce_default:+5"

 

min_soft = quill, sheet paper, scroll

min_hard = ring, coin, key, small book

mid_soft = apple, loaf, small bag

mid_hard = goblet, trophy, saucepan, big book

max_soft = sack, package, boars head, corpse? (do we want these on ragdolls?)

max_hard = crate, chair, cauldron, barrel

 

I would put perhaps put mid_soft no more than min_hard and max_soft no more than mid_hard.

Share this post


Link to post
Share on other sites
@angua:

At what velocity does it use the un-modified volume set in the def file? This might help a bit to visualize the situation when we set volume in the def file, if we know what collision velocity this volume represents. Is it falling to the ground at 1 meter/second, 5, 10, etc? Or we could solve for the height it falls from, if that is easier to think about. I guess we can also just listen to the un-modified audible soundshader volume and set the un-modified AI volume according to that, but we can't do that when setting both of them from scratch.

The velocity for the unmodified volume is 200 doom units/s, you already get this when you drop the moveable while standing. The minimum velocity where the sound is played at all is 80 doom units per second. In between, the volume decreases by 20 db.

The velocities are still hard coded in the src, the volume decrease is set in the moveable base def.

 

I had some debug output some time ago that showed the velocity and the volume, will put that back in.

Share this post


Link to post
Share on other sites

I've committed test/propagation3.map for a first round of tests before I proceed further. There are 6 items:

 

scroll

fork

loaf

goblet

package

cauldron

 

Try dropping them at different positions on the stone surface and judge if the AI's reaction is realistic or at least if it would be good gameplay.

 

All results should be the same on all hard surfaces such as wood, tile, metal, stone.

 

The 6 basic types: small soft, small hard, mid soft etc up to big hard each have their own setting but on soft surfaces like carpet they are all the same at the moment. I think I shall have to make another set of at least 2 or 3 for soft surfaces later. I think we can be more forgiving with soft surfaces but at least probably differentiate between very big objects like a chair, cauldron, crate and small ones like goblets, loafs, keys.

Share this post


Link to post
Share on other sites

Added to test map 2 degrees of soft impact alert on carpet - big and small. So the big package and cauldron will cause a mutter 10 or 12 paces behind the AI and an alert if within say 5 or 6. The smaller items: goblet, loaf, fork, scroll, will only cause a moderate alert if within a pace of the AI but otherwise only a mutter for a few paces away. Quite impressive how the AI turns and looks down where the object has fallen. So in a normal map you would be spotted if it was light enough.

Share this post


Link to post
Share on other sites

Trying this now. I don't want to barge in where you're working, but if there's no objection, I'll make a minor adjustment to the map, while I was about to do a different one anyway. What I was going to do was add portals, as they should've been there all along. But while I'm at it, I move your items into the standing guard room(s), so the patroller can keep patrolling (since he's in use for footfall testing as well). Changes nothing but the location of the items. If distance is a concern, it probably needs toning down anyway; I dropped the pot from where it stood, and both guards in that section went alert. :blink:

 

Edit: well, to the doorways that are missing them, at least (just a few). Wow, that means the sound went through a closed door, that far. Yeah that's loud. :)

Share this post


Link to post
Share on other sites

First feedback is that everything is extremely loud. Dropped a scrolled up paper from 20 or more feet away, and he heard it. Drop a fork from 30 or more, and he's going alert enough to turn around. There are times when you'd be trying to delicately handle something within KO distance (as in sneaking something off a table just beside them). This is getting them annoyed at quite further; bad for gameplay. As general feedback, I'd just say tone everything down a lot at this stage.

Share this post


Link to post
Share on other sites

I haven't tried the map yet, but I wouldn't think a scroll should alert a guard at all, unless maybe it fell right behind him. I agree with Sneaksie in principle that we should err on the side of being too quiet.

Share this post


Link to post
Share on other sites

There's something wrong I think. Are you certain you've updated everything not just the map? I'll check again later but the way I set it I had to drop the scroll within a few paces of the guard to get a minor mutter. Unless I changed something while fixing the carpet sounds.

Share this post


Link to post
Share on other sites

OK, not sure what happened but it wasn't as I remember it. I've now adjusted the overall level down slightly and tweaked the carpet impact also. I've moved the player start in where the action is and moved the AI slightly nearer the carpet.

 

Hope these are more gameplay-useful.

 

In this test there are only 2 types on soft surfaces so a goblet, a trophy, a scroll, a key, all are the same - almost nothing unless right next to the AI.

Share this post


Link to post
Share on other sites

If you keep seeing such large differences between your respective results, you should probably both double-check that all your AI-related cvars (especially acuity and anything related to that) are at their default values.


My games | Public Service Announcement: TDM is not set in the Thief universe. The city in which it takes place is not the City from Thief. The player character is not called Garrett. Any person who contradicts these facts will be subjected to disapproving stares.

Share this post


Link to post
Share on other sites

There is a new cvar now, "tdm_show_moveable_collision", which displays the moveable's velocity and the volumes of the audible and propagated sounds when the moveable collides. This will be available as soon as someone compiles a new pk4 (I'm at work, I don't have the full mod here).

 

Yuo can also switch on "tdm_showsprop" and "tdm_showsprop_radius" to see the volume perceived by the AI.

Share this post


Link to post
Share on other sites

This becomes fun. :)

 

* Seems much better now. I don't know that everything is in a 'final' state, but it's much better to be able to drop a scroll 3 feet behind him and he doesn't react. Closer than 3 feet, and he does hear it to minimal alert.

 

* From across a decent sized room, a shoulder level drop of the bowl will put them to about 4.0 alert. This is probably good? Maybe a little high. Still feels pretty nice. Even setting things down (like the bowl, right behind him) is pretty comfortable, as long as you're not being hasty.

 

* The pot is pretty loud. It should be of course, but maybe a little high. I walk up next to him and try to touch the wall gently -- he goes to searching alert. No forgiveness there at all, even when trying hard to be careful. Which though, is weird -- I can set the pot down silently if I'm careful, but can't touch the wall gently. I would have though they'd be the same mechanic, no?

 

* Scrape sounds seem unrealistically loud, but I don't know if that's in progress or not yet touched? IOW, very lightly scraping the scroll along the wall is loud compared to actually tapping the wall with it. So there doesn't seem to be a way to scrape/slide quietly (yet). Dunno if there will be, if it's based on velocity changes.

 

* BTW the new debug stuff is cool! And shows just how frequently there is sound generated simply by picking something up. Which brings me to:

 

* That issue of picking things up and they reposition (and thus make noise) is definitely going to cause some probs in this area. It seems really good impact sound levels can be established afterall as evidenced by the work done here. And, with the physics engine, this takes things yet again beyond what Thief could do. So when unintentional impacts from merely picking something up and having it shift around happen, it's not fair to the player. Hm, what can we do here?

 

How about a trick like:

1. player frobs item to pick it up. I assume at this point, there is code to bring it to center if it is not already. Since this code must exist (or how would it happen?),

2. check, is item in center? No? Then DISABLE all collision sounds until it is.

 

Could that work? Doesn't change the re-positioning mechanic in place (which works well, and would probably disrupt a lot of systems if it was changed), but just temporarily, until centered, allows the item to make no noise.

 

All in all, nice work, this is getting good!

 

--------------

Off-topic: Don't want to derail here so hopefully this is a quick yes/no/maybe/WIP but, what's the state of tactile alerts when being touched by something (other than the player). I can walk up and poke him with the scroll and he doesn't mind, unless he hears it.

Share this post


Link to post
Share on other sites
* That issue of picking things up and they reposition (and thus make noise) is definitely going to cause some probs in this area. It seems really good impact sound levels can be established afterall as evidenced by the work done here. And, with the physics engine, this takes things yet again beyond what Thief could do. So when unintentional impacts from merely picking something up and having it shift around happen, it's not fair to the player. Hm, what can we do here?

 

I agree it's an issue to consider, though I've found that I've started to get pretty good at picking things up so this doesn't happen. It has something to do with the angle you're looking at the object when you frob it.

 

Scrape sounds seem unrealistically loud, but I don't know if that's in progress or not yet touched? IOW, very lightly scraping the scroll along the wall is loud compared to actually tapping the wall with it. So there doesn't seem to be a way to scrape/slide quietly (yet). Dunno if there will be, if it's based on velocity changes.

 

I would definitely support making these less loud to AI, since it is often difficult for the player to judge when the object will scrape something due to perspective.

Share this post


Link to post
Share on other sites

The drop impact alerts can be fine-tuned later if necessary as there will only be less than a dozen groups or so. What would be difficult to change later is the groups themselves. So I need some feedback on that before I continue and set them on all the moveable entities - often on individuals. I do not want to go through again so anyone who is not happy with the suggested groups should say now.

 

So just as a reminder, this is what I propose for impact on ALL HARD surfaces (wood, tile metal) SIX groups only...

 

min_soft = quill, sheet paper, scroll

min_hard = ring, coin, key, small book

 

mid_soft = apple, loaf, small bag

mid_hard = goblet, trophy, saucepan, big book

 

max_soft = sack, package, boars head, corpse? (do we want these on ragdolls?)

max_hard = crate, chair, cauldron, barrel

 

 

And this is what I propose for impact on ALL SOFT surfaces (snow, dirt, carpet) TWO groups only...

 

At the moment (in this test only) all in the min & mid groups above would go in min and all in max would go in max. That would mean an AI would scarcely notice both a scroll and a big book dropped right next to him.

 

Instead we could have 3 groups min, mid, max as for hard except no differentation between whether the objects themselves are hard or soft. But it would be more work. And do we want a big book or a trophy dropped on snow right behind an AI to cause him to alert and turn round? If the answer is "no" then we can set the book the same as a feather and just have 2 groups: min & max.

Share this post


Link to post
Share on other sites

Those sound mostly reasonable, though mid_soft gives me some pause. I wouldn't expect an apple or loaf of bread to be moderately loud. In fact, I'd expect them almost to be ignored (in a way). As for corpses, good question. I'd certainly hope they are not in the loudest category. It will be hard to set them down gently (not much control AND limited space availability hampers it further), and that's a semi-common thing to do in the game.

 

For the last question, I wouldn't really expect snow to be much louder than carpet, in game terms at least.

Share this post


Link to post
Share on other sites

All soft surfaces will be the same whether snow, carpet, dirt, mud, grass, whatever. All other surfaces are regarded as hard and will be the same group. So, only 2 surface groups and 6 object groups hopefully. Note that the 6 object groups I listed are not necessarily in order of alertiveness. Once set up, mid_soft can be set lower than min_hard. I think max_soft is close to mid_hard also so could be lower if required. We would just need to change a single def line to change them all in that group once I do the work.

Share this post


Link to post
Share on other sites

Regarding grabber stuff, it might work to turn off the collision sound until the object is initially centered. That's certainly easier than rewriting the initial centering phase. But that might not solve all the issues, for example secondary collisions from hitting moveable stuff that then knocks into other stuff. In SL when you grabbed that one candle, the collection plate was knocked all the way to the floor. So we might still need some different behavior in the initial centering operation. The player shouldn't be afraid of grabbing things.

 

I'm not sure how to get around the problem though of grabbing a plate with a turnip on it, say. Any automatic collision system would see a collision with the turnip and not let the plate move to center initially, but if you want to pick up the plate with the turnip still on it, that's bad.

 

Scraping things horizontally shouldn't be louder than scraping things vertically. There is a bug with both in that repeated collision sounds are played as long as you're sliding along something, which needs fixing. But I don't see why it would be worse horizontal vs. vertical. Maybe the perspective just makes it easier to set things down vertically?

Share this post


Link to post
Share on other sites
I do not want to go through again so anyone who is not happy with the suggested groups should say now.

 

Those groups seem reasonable to me.

 

If the answer is "no" then we can set the book the same as a feather and just have 2 groups: min & max.

 

That also sounds fine to me.

Share this post


Link to post
Share on other sites
But I don't see why it would be worse horizontal vs. vertical. Maybe the perspective just makes it easier to set things down vertically?

What I mean is setting something down, versus coming into contact (touching) a wall. The former is easy to do silently. The latter, nearly impossible. Even a slow, "light" touch results in a clang.

Share this post


Link to post
Share on other sites

Yeah, the only difference I can see is that one surface is horizontal (setting something down) and one surface is vertical. There should be no difference in the physics involved, unless maybe gravity is helping to keep the object sitting on the floor so it doesn't slide around as much.

 

Regardless, there is a Grabber/D3 physics bug that plays repeated collision sounds when you slide something around on a surface, vertical or horizontal. It really shouldn't do that.

Share this post


Link to post
Share on other sites

I tested this and the AI reactions all seem reasonable. The carpet seemed almost too deadening, for example dropping a huge crate on the carpet right next to the AI didn't raise any alert. Not quite believable, but maybe this is how we want it for gameplay purposes?

 

I didn't notice all that much difference in the audible sound when dropping things from 3 feet off the ground compared to maybe 6 ft off the ground. I think the rule of thumb is something like 8-10 dB higher sounds twice as loud to the ear (this is taking perception stuff into account so it's not just 3dB). With the current 20 dB range we should go from 1x to 4x perceived volume, which seems like enough range. Could it be reaching that clamped-volume velocity too quickly? I can try a quick calculation...

Share this post


Link to post
Share on other sites

Mmm... by 'crate' you mean soft package? It can be increased if that is what people want but remember it will increase in snow, leaves, mud, as well - they will be the same as carpet.

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this  

×
×
  • Create New...