Jump to content
The Dark Mod Forums

Newbie DarkRadiant Questions


demagogue
 Share

Recommended Posts

On 10/28/2021 at 7:32 AM, Garreth said:

Brushes and patches, wich intersect eachother..

What I'd do is replace the patches with brushes.  I've found that cylinders in particular tend to show seams after any rotation and quite often with no rotation at all, and that trying to fix this by fiddling around eliminating intersections, manipulating vertices, etc. etc., just wastes time causing endless frustration.   

Edited by geegee
Link to comment
Share on other sites

On 10/29/2021 at 6:47 AM, AluminumHaste said:

Small, fiddly patches and brushes can get broken easily.
Ideally, you would snap all vertexes to the grid, even at Grid 1. Once you have your door the way you want it, export it as ASE model. Then replace the door with the model.

This portcullis is made with brushes only, no patches.  You can see that the instance on the left where I made the brushes into an atdm:mover_door_sliding has broken geometry with seams in the spikes.  The instance on the right follows AluminumHaste's advice to export as an ASE model, then import the model and change the properties from func_static to atdm:mover_door_sliding, then adding in all the required spawnargs (in my case: transparent /1 (since there's a visportal there), frobable /1, locked /1, translate /0 0 -176, used by whatever_key, snd_open /silence, snd_closed /silence, snd_move /door_metal01_move, ...).  The geometry is clean on the model.

 

 

L-static_R-model.jpg

  • Like 2
Link to comment
Share on other sites

A question to other mappers, how do you usually deal with uneven ambient music volumes? I have a section of street where the music changes tracks through a tunnel, but the native volume of one of them is so low in comparison that I can barely hear it (city_sleeps01 vs city_streets02_loop). In earlier missions I have played around with the volume spawnarg on the info_location entities, but when reading up on it in the wiki I ran across this:

"In general it is best to avoid setting the volume on an individual speaker unless strictly necessary, because it prevents future updates to the volume specified in the sound shader from taking effect in your map. It is preferable to set the volume correctly on the sound shader declaration itself (or request that the Dark Mod team do so, if it is a core asset supplied with the mod)."

Is it risky manipulating the volume spawnarg or are we fairly certain we won't be changing the volumes of our ambient tracks in future?

My Fan Missions:

   Series:                                                                           Standalone:

Chronicles of Skulduggery 0: To Catch a Thief                     The Night of Reluctant Benefaction

Chronicles of Skulduggery 1: Pearls and Swine                    Langhorne Lodge

Chronicles of Skulduggery 2: A Precarious Position              

Chronicles of Skulduggery 3: Sacricide

 

 

 

Link to comment
Share on other sites

@Bienie I think it's very unlikely that the team would change properties of core assets that are already in use in missions. To me that Wiki entry reads more like it discusses good practices, so when adding a new sound you should make sure the sound file is already at the correct volume so you don't need to rely on manually changing it via spawnargs or the soundshader. I wouldn't see any problems with adjusting the volume via spawnargs to your liking.

  • Like 1
Link to comment
Share on other sites

There is no "risk" per se in setting the spawnarg in your map — if the result sounds good, it is good. The only way this could present a problem in future is if the underlying sound file had its volume changed in the mod assets, and the default volume spawnarg was updated to compensate. In this situation your map would get the changed volume file but not the updated spawnarg. However this situation is exceptionally unlikely, not least because we don't have the uncompressed originals for most music files, and any volume adjustments in future would be made purely on the default spawnargs, not the file itself.

What that paragraph means (I think I probably wrote it, based on the wording) is that ideally you shouldn't have to set spawnargs on ambient music, because the ambient volumes should be consistent throughout the mod. If there is a significant difference in volume between two different ambients, this ought to be considered a bug in the core assets. But if the core asset can't or won't be changed, and you need to override it in your mission to make it sound correct, then you should do so.

Link to comment
Share on other sites

