[FEATURE REQUEST] Custom volumes

Hi,

I was just thinking about another cool feature: Custom volumes.

What I mean with that is that there could be a custom volume actor type to which you can add variables.
A bit like a blueprint with just a box volume in it and some variables. But a bit more flexible and editable in the viewports like any other volume.
The variable list would be edited in the details panel.

Why, what for?
Consider the following workflow:
-A model designer designs some light fixture assets. Bedroom, livingroom, kitchen, porch and garden lamps. He has no idea what the level will look like in detail, but he knows how the light assets should look like…
-The level designer sets up the level, but doesnt put any light in, because he doesnt know anything about proper lighting. Not his department. He just places the geometry and the non-light related props. Then he puts a custom volume around the garden and labels it “Garden”, like with an enumerator. He does the same for the porch, the bedroom, etc.
-Now The lighting artist takes over. He is not concerned with geometry or if the lamp models look particular nice in his oppinion. He is the guy to make anything look lit well.
When the lighting artist now decides: the garden is too dim, there should be a light! He would grab a (made) generic light actor (BP) and places it into the garden. The light BP would know its inside a garden volume and show the mesh for the garden lamp.
If he then decides, the light should be more on the porch and drags the light over to the porch, the mesh automatically changes from garden lamp to porch lamp mesh.
This way, the lighting artist could fully concentrate on lighting the level while someone else maintains artistic control over the models.

So this could help make level and its assets more context sensitive.
What do you thnk?

Cheers,
Klaus

I’ve done this myself.
I have a blueprint that contains a box component and a vector. The blueprint scales the box component from the point of origin to the relative location of the vector. I add a billboard component that gets put in the center.

One of these blueprints is used as a special trigger that does much more than their trigger volumes.
One is used for alarm zones and will alert guards in that area when a non-stealth weapon is fired.
One will automatically trip the alarm zones when entered.

Its not hard to make these. There is a tutorial that shows you how to make a conveyor belt on epic’s . That’s usefull, but I like my design better. Its not that much different though.

But then you need to punch in numbers for the vector, right?
I thought about a convienient way of placing and shaping them. Like LightmassImportance volumes.
Easy resizing like a brush…
Yes, I want to be spoiled :rolleyes:

You can already create custom volumes by extending the AVolume class in C++.

Unfortunately Im a total dimwit when it comes to C++, let alone the unreal flavored one here… :o

1 Like

There is an option to “show 3d widget” on vectors. I use that. The point of origin is one corner of the volume. The diamond marks the other corner. You can select the diamond and move it around. With my setup the volume between the origin and the diamond are automatically determined.

I do the same thing with lifts. I use the “show 3d widget” on the lift destination vector and I can see where its going to go. I even implement a preview Boolean that moves the lift to the diamond if checked and the game isn’t running. I use event begin play to make sure its back at origin.

Thanks for the tip. Ill try that :slight_smile:
If I have questions, Ill ask :rolleyes:

Edit: Ok already got one :slight_smile:
How can you check if an actor is placed within a volume from within the actors construction script?
Or in other words: how can the actor find out about what volume it is in? Using no blutilities or runtime events that require begin play or tick…?

Seconding this, because volumes are Brush actors meaning they can have their vertices repositioned within the editor, while ordinary blueprints with colliders as their root cannot.

It’s often very handy to be able to stretch vertices for trigger volumes so they can be shaped to fit spaces more precisely without leaving portions of an area uncovered or clipping through geometry to activate on the other side of walls if too close. I have actors with associated trigger overlaps which are currently set via Transform vars with gizmos but it would be cool if the triggers for those actors could be manipulated the way brushes are.

I added something similar here: Geometry Editor 2.0 suggestion thread - Feedback for Unreal Engine team - Unreal Engine Forums
You select the shape of the brush and the the type of brush and you can set the materials to the brushes trigger.

Precisely that is the idea behind it :slight_smile:

Hey ,

Thanks for the idea on custom volumes. I have submitted a feature request to our developers. The reference for this report is: UE-2061

Have a wonderful day! :slight_smile:

Thanks a lot :slight_smile:

You’re very welcome. :slight_smile:

What’s the status of this request? (seems like “long forgotten”)

@motorsep I think this is like my Purpleprint ?

hmmm. I wonder if you can extend AVolume through BP? It may be possible…

Edit:
nevermind, you can’t directly extend Volume in BP. You can, however, create an empty c++ class that extends Volume (through the c++ wizard), make it Blueprintable, and THEN extend that through BP. But when I placed that in the scene, I couldn’t see the volume brush. Not sure what’s going on. Dragging the c++ actor into the scene works well, but not the BP

I guess there’s probably a reason why Volumes aren’t Blueprintable in the first place