Volume Based Masking

Hey guys.
I’m trying to figure out a way of having object effectively “Wipe” on in 3D space. That is a terrible explanation so for reference check out Gilgamesh’s Gate of Babylon at the beginning of this clip https://www.youtube.com/watch?v=W59Cx458B-M
My intention is to combine this with other material and particle effects for magic and scifi effects. In order to achieve this I’ve been using the BoxMask-3D in my material to mask out the object and then moving it so that it reveals the object.
This has left me with two issue that I can’t seem to figure out.

Firstly, I have no idea how to get the box mask to rotate with the object, so instead of having a clean mask, if the object is rotate I get the edges of a box. My solution to this was to use a volume in my blueprint (very easy to manipulate as desired), but I can’t figure out how to get my material to recognize that volume as a mask.

The second issue is that masking leaves me without an end cap, and I can’t figure out how to get one. I had the idea of essentially turning my object into a volume mask, duplicating my original volume as a mesh (keeping all the animations the same) and then using my object to mask the intersecting part of my duplicated mesh (effectively like a boolean operation in maya). Of course, I can’t figure out how to turn a volume into a mask, and I can’t figure out how to turn a static mesh into a volume.

I don’t mind doing some complex blueprints/material work to get a solution, I just can’t use c++. Thanks to anyone who can help me :slight_smile:

its hard to understand what you’re after. I looked at that video the round gold things behind the character? you want the spears to come out of floating planes?

Instead of the boxMask you can also make a second UV channel that is side projection mapped and wipe that simply in 2D using customUV. Or maybe you can better show what you are trying to do.

Hey Dave. Sorry to be so vague. Here is an example of the effect I’m trying to get Dropbox - Error
As you can see, its just a basic boolean operation. For what I’m wanting to use it for, doing it through UVs wouldn’t quite work because some of the animations the object would be rotating as it is revealed, like in this example. Dropbox - Error

I don’t know if you can rotate it. Could you use a sphere mask? I tried a few things but with absolute world position its definitely in absolute do matter if parented or what. Local space works but then it doesn’t move like you probably want. Another option is a X or Y ramp mask but that will not be any different than a box however it can be rotated. Like this:
Coordinates Expressions | Unreal Engine Documentation where the texture is a ramp… its not perfect its got other issues like scale, but it can rotate.

you said you tried to use a volume in your BP that won’t work but you can get smart with the sizing and placement of the boxmask…

End caps will be an issue no matter what. I don’t recall seeing that solved in a material. you can do it all in joints since scale works? or simplify the problem. Another option is use a sphere/boxmask to reveal the onbject from a duplicate thats ghosted. so both use the same parameter collection attr and have their own masks with a 1- on one of them. So ghosted to solid… not sure if I’ve been much help.

This definitely helps a lot! I’m going to have to slightly change the design of the effect I was going for but this gives me many ideas to work with. Thanks :slight_smile: