VAMAtmosphere is a set of tools to add audio atmosphere (ambiences) to your scenes. Soundscapes, neighbors simulator, thunder simulator, reverb zone and occlusion system.
How to use
Ambiences (soundscapes)
- Open or create a scene.
- Add a Custom Unity Asset
- Load the assetbundle from the package on the CUA
- Select vamaambience.prefab
- Add the script vama_ambience.cs from the package on the CUA
- Configure the settings
Neighbors simulator
The neighbor simulator tries to replicate a living appartment around you.
The concept is pretty simple : You have three neighbors. Everyday, the neighborhood will perform three tasks. The tasks will be picked at random between the three neighbors.
Neighbor 1, a sweet couple, fighting a lot. They love movies, but also have kids that are out of control... maybe that's why they always fight.
Neighbor 2, a bachelor, most certainly a drug dealer for all you know. He's got dogs and always does some noise with his tools. He brings random girls back home at night and loves TV Shows.
Neighbor 3, a handful of student, coming from all over the world. They party, they chat, and the appartment seems to be the way for everyone to have sex with all sorts of strangers when they're drunk.
After the three tasks are performed, one of the neighbors will have sex. And if they're loud enough, they have a chance to arouse surrounding neighbors. Some nights will definitely be agitated.
- Open or create a scene.
- Add a Custom Unity Asset
- Load the assetbundle from the package on the CUA
- Select vamaneighbors.prefab
- Add the script vama_neighbors.cs from the package on the CUA
- Configure the settings
Thunder simulator
- Open or create a scene.
- Add a Custom Unity Asset
- Load the assetbundle from the package on the CUA
- Select vamathunder.prefab
- Add the script vama_thunder.cs from the package on the CUA
- Configure the settings
A few notes :
You have four triggers available to control the thunder :
- Enable thunder (will enable the thunder flashing randomly)
- Disable thunder (will disable the thunder)
- Trigger thunder (will trigger a thunderclap with a single or double flash depending on the double flash probability you've configured)
- Trigger thunder - double flash forced ( will trigger a thunderclap with a double flash ).
The checkbox thunder enabled is the starting state of the thunder. It means if you use the triggers Enable thunder or Disable thunder, this checkbox will not change state. It is a way of keeping your setting at scene start and still keep the freedom of enabling or disabling it through a scene.
The light flash setting allows you to select a light in your scene which will be used during the thunderclaps. It allows you to setup a light (preferably pixel) to cast your shadows, its intensity and color and affect it to the thunder. You can also create a main light, and parent secondary lights to the main one since the script control the on/off property of the atom and not the light. You can find a more advanced setup in the interactive thunder demo.
It obviously works super well with the rain in Fluids 101.
Reverb Zone
- Open or create a scene.
- Add a Custom Unity Asset
- Load the assetbundle from the package on the CUA
- Select vamareverbzone.prefab
- Add the script vama_reverbzone.cs from the package on the CUA
- Configure the settings
If you have any doubt, you can checkout an example in the VAMA_Demo_Neighbors scene.
Occlusion
Either as a standalone plugin used on AudioSources or inside of individual plugins from VAMAtmosphere, you can enable an occlusion system allowing you to fake how a sound should be heard if it's occluded by something ( a door, a wall, a room...).
Here is a demo of what an occlusion system would bring to your scene:
So that you understand a bit better how it works before using the plugins, here is a tiny explanation.
The occlusion is computed by sending a handful of raycast from the source to the listener (you).
Any object with a collider between the source and you will reduce it's low pass frequency value. Meaning, the more rays that have hit something, the less detailed the audio will sound... until you reach a point where you can only hear low frequencies only (bass).
With the standalone plugin which you can use on AudioSources, you can even select a complex mode which will do a back and forth.
Raycasts are sent once, then sent back to compute the thickness of the thing that has been hit between you and the source.
How to use the plugin:
Add the script vama_occlusion.cs from the package on an AudioSource Atom or an AptSpeaker Atom. You can also add it on a person using VAMMoan.
I haven't tested with a basic sound playing on a person atom. If this is something you're interested in instead of using VAMMoan, please mention it in the discussion.
Most of the sliders are described on the help section. I'm gonna cover here some of the settings that might be a bit more complicated to understand.
In Complex mode
Occlusion Thickness contribution: when using complex mode, the occlusion is shared between the number of hits and the final thickness of what has been hit.
Changing the contribution makes the thickness more or less important ( 20% less important > 70% more important ). Which does not mean it will occlude more or less the sound. It simply means that the thickness will play a bigger role... the final occlusion will depend on the actual thickness of the material.
For instance, let's imagine you're in front of a glass that is 1cm thick. If you put the contribution to 20%, the sound will appear more muffled. If you put the contribution to 70%, the sound will appear less muffled. Because now the thickness of the glass is more important than the fact that your sound is behind this object.
Occlusion Thickness: the thickness needed to reach maximum occlusion (they are Unity units, but you can imagine that as meters). At a value of 3, the sound will be completely occluded if the object in front of you is 3 meters thick.
In any mode
Sound wideness and listener wideness: they represent how big the sound is (for the sound) or how wide the player's head is. These values can be tweaked to improve how a sound can be occluded.
For instance, using higher values for sound wideness makes it harder to be completely occluded by thin objects in front of you. Might be ideal for music. On the opposite hand, you might want to keep it by default or reduce it for a character's voice or a tiny object like a phone ringing.
Use the debug to show the raycasts lines. Every red line are lines that have hit something and make the sound more occluded. It is really helpful to configure your sound.
Other plugins and additional notes
The ambience plugin provides occlusion too. There are less options as ambiences do not need an extremely complex computation compared to a custom sound.
Note that occlusion might be fancy, but use it wisely. Like any other plugin or feature you would use in VaM, it does not come without a cost.
Use the fast mode if your sound is not important and you don't need to have the thickness taken in account.
For ambiences, if your sound is permanently muffled and you don't have any situation where the player can witness the occlusion effect (like opening a door or a window)... don't use occlusion and set a static low pass and/or high pass frequency.
Important to remember: occlusion is set on the AudioSource. Which means that, if you are using reverb, the original signal is sent to the reverb (because well, it's the way it works ). When I can, I will update plugins to have a reverb "send" option to reduce the volume of the reverb. But always keep in mind that only the direct signal from the sound source will be muffled.