Volumator can be incredibly helpful if using the audio middleware Audiokinetic Wwise, which uses AkSpatialAudioVolumes to represent the game world's geometry through simplified volumes.
Volumator Barriers and Wwise Portals work hand in hand, and Volumator can be extended to auto detect Acoustic Textures on AkSpatialAudioVolumes.
As detailed in the page on Barriers, Volumator uses barrier actors to compartmentalise areas; stopping drones from flying out of rooms and also blocking detection rays. They are usually placed on connecting areas like open doorways and windows.
AkAcousticPortals are used by Wwise to funnel audio between rooms, so are typically also placed on connecting areas in essentially the same places.
We can change the barrier volume class from the default Volumator Barrier class to be any other volume class. So if using Wwise, simply switching the Barrier class over to AkAcousticPortal and we get two benefits:
Volumator now uses Portal volumes as barriers; so any portals in a map will block drones and rays
Volumator's 'Build Barrier Volume' button will build an AkPortal. In testing, Volumator's build barrier button tended to do a better job of creating volumes to match the shape than Wwise's 'fit to geometry' feature,
The Build Barrier Volume button is also a quicker and easier one-click operation than manually placing an AkPortal and finding 'fit to geometry' from the details pannel
So one of the first things you'd do in a level is fly around, quickly dropping AkPortals where necessary and then run your main build volume processes via piloting or drone.
On the right we can see an AkPortal being used as a barrier that was built using Volumator
Wwise Spatial volumes allow you to specify acoustic texts on the faces of volumes. These are then used by Wwise to determine appropriate reflections, etc. It can be time consuming and fiddly to do.
While Volumator doesn't natively support detecting and applying acoustic textures (to avoid headaches with people NOT using Wwise), there is a strategically placed function that will allow you to set this up. Inside the main Volumator Unreal blueprint there is a hidden variable called 'RunMaterialProcess', it's disabled by default but by enabling this the function will run after any volume has been generated.
The function is called 'VolumeMaterialProcess'. Again search in the Volumator widget for this function and you'll see the volume as an input (labelled 'Actor') and the final point data making up the volume (labelled 'Input Perimeter Points').
Using this function, you can modify the volume using the data to, for example, apply appropriate acoustic textures to the faces of the volume.
Above shows the RunMaterialProcess variable. Enabling this cause the 'VolumeMaterialProcess' to run after generating any volume.
The right shows the function, it ships with some simple validation checks, an array breaking up the vertices of the volume and a couple of use-case examples.
The 'input perimeter points' represent an ordered list of the perimeter vertices (ignoring the Z axis) that gets used to build the volume. So the locations in the array should exactly match the locations of the vertices of the volume actor.
Within this function you have everything you need to run scans on the data. However, you'll likely require someone with C++ skill to get access to the locations of the 'Acoustic Polys' so that you can point the physmat data to the appropriate poly.
To show how the data works, on the right we can see an example of how the perimeter points make up a volume shape.
As you can see, each index location represents a corner of the generated volume. So if we want to do something fun with the volume faces we can parse through the point array to do that.
e.g. locations between index 0 to index 1 create the face at the top, 1 to 2 is the face on the right, etc.
As a simple example, we could run, say, a sphere trace at the location between each index pair, return the detected physical material at that location, then push that physmat to that face on the volume.
You'd probably want to do a more complex version of that (e.g. multple traces per face) but that would work.
As we're talking about Wwise here, we would probably look up what AkAcousticTexture the physmat is pointing to in the DefaultGeometrySurfacePropertiesTable data table. Then apply that AkAcousticTexture to the AcousticPoly of the face on the volume.
You'd also want to do a test on the floor ceiling too, they're usually more simple so you could probably get away with a singe material for each tested from the actor location. But if people require more complexity, I can pass through some locations inside the volume that can be used as sampling points. Let me know if you need that!
The VolumeMaterialProcess function contains a couple of handy examples showing how you can easily set up a physmat detection system using the data.
The first does a simple sphere trace at the middle point between each vert.
The second does a more complex 'do X sphere traces, spread equidistantly between verts' approach, which would then be checked for the most appropriate physmat.
I'd love to have included the ability to do all this by default in Volumator but it would require a lot of additional complexity and ring fencing to ensure it doesn't impact people not using Wwise, plus it's unclear at this stage how many people would find this feature important. If this interests you and you're unable to build it yourself, please reach out via email and I'll consider it as a future update.