Me and Tels were working on the volume slider for ambients & I remember around that time we were thinking about volume, and that's around when we updated the wiki for it and that language got in. I also can't remember who wrote it exactly, but I remember being one of the editors paying attention to it. It was a long time ago. I do remember the way volume generally works is the ambient should natively be at the maximum level, 100%, because volume modulation works best when it's cranking a volume down. It's possible to crank volume up, but then things get really fiddly and you get clipping. But in the early days IIRC, some sounds were getting in that were too quiet because whomever made them weren't appreciating that concept, so we were foreseeing updates with some sounds being made louder. And we'd had a few examples of things like that happening with the system that hammered that point in.

Oh, also, if it's talking about the ambient speaker (the Info_Location object is also the object that's playing the sound, if you didn't know, not exactly a speaker, well it inherits a speaker in its .def, but anyway with spawnargs as if it were a speaker), if you set volume on the object itself, which I technically allowed the author to do with a spawnarg, it's going to affect every single ambient it plays. Well even aside from that, as a general principle, it's best to set volume through the soundshader and not via the speaker, in the sense that it's more robust to future updates (e.g., it's easier to drop in a new sound & control its volume without having to track down dependencies out there you have to change along with it) which is a kind of design principle in game development generally, or any software development.

Or something like that. It was literally like a decade ago we were playing with that by now, and I like talking about it because it reminds me that I actually did something useful for this mod in my day. XD

Edit: Actually, you know what may have happened? This happened a lot, especially with me & Tels, but could have been Orb too. I'd write a sentence about volume in the wiki, meaning the kind of stuff I was talking about above. (I mean that was originally my wiki entry, so I was kind of possessive with it & thought I should be the one updating it when we had changes like that.) Then Tels or Orb would come and edit it to be more precise or to "explain" why (they thought) it was saying not to mess with the volume spawnarg (with a completely different explanation), but thinking about factors that were basically completely different from what I was thinking about when I wrote the first version, and they thought I was really trying to say this other thing, and so they'd actually change it to say that. Then to me it seemed a little out of place, since it's not really talking about what I thought people should be concerned about anymore and bringing up these other issues out of left field it seemed to me. But then I wouldn't want to edit it back because they also had their own valid point to make & it wasn't really that big of a deal to make waves about it, and I needed their help & participation, and I was self-conscious since my point & skill weren't as technical as theirs, etc. This reads like it may have been that kind of situation. But again, a long time ago, lol.

  • Haha 1

What do you see when you turn out the light? I can't tell you but I know that it's mine.

Link to comment
Share on other sites

Like @Bienie, I found that paragraph (in Setting Up Speakers/Sound Shaders And Spawnargs/volume/ ) a bit of a head-scratcher when I first encountered it. @OrbWeaver, @demagogue, @Dragofer, how would this be as replacement text?

"Ideally, you would not have to set a "s_volume" spawnarg on an individual speaker or info_location. In the case of your FM-custom sound files, it is recommended to adjust "volume" in your custom shader instead.

The case of core-asset ambient music files is more complicated. These files (which were generally recorded to be rather loud if played back at "volume 0") have already been paired with individualized default shader volume levels (at lower volumes) to provide a consistent experience across ambients.

If you find a particular ambient that seems far too loud or too soft compared to other ambients, consider reporting it as bug, so that the default shader volume might be adjusted in the future.

More immediately, in your map, you can overide the default volume in two ways. The simple way is to create and adjust the "s_volume" of the individual speaker or info_location. This will affect any sounds played through that object.

The alternative is to -
- locate the pertinent core sound-shader .def file
- make your own copy of it and place it in your map's folder to override the core file
- change the volume to your liking in the copy's sound shader declaration."

Link to comment
Share on other sites

The aim should really be to minimise how much work you need to do, so it's more efficient to modify the volume in the sound shader (found in .sndshd files) rather than setting spawnargs on every entity that plays that sound. Even better would be, in my opinion, if the sound file's native volume is already at the level you'd typically use it at in a mission so that you don't need to change the volume in the soundshader.

The idea of increasing sound quality by exporting sound files at louder-than-intended volume and using soundshaders to tone it back down sounds interesting, but in practice it just has never felt necessary for me, i.e. I almost never needed my sounds to be louder than is typical for the sound.

info_location entities use "volume" rather than "s_volume" spawnargs by the way. "s_volume" works on all entities that directly emit sounds, not just speakers.

Link to comment
Share on other sites

Yeah "volume" was just the spawnarg name I picked since it's being handled by my own code, not Doom3's, and at the time I honestly didn't know what the "s_" stood for (I'm still not entirely sure; it's not "speaker" is it?) and I didn't want to use it incorrectly.

Regarding "- change the volume to your liking in the copy's sound shader declaration.", in his post he says he want to make it louder. In that case, it's probably better to find the actual sound file itself, make a copy of that (either with a new name & soundshader, or maybe even with the same name and, packed in the pk4, it just replaces the original, same shader and all) and then boost the volume of that in something like Audacity, since if you do it through the soundshader it's Doom3 boosting the volume on the fly, which might clip or not sound as good as doing it through a proper sound editor.

What do you see when you turn out the light? I can't tell you but I know that it's mine.

Link to comment
Share on other sites

Thanks all for your inputs. I still don't know if other mappers find this unevenness in the ambient music files annoying, and how they tend to deal with it. I have noticed that some maps have a lot of variation in their ambient music levels, though mostly older ones. To me honestly I would rather just change the volume spawnarg on each info_location as I feel the less I have to fiddle outside of DR the better. Having a volume slider inside the sound chooser menu would be HUGE though, especially if you can hear the difference in the playback as you are moving the slider. I guess it would still be using the not ideal volume spawnarg and as opposed to changing the sound shader file, but still a massive thumbs up from me if that could be implemented.

My Fan Missions:

   Series:                                                                           Standalone:

Chronicles of Skulduggery 0: To Catch a Thief                     The Night of Reluctant Benefaction

Chronicles of Skulduggery 1: Pearls and Swine                    Langhorne Lodge

Chronicles of Skulduggery 2: A Precarious Position              

Chronicles of Skulduggery 3: Sacricide

 

 

 

Link to comment
Share on other sites

If you are thinking of making ambient sounds louder, I would double check to make sure you have your own ambient music slider at 100%, so you get a feel for the "real volume" rather than the possibly-lowered ambient volume in your game settings. It might sound obvious, but I've played commercial games where the background music was absolutely deafening (to the point you couldn't hear anything else going on), which I'm fairly sure was caused by some content creator adjusting the level's sound volume with their own music slider turned down (or maybe they were just deaf and/or incompetent... who knows).

