Volumetric Audio supports 5 different audio shapes (Sphere, Box, Capsule, Path, and Mesh), you can use any combination of these to sculpt your audio world.
For example: if you want to apply volumetric audio to some power lines in your scene, then you would probably want to use the Mesh or Path shapes. However, if you want to apply volumetric audio to a tunnel then you might want to use the Box shape instead.
Once you've decided which shape you want, select your GameObject and go to Add Component / Volumetric Audio / __shape__, you should now see a shape component added to your GameObject (e.g. VA_Capsule if you chose a capsule shape).
Now it's time to add an Audio Source to your scene. If you've imported a sound (e.g. WindLoop.wav) into your Unity project, then you can just drag and drop it from the Project window into your Scene or Hierarchy windows.
Once you've added it, you'll probably want to check the Loop option if you want your sound to loop, and also you'll probably want to drag the Spatial Blend slider to the 3D side. You might also want to play with the volume and rolloff settings.
Now that you've created your volumetric shape and sound, it's time to bind them together.
To do this, select your Audio Source GameObject and go to Add Component / Volumetric Audio / VA Audio Source, you should now see the VA_AudioSource component in the inspector window.
Inside the VA_AudioSource component you should see the Shapes field marked in red. If you drag and drop the volumetric shape you made earlier into this field, then it should work.
If you hit play, you should now have volumetric audio!
If it doesn't seem to work, then make sure you play around with the 3D sound settings (particularly volume, spatial blend,, loop, and rolloff).
Additionally, if you select your volumetric shape then you can view its shape in the Scene window.
Volumetric Audio uses Unity's built-in Audio Source component to produce audio. This allows you to hear which way the sound is coming from based on the camera's position and orientation. However, if your camera goes inside a 3D shape, then Unity's audio system won't be able to decide which way the sound is coming from, because the sound is actually all around you.
This is why the VA_AudioSource component has the Blend setting. If you enable this, then 3D sounds will gradually turn into 2D sounds as the camera approaches the volumetric shape. Once the camera is inside the shape, the Audio Source's Spatial Blend setting will turn to 2D, and the sound will appear to come from all around you. You can then play around with the Blend Min Distance and Blend Max Distance settings to adjust how small or wide this transition should be.
Like 3D sounds, Volumetric Audio uses Unity's built-in Audio Source component to produce 2D audio (e.g. ambient/background music). However, the built-in Audio Source component doesn't have any way to change the volume of the sound based on your camera's position, so it's always playing at its default volume.
This is why the VA_AudioSource component has the Volume setting. If you enable this, then your Audio Source's volume setting will change based on the camera's distance to your volumetric shape. You can then play around with the Volume Min Distance and Volume Max Distance settings to adjust how small or wide this transition should be.
This is a list of the in-game example scenes and a description of what it shows.
This shows you how to make a volumetric sound in the shape of a box. This is done by adding the VA_Box component the box, and the VA_AudioSource component to your sound. You can then enable the .Position setting, and drag and drop the box GameObject into the Position / Shapes list. This will associate the sound with the volumetric shape. The VA_Box.IsHollow setting can be used to make the sound only emit from the hollow shell of the shape.
This shows you how to make a volumetric sound in the shape of a sphere. This is done by adding the VA_Sphere component the sphere, and the VA_AudioSource component to your sound. You can then enable the .Position setting, and drag and drop the sphere GameObject into the Position / Shapes list. This will associate the sound with the volumetric shape. The VA_Sphere.IsHollow setting can be used to make the sound only emit from the hollow shell of the shape.
This shows you how to make a volumetric sound in the shape of a capsule. This is done by adding the VA_Capsule component the capsule, and the VA_AudioSource component to your sound. You can then enable the .Position setting, and drag and drop the capsule GameObject into the Position / Shapes list. This will associate the sound with the volumetric shape. The VA_Capsule.IsHollow setting can be used to make the sound only emit from the hollow shell of the shape.
This shows you how to make a volumetric sound in the shape of a mesh. This is done by adding the VA_Mesh component the mesh, and the VA_AudioSource component to your sound. You can then enable the .Position setting, and drag and drop the mesh GameObject into the Position / Shapes list. This will associate the sound with the volumetric shape. The VA_Mesh.IsHollow setting can be used to make the sound only emit from the hollow shell of the shape. Keep in mind meshes can only be made volumetric if they are closed and have no holes/gaps.
This shows how you can bake high poly meshes so they run efficiently at runtime. Try selecting the mesh and clicking Clear Baked Mesh to see the speed difference!
This shows how you can make sound emanate from a dynamic mesh. Just keep in mind this approach is quite expensive, so try to limit it to low poly meshes, or provide a low poly variant for the audio system to use.
This shows you how to make a sound in the shape of a path. This is done by adding the VA_Path component to a GameObject, and the VA_AudioSource component to your sound. You can then enable the .Position setting, and drag and drop the mesh GameObject into the Position / Shapes list. This will associate the sound with the shape. If you select your path then you can move the points around in the Scene view, as well as click to split a line.
This shows how you can make sounds emanate from rotating objects. Notice the doppler effect as the object passes by the camera.
This shows how you can use the Shapes list to combine multiple shapes into one, and have the same sound emanate from all of them.
This shows how you can use the Occlude and Occlude Groups settings to make certain objects block sound from travelling through them.
This shows how the VA_Zone component can smoothly enable sounds when entering the zone, and smoothly disable sounds when exiting. This is very useful for improving performance in large scenes that don''t need every sound enabled at the same time. The Deactivate Game Objects setting can also be used to increase performance even more!
This shows how the Excluded Shapes list can be used to create pockets within volumetric shapes where sound can''t emanate from. Fly into the cube to hear it in action.
This shows you how the VA_AudioSource.Fade & FadeWhiz settings can be combined to increase and maintain a sounds volume when they pass by the listener, simulating bullets whizzing past.
This shows a number of Volumetric Audio features working at the same time in common game scenarios.
Volumetric Audio is compatible with the DJ PRO asset, which allows you to play music from your in-game library.
To see an example of them working together, install the Plugins/CW/VolumetricAudio/Integrations/DJ PRO package.
For more information:
Volumetric Audio is compatible with the Radio PRO asset, which allows you to play music from online radio stations.
To see an example of them working together, install the Plugins/CW/VolumetricAudio/Integrations/Radio PRO package.
For more information:
Volumetric Audio is compatible with the RT-Voice PRO asset, which allows you to automatically voice written text.
To see an example of them working together, install the Plugins/CW/VolumetricAudio/Integrations/RT-Voice PRO package.
For more information:
Here's a list of all my other assets, please check them out!
You can also view this list on my Asset Store page.
Rapidly develop your game with consistent input across desktop & mobile using Lean Touch. This lightweight asset comes with many modular components, allowing you to customize them to your exact project needs!
Lean Touch+ is an extension to the popular Lean Touch asset, adding many more example scenes.
Lean Localization is a localization library that's designed to be as simple to use as possible for both designers, and programmers.
Quickly optimize the performance of your games using Lean Pool. Within minutes you can use this lightweight asset to preload, recycle, and limit the spawning of your prefabs.
Quickly polish your games using Lean Transition. This asset allows you to easily tween or animate almost anything in your game, making it transition smoothly.
Lean GUI is a colllection of components that extend Unity's GUI system, allowing you to rapidly enhance the user experience (UX) of your game's UI.
Lean GUI Shapes allows you to quickly add lines, rounded boxes, polygons, and much more to your GUI!
Lean Texture allows you quickly modify textures in your project with a range of filters, pack them together into channels, and much more!
Lean Texture+ is an extension to Lean Texture, adding many new types of texture modification tools!
Unlock a universe of visual possibilities with Modular Backgrounds. Simply drag and drop these graphics into the background of your scenes.
Paint all your objects using Paint in 3D - both in game, and in editor. All features are optimized with GPU accelerated texture painting, so you can enjoy consistent performance, even if you paint your objects one million times!
Paint all your sprites with Paint in 2D. With incredible performance on mobile, WebGL, and much more!
Paint in Editor unlocks the ability to paint objects in your scene - great for making small tweaks, or even creating entirely new texture sets!
FLOW allows you to add large scale interactive fluids to your scene - all highly optimized using GPU acceleration.
Unlock the full potential of your 2D games using Destructible 2D, this asset allows you to quickly convert all your boring solid sprites into fully destructible ones!
Quickly make the space scene of your dreams using Space Graphics Toolkit. This huge collection of space effects can be customized and combined in any way you like, allowing you to quickly make realistic or fantasy worlds. Each feature has been heavily optimized to run on almost any device and platform.
Enhance your space scenes using this large pack of high detail volumetric planets. These planets are finished using the powerful planet features from Space Graphics Toolkit (not required).
Unity sounds only emanate from a single point source. This is great for explosions and footsteps, but quite often you need something more advanced. Volumetric Audio is an easy to use package that allows you to define boxes, spheres, capsules, paths, or meshes that sounds can emanate from.
Updated shaders for URP and HDRP.
Moved main build to Unity 2020.3.0f1.
Fixed sound positioning VaMesh issue in some scenarios.
Changed folder structure to be inside Plugins/CW/VolumetricAudio.
Updated inspector code to support third party assets that implement nested inspectors.
Added basic FMOD integration package to Integrations folder.
Added audio listener fallback to the MainCamera when using a custom audio system.
Fixed transform gizmos not appearing in Unity 2021.2.
Added support for new Input System package.
Replaced VA_Freeflight component with VA_CameraMove and VA_CameraPivot.
Improved AudioListener search to ignore disabled ones.
Added VA_AudioListener to support custom audio systems.
Fixed VA_Sphere shape with non-uniform scaling.
Fixed VA_Capsule shape with non-uniform scaling.
Optimized baked VA_Mesh by over 300%.
Added VA_Zone component to disable audio sources that are too far away.
Added Zones demo scene.
Added VA_AudioSource.Position setting.
Added VA_AudioSource.PositionDampening setting.
If you're using a custom audio system then you can add this component to your audio listener (ear), so volumetric audio knows where it is.
This contains all active and enabled VA_AudioListener instances.
This component can be added to any sound to make it volumetric.
Should this sound have its position update?
The speed at which the sound position changes.
0 = Instant.
The shapes you want the sound to emit from (e.g. VA_Mesh).
The shapes you want the audio source to be excluded from.
Should this sound have its Spatial Blend update?
The distance at which the sound becomes fully mono.
The distance at which the sound becomes fully stereo.
The distribution of the mono to stereo ratio.
Should this sound have its volume update?
The base volume of the audio source.
The zone this sound is associated with.
Should the volume fade based on distance?
The distance at which the sound fades to maximum volume.
The distance at which the sound fades to minimum volume.
The distribution of volume based on its scaled distance.
Should the volume fade cap to the closest distance to simulate a bullet whizzing past?
The sound volume will be calculated based on this distance rather than the actual distance. If the actual distance is lower than this, then this value will be reduced to match.
Should this sound be blocked when behind other objects?
The raycast style against the occlusion groups.
Check for VA_Material instances attached to the occlusion object?
How quickly the sound fades in/out when behind an object.
The amount of occlusion checks.
Should this sound's dynamics change based on its distance to the camera?
The camera distance where the minimum sound dynamics will be used.
The camera distance where the maximum sound dynamics will be used.
The sound dynamics used when the camera is at or below the minimum distance.
The sound dynamics used when the camera is at or above the minimum distance.
This component allows you to define a box shape that can emit sound.
If you set this, then all shape settings will automatically be copied from the collider.
The center of the box shape.
The size of the box shape.
This component allows you to create a bullet spawner that sprays bullets forward.
The bullet prefab.
The spray angle in degrees.
The speed of the bullets in units per second.
How long the bullet stays alive in seconds.
The time between each shot in seconds.
This component allows you to define a capsule shape that can emit sound.
If you set this, then all shape settings will automatically be copied from the collider.
The center of the capsule shape.
The radius of the capsule shape.
The height of the capsule shape.
The direction of the capsule shape.
This component animates the VA_Spiral component's AngleStep setting.
The minimum AngleStep value.
The maximum AngleStep value.
The amount of seconds it takes to go from AngleStep A and B.
This component allows you to define a specific volume override for the current collider.
The volume multiplier when this material is blocking the VA_AudioSource.
This component allows you to define a mesh shape that can emit sound.
If you set this, then all shape settings will automatically be copied from the collider.
If you set this, then all shape settings will automatically be copied from the filter.
The mesh of the mesh shape.
The interval between each mesh update in seconds
-1 = No updates.
How far apart each volume checking ray should be separated to avoid miscalculations. This value should be based on the size of your mesh, but be kept quite low.
This component allows you to define a path shape that can emit sound.
If you select a GameObject with this component then you can edit the points in the Scene view.
The local space points for the path.
This component allows you to define a path shape that can emit sound.
If you set this, then all shape settings will automatically be copied from the collider.
The center of the sphere shape.
The radius of the sphere shape.
This component spins the current GameObject.
The amount of degrees this GameObject is rotated by each second in world space.
This component procedurally generates a flat spiral mesh.
Amount of segments in the spiral.
Thickness of the spiral in local space.
Initial angle of the spiral edge in degrees.
Initial distance of the spiral inner edge in local space.
Angle increment of each spiral segment in degrees.
Distance increment of each spiral segment in local space.
This is the base class for all volumetric shapes (e.g. VA_Box).
If you set this, then sound will only emit from the thin shell around the shape, else it will emit from inside too.
This component allows you to draw a wireframe between specified pairs of points. The points can be generated from a MeshFilter too.
The lines making up the wireframe.
The material used to render the wireframe mesh.
This component allows you to create a spherical zone that you must enter for the specified sounds to play.
The radius of this zone in world space.
Should the GameObjects of the sounds be de/activated?
The speed at which the volume changes to its target value.
The audio sources this zone is associated with.
The current volume of this zone.