Adding Water Volume to actor blueprint

I am making a prototype of a under water Airlock. In this airlock if your inside and want to go outside, it will close both doors and fill the chamber with water. and when you come back in then it will close both doors and drain the water.
My take on this is I can make a water volume below the airlock and then have it raise up and down to simulate water filling and draining. but I cant figure out how to get a volume in the blueprint such as the box volume to be able to swim in.
Ive thought about putting a water volume in the level and having the blueprint reference that in the world via public variable but I don’t thing that this is the most Efficient way of doing this.
I would really appreciate the help!

~Thanks in advance!

You can’t add volume to blueprint or actor. Use external reference.

I’m curious though as to how the “instant swimmable water” has that in the blueprint.

I think it uses simple box collision component to detect is object inside water or not, and then switches that object into some “swim” state. How this state implemented in every type of object - is different question. Basically, for pawns/characters, it’s always uses floating pawn movement component, or some modification of flying movement mode.

So I could technically create my own swimming mechanic within a specific volume component in the blueprint?

Water is a complex feature. It contains some physics component to simulate swimming, post process component to render underwater graphics, and I think it is necessary to put all of this into one water actor for convenient use.

but it’s on your own. if you have one static water actor in whole project, maybe it is smarter to not develop your own “bicycle”, and use external volumes.

@redbox: What do you mean, “Use external reference”? Can you elaborate on that?

That means you can add public variable to your blueprint and set another actor in it when this actor placed in level.

According to this question, this variable should be of type “PhysicsVolume” so you can assign PhysicVolume to it, and manipulate it’s properties from there