1 hour ago, Bienie said:

Having a volume slider inside the sound chooser menu would be HUGE though, especially if you can hear the difference in the playback as you are moving the slider.

Although it would be fairly simple to implement, I think it would actually be useless. The volume of an ambient sound played via DarkRadiant through your system sound mixer doesn't tell you anything about how loud that ambient will be in comparison to other sounds going on in the game; not just other ambients (which it needs to volume match) but also footsteps, guard barks etc.

Having a volume slider in the entity inspector might be useful rather than setting numeric values directly, particularly if combined with the "hot reload" feature which would allow you to have another game window open playing the sound in realtime as you adjust the entity properties. But playing the sound in isolation within DR isn't going to help with volume matching.

Link to comment
Share on other sites

1 hour ago, OrbWeaver said:

If you are thinking of making ambient sounds louder, I would double check to make sure you have your own ambient music slider at 100%, so you get a feel for the "real volume" rather than the possibly-lowered ambient volume in your game settings. It might sound obvious, but I've played commercial games where the background music was absolutely deafening (to the point you couldn't hear anything else going on), which I'm fairly sure was caused by some content creator adjusting the level's sound volume with their own music slider turned down (or maybe they were just deaf and/or incompetent... who knows).

Although it would be fairly simple to implement, I think it would actually be useless. The volume of an ambient sound played via DarkRadiant through your system sound mixer doesn't tell you anything about how loud that ambient will be in comparison to other sounds going on in the game; not just other ambients (which it needs to volume match) but also footsteps, guard barks etc.

