These settings also control the 'generation' stage of volume creation, but are less commonly adjusted and therefore are in a separate category to keep settings more readable.
You typically would set these once when you're familiar with the tool and then rarely adjust them.
What type of volume would you like to generate?
Volumator happily supports most volume classes, typically anything with a brush component. So TriggerVolumes are supported, but Trigger Boxes are not, because they rely on the simpler Collision Component rather than a Brush Component. Another way to look at it: if the Unreal Modelling tools support the volume, then so does Volumator.
This variable is also used by testers on the testing panel, as they will be checking areas to ensure they're covered by at least one volume of this class.
Depot's also have a Volume Class that determines what they build and test for. This means different depots can work with different volume types. When you 'Create Depot' on the Automate panel, the volume class that you have selected here in Generation Settings Advanced is what determines the depot's Volume Class. So if you want to build different depot's for different volume types, you'll want to change this Volume Class variable before creating each depot.
Volume Class is obviously an important setting, but it's assumed you'll likely not be changing it often, if at all. So it's been relegated to Advanced Settings. If you find you're changing it often and would like it bumped up to the main Generation Settings, please let me know!
It is not currently possible to change a volume made with Volumator to another class, but it could be supported! If this is something you need, let me know and I'll try to add it in a future update.
Volumator works it's magic by storing data about the volume in a special component called Volumator_Data. This component is editor-only and will not interfere with your game all. However, if for some reason you do not want to add this component to your volumes, disable this bool.
If a volume has no Volumator_Data then the following features will not work on the volume:
regenerating volumes
recalling settings from volumes
vertex editing
quick tests
reports
automation and validation
much of the depot functionality
With data disabled, you are still able to create and manually test volumes, so disabling this just makes Volumator a simple 'volume creation' tool and nothing more.
Voxel Mode only. Voxels are placed anywhere geometry was detected OR where the detection actor flew to. This means that the interior section must be flown through thoroughly in order to not have holes in the middle of the volume.
This can be difficult with large areas, especially when piloting. This is why voxel mode typically works best with drones, as you're more likely to have the drone fly through all the interior.
If an interior voxel area hasn't been flown through, a hole will appear in the volume. When voxel-mode generation is run, we use a hole filling process to catch and fill in these gaps.
The Voxel Hole Filling setting determines how many holes deep the process will search. Depending on how bad the problem is, it can do a really good job of filling in all your gaps.
Voxel hole filling = 0 (disabled)
A poorly detected voxel volume with lots of holes. When piloting, not all areas in the middle were flown through, resulting in holes in the middle of the volume. This can also occur if a drone doesn't fully fly over the interior space (e.g. you Stop a drone early).
Voxel hole filling = 1 (default)
Here we have fixed all the single holes, but the really large areas remain.
Voxel hole filling = 4
All holes have been filled.
However, shapes that curve back in on themselves (like a U shape) can be filled in, which is why the default is lower.
If you push hole filling too far, it can start filling in areas that shouldn't be filled in. A good, simple example is trying to build a U shape, with hole filling set high enough, the system will think the gap in the U should be filled in and you'll just end up with a single block.
Top down view. Voxel hole filling = 0 (disabled)
Clearly a few small holes to fill. Most are 1 hole deep, but there's a 2 hole deep space near the middle
Voxel hole filling = 2
All of the hole have been filled in
Voxel hole filling = 10 (extreme)
Now we're seeing concave sections start to be filled in undesirably
While hole filling is handy, because of the side effects of overdoing it, it can often be better to increase the Resolution (voxel size) when dealing with complex or dense, highly concave shapes to avoid excess voxels.
Perimeter Mode only. A critical part of the generation process is ordering perimeter points to create a linear path around the edge of the volume. This ordering process usually works very well and an internal intersection checking system exists in cases where it trips up. However with extremely challenging cases such as highly acute angles (e.g. the sharp part of a V shape) the ordering system can skip points.
The forward bias control encourages the ordering system to look 'forward' in the direction the path was already taking. This can aid cases where a point is skipped undesirably.
In early testing this setting became relevant, but the newer Intersection and Validation systems have made it far less necessary, so it's been moved to an advanced setting.
If you are really struggling with sharp, concave corners not working well and other options aren't helping, try increasing the forward bias. Note that Forward Bias can create it's own problems, which is why it's disabled by default, so it's always worth checking the result. The shapes affected by this feature are also very unlikely in most games, but it's there if you need it for extreme cases.
Forward Bias 0 - The extremely acute angle here has caused point ordering to 'skip sides', jumping to the opposing wall and resulted in a very problematic shape.
Forward Bias 1 - The sharp shape has now been fixed by ensuring that the point ordering system tries to continue forward in the direction it was previously travelling
As explained in a section above, forcing the volume to be generated as a convex one is beneficial for various reasons and results in cleaner volumes less prone to error. The 'Detect Convex' feature will determine if the shape that has been built is convex and if so, it automatically forces generation use convex hull, regardless of the setting of the 'Force Convex Shape'.
The value used is the percentage size increase that determines if something is automatically converted to a convex shape. Increase to force less convex shapes into convex, and decrease to be more discerning with auto-convexing, to ensure concave shapes are represented. A setting of 0 to disables auto-convexing entirely
e.g. if set to 0.5, if making the volume convex makes it 0.5% larger or less, we automatically force it to be convex
Making volumes convex makes better and cleaner volumes, but it 'fills in' any areas that cut in to the volume. With the low tolerance that this setting allows, it's usually safe to keep this on as the shape change is usually negligible enough to be worth the benefit of a cleaner concave volume.
Take into account volume size when tweaking this. Very large volumes could result in you losing concavities that are important as the value is a percentage of the overall size. It might be worth disabling or setting to very low amounts for extremely large volumes that might have concavities
Detect Convex 0.25 - The concave triangle area takes up more than 0.25% of the volume, so Volumator has not enforced concave and left the shape intact.
Detect Convex 1 (max) - The concave triangle takes up less than 1% of the volume, so Volumator has been allowed to automatically convert the volume to convex and fill in the triangle space
What should a newly created volume be named? If left blank, the name will be the volume class name, the same as if you dragged an actor in manually.
The volume name is retained when regenerating or tweaking volumes. This is simply for new volumes that you create. You may find it useful to easily distinguish between Volumator created volumes vs ones not created with Volumator, and this variable allows you to easily do that.
Many volume types appear in the editor as unshaded wireframes, this can make it difficult to properly assess their shape. Volumator includes a handy way to visualise the volumes better by adding an editor-only dynamic mesh component on the volume. This mesh mirrors the shape of the volume and has a translucent colour, allowing you to see through the volume. You can see examples of this in all of the screenshots shown on this website, the pink areas are the visualisation component.
More information about the opacity system can be found in the Toolbar section on toggling opacity.
Enabling Opacity On Create adds these opacity meshes on creation of new volumes automatically. This saves you having to toggle them on each time and ensures volumator created volumes are always visible and clear.
There are two ways to visualise the volume opacity. By default we use the dynamic mesh method, where we add an editor-only mesh to the created volumes with a translucent material. However, as this is adding a component to your volume, you may prefer a simpler, less content driven approach. The simple opacity method uses Unreal's 'Display Shaded Volume' variable on volume actors instead.
The simple opacity has a few major drawbacks, which is what prompted the need to build the component approach, but it's included for your flexibility. You can read more information about opacity in the 'Toggle Opacity' section of the toolbar page.
Enabled pros:
-simpler, as there is no component added to the volume
Enabled cons:
- one-sided visual - you can't see the volume opacity when inside it
- is NOT retained on level load or volume regeneration; opacity is only temporary
- selection issues - volume opacity will both block selection clicks while also not being selectable itself, you must select the wireframe
- the 'display shaded volume' variable may not be available on your volume class
Disabled pros:
- two sided material - can see volume when inside it
- opacity is retained on level load and volume regeneration; opacity is not temporary
- easier to select - opacity still blocks clicks but the volume itself is selectable, no need to click the wireframe
- should work on all volume types
Disabled cons:
- adds an extra (editor only) mesh component to the actor, a tiny performance hit
Simple DISABLED - this uses a dynamic mesh added to the volume and is the default
Simple ENABLED - this uses a Displace Shaded Volume property on the actor
As explained in the Generation Settings section, the volume height is detected during the detection stage and then applied to the volume during generation. Due to this, you typically do not want to adjust it later as the correct height should have been detected. So the height is locked after detection and regenerating the volume will not update the height if the height variable is changed.
However, there may be times where you do want to change the height. By enabling this option any regeneration of volumes will also update the volume's height to the current Volume Height amount in the Generation settings.
You can of course 'recall' the stored height value of the volume, so if you want to slightly increase the volume height, you'd recall settings from the volume, enable the 'Regenerate Changes Height' setting, tweak the height as desired and then press the Regenerate Selected Volume button.
Volumator has a lot of variables and even more that aren't user-facing. To make your life easier, the user-facing variables are stored in a data asset. This makes it super easy for you to change the defaults without having to dig into the overwhelming Volumator widget.
The Data Asset is called 'DA_Volmator_Defaults'. When Volumator opens, it copies the variables from the data asset on to it's local variables. So if you want to change the defaults, simply change them in the data asset.
You can easily find the data asset in the Widget Settings of Volumator
On the left you can see some of the contents of the data asset. Update this data and the next time you open Volumator it'll automatically be set to these values.