Having a volume slider in the entity inspector might be useful rather than setting numeric values directly, particularly if combined with the "hot reload" feature which would allow you to have another game window open playing the sound in realtime as you adjust the entity properties. But playing the sound in isolation within DR isn't going to help with volume matching.

Speaking of the ambient volume slider, what is the default? Surely it's not 100% as the unaltered ambient tracks are brain-rattlingy overpowering at that setting. If it is that might be something to consider changing, it could be scaring people away from the game who don't realize there is a separate control for that.

As for a volume slider in DR, you're right you do need to hear the complete suite of sounds that TDM sends your way during normal play to fully judge a good level for ambient tracks. It could still be a useful tool to balance ambients against eachother though, if for instance you've already balanced one zone in game then you can do the rest in DR.

My Fan Missions:

   Series:                                                                           Standalone:

Chronicles of Skulduggery 0: To Catch a Thief                     The Night of Reluctant Benefaction

Chronicles of Skulduggery 1: Pearls and Swine                    Langhorne Lodge

Chronicles of Skulduggery 2: A Precarious Position              

Chronicles of Skulduggery 3: Sacricide

 

 

 

Link to comment
Share on other sites

11 hours ago, Bienie said:

Speaking of the ambient volume slider, what is the default? Surely it's not 100% as the unaltered ambient tracks are brain-rattlingy overpowering at that setting.

I guess that needs testing by examining the setting on a clean install (or after removing local settings). I assumed it was 100% because in my experience that's how most games behave — all sounds play at full volume unless you specifically choose to make certain channels quieter. But it's quite possible we have a default of 75% or something.

Whatever the default is, that's what you should balance the ambients against.

11 hours ago, Bienie said:

If it is that might be something to consider changing, it could be scaring people away from the game who don't realize there is a separate control for that.

That's kind of my point. If ambients are too loud, they should be reduced with default spawnargs so they sound reasonable without having to adjust the ambient slider. This takes careful, manual work — volume balancing is not as easy as it sounds, because it's very common to hear a "cool" sound you like and want it to play loudly, even though it might be drowning out other things or completely unbalanced with the ambient in the next room.

Link to comment
Share on other sites

Looks to me like all audio sliders (SFX, Ambient, Player Voice, Narrator) are 100% by default. [Also Reverb in 2.10]. So probably that's what they should be at, when setting volumes. Don't know if on/off state of OpenAL's EFX or HRTF would be an issue.

I guess the Ambient slider would affect the info_location sounds, and the specialized class of speakers call "speaker_ambient_music" in Ambient Sounds - Zone (using triggers).

Would ordinary speakers be affected just by the SFX slider? Or does it somehow depend on what sound they are playing?

BTW, @demagogue, there's TinyPic link rot for illustrations you provided in "Ambient Sounds - Zone (using triggers)" and "Adding ambient Sounds to your Map". Any chance you could track down the originals & restore them?

Edited by Geep
  • Thanks 1
Link to comment
Share on other sites

While Bienie's original question was about info_locations, the problematic wiki quote was talking about spawnargs for ordinary speakers. So let me try again on replacement text:

"When evaluating sound levels within the game, it is best-practice to set all the Audio sliders to their default value (which is the max value, 100%).

''With your own FM-custom SFX or ambient sounds and their shaders''

Strive to make the native volume just right, so you aren't forced to set a "s_volume" spawnarg on an individual speaker (or "volume" spawnarg on an individual info_location). Instead either -
- adjust the .ogg/.wav volume in your sound editor (e.g., Audacity), particularly if the sound is too quiet;
- adjust "volume" lower in your custom sound shader, if the sound is still too loud.

''With core-asset SFX or ambient sounds and their shaders''

These assets have already been tweaked to provide a consistent audio experience. But if you find a particular sound that seems far too loud or too soft compared to its peers, consider reporting it as bug. "Too loud" can be quickly handled in your map by overriding the default volume: set the "s_volume" of the individual speaker (or "volume" of an info_location) lower."

 

  • Like 1
Link to comment
Share on other sites

If 100% is truly the default I'm afraid a lot of missions have raging out of control ambients, mine included. That's not great, though I've never had anyone complain that the ambient is too loud on any of my missions as far as I can remember.

In this case I will instead tone down the ambients that are too loud instead of boosting the low ones, and see what my future beta testers think of the levels I guess.

My Fan Missions:

   Series:                                                                           Standalone:

Chronicles of Skulduggery 0: To Catch a Thief                     The Night of Reluctant Benefaction

Chronicles of Skulduggery 1: Pearls and Swine                    Langhorne Lodge

Chronicles of Skulduggery 2: A Precarious Position              

Chronicles of Skulduggery 3: Sacricide

 

 

 

Link to comment
Share on other sites

Probably testers finding the ambients generally too loud, relative to SFX, have already moved their Ambient slider lower. Or just setting their headphone volume control low so that everything is a bit hushed.

There were only one or two stock music clips in Away 0 that I had to quiet down. One of them had a large dynamic range, so the quiet parts were too quiet and the loud parts too loud, at least for my taste. Quiet parts are now very quiet.

Link to comment
Share on other sites

Just finishing up Away 0. One problem that has recurred more than once...

Suppose I have 2 rooms that are separated by a worldspawn wall. I have a wall-mounted light (e.g., a torch) on one side of the wall. I'd like to restrict it's light to just the room it's in. If I set the light to noshadows 1, then light leaks into the other room. If I set the light to noshadows 0, then light does not leak, but performance suffers, presumably because the engine is calculating shadows for everything in the room within range. How do people handle this?

Let me imagine how I'd like to deal with this. Let's say the light source is at map location {0,0,0}. Currently, you can routinely set the range for each dimension (x,y,z) separably, but as far as I know, each is symmetrical. That is, if the maximum x range extends to 100, then the minimum extends to -100. I'd like to instead have asymmetry. For example, a maximum x range of 100 with a minimum x range of -10. In response, the engine, given the light pattern distribution, could either scale the positive and negative extends differently, or merely clip the shorter distance (i.e., the light in the negative direction has the same distribution as in the positive direction, but abruptly stops at -10, where the wall presumably is.) I assume this is not possible currently, but might be a new feature request... am I wrong?

 

Link to comment
Share on other sites

On 11/10/2021 at 5:03 PM, Geep said:

Just finishing up Away 0. One problem that has recurred more than once...

Suppose I have 2 rooms that are separated by a worldspawn wall. I have a wall-mounted light (e.g., a torch) on one side of the wall. I'd like to restrict it's light to just the room it's in. If I set the light to noshadows 1, then light leaks into the other room. If I set the light to noshadows 0, then light does not leak, but performance suffers, presumably because the engine is calculating shadows for everything in the room within range. How do people handle this?

Let me imagine how I'd like to deal with this. Let's say the light source is at map location {0,0,0}. Currently, you can routinely set the range for each dimension (x,y,z) separably, but as far as I know, each is symmetrical. That is, if the maximum x range extends to 100, then the minimum extends to -100. I'd like to instead have asymmetry. For example, a maximum x range of 100 with a minimum x range of -10. In response, the engine, given the light pattern distribution, could either scale the positive and negative extends differently, or merely clip the shorter distance (i.e., the light in the negative direction has the same distribution as in the positive direction, but abruptly stops at -10, where the wall presumably is.) I assume this is not possible currently, but might be a new feature request... am I wrong?

 

Try the following on the lights in question:

areaLock - origin

or

areaLock - center

Edited by JackFarmer
  • Like 1
Link to comment
Share on other sites

On 11/10/2021 at 11:03 AM, Geep said:

Just finishing up Away 0. One problem that has recurred more than once...

Suppose I have 2 rooms that are separated by a worldspawn wall. I have a wall-mounted light (e.g., a torch) on one side of the wall. I'd like to restrict it's light to just the room it's in. If I set the light to noshadows 1, then light leaks into the other room. If I set the light to noshadows 0, then light does not leak, but performance suffers, presumably because the engine is calculating shadows for everything in the room within range. How do people handle this?

Let me imagine how I'd like to deal with this. Let's say the light source is at map location {0,0,0}. Currently, you can routinely set the range for each dimension (x,y,z) separably, but as far as I know, each is symmetrical. That is, if the maximum x range extends to 100, then the minimum extends to -100. I'd like to instead have asymmetry. For example, a maximum x range of 100 with a minimum x range of -10. In response, the engine, given the light pattern distribution, could either scale the positive and negative extends differently, or merely clip the shorter distance (i.e., the light in the negative direction has the same distribution as in the positive direction, but abruptly stops at -10, where the wall presumably is.) I assume this is not possible currently, but might be a new feature request... am I wrong?

 

If you select your light and go into vertex mode (hit "v"), you can set the origin of your light to be off-center.  You can then place the light such that the origin is near your wall and the entirety of the light volume is where you want it.  The downside is that the center of the falloff texture does not get moved to your new origin, so you might need to make a new one for things to look right.  If you're not quite sure what I mean, build a little test room where you can compare a regular light to one with a moved origin.

I ended up making a texture like this:

image.png.8312e1f4d7b139f7fcd6a3f7667b8d03.png

And since I reused this light a bunch of times I made an entitydef for it with this falloff texture and the origin already at the correct offset.

  • Like 1
Link to comment
Share on other sites

While I'm here, does anyone know if there is a way to set the phase of a func_pendulum?  I have some things I want to be out-of-sync with each other.  If there's no direct solution, I could probably set the speed to be slightly different on each one and they should get sufficiently jumbled up by the time the player gets there.

Link to comment
Share on other sites

26 minutes ago, jonri said:

While I'm here, does anyone know if there is a way to set the phase of a func_pendulum?  I have some things I want to be out-of-sync with each other.  If there's no direct solution, I could probably set the speed to be slightly different on each one and they should get sufficiently jumbled up by the time the player gets there.

This looks promising:

    "editor_var phase"            "the 0.0 to 1.0 offset in the cycle to start at."
 

Link to comment
Share on other sites

17 minutes ago, joebarnin said:

This looks promising:

    "editor_var phase"            "the 0.0 to 1.0 offset in the cycle to start at."
 

Thanks, not sure how I missed it.  It's right there when you check "Show inherited properties" in DR... 🤦‍♂️

Link to comment
Share on other sites

So I have an objective to not alert the AI in a specific area. I made these AI to team 1 (builders) just so I could differentiate in the objectives. A minor issue is that if they leave that area the objective will still fail. If there is an easy fix to this I'm all ears, but my real question is this:

If I knock out an AI and leave him in the light the AI on team 1 will react and become alerted, but it won't fail the objective, since I guess it doesn't count as a "player responsible" action. I am afraid that if I do not have the player responsible flag enabled that if the AI get "called to the scene" by another AI outside of the restricted area it will fail the mission which is not supposed to happen.

Additionally I don't want to put an objective to fail if AI see the body because from what I can tell there's no way to make it read "do not let AI of team X see body" instead of "do not let AI see body of team X".

Is there a way to make my scenario work with the objectives editor? If not is there an easy way to script this behavior?

My Fan Missions:

   Series:                                                                           Standalone:

Chronicles of Skulduggery 0: To Catch a Thief                     The Night of Reluctant Benefaction

Chronicles of Skulduggery 1: Pearls and Swine                    Langhorne Lodge

Chronicles of Skulduggery 2: A Precarious Position              

Chronicles of Skulduggery 3: Sacricide

 

 

 

Link to comment
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.

 Share


×
×
  • Create New...