Decal Filtering

I’ve downloaded UE4 recently and I’ve been playing around for several days. So I created a character that can shoot arrows and also a blood particle that spawns when it hits another character. After that I tried to create a blood decal show on ground but I had some complications.
So my question is, is there a way to create a decal that will only project on specific objects?

For example I want to create blood on the ground when a character is hit, but I want it to be rendered only on the landscape.
I know there’s a decal render option in the object details ,but it’s not really a solution because for example I want to have an object that will render blood decal but won’t render let’s say a dirt decal.

I googled a lot but no luck so far, so I hope there’s a workaround!

Sorry if it’s the wrong category for the topic, but it’s my first post.

Welcome to the forums!!
If I understand your question correctly I don’t think there’s a way to create a decal that only renders on specified objects but there is a way to do the inverse, have a mesh not render specific decals. you gotta go into the Rendering Category and find the “Receives Decals” Property. Good luck!

I assume you mean the “Receives Decals” tickbox ? If I uncheck that, then no decals will be drawn.
I want to create a decal system similar to Skyrim. So when a character is hit, a blood decal will show on the terrain which will only render on the terrain and also a small decal spawn on the character and shown only on the character.

1 Like

Can anyone help with this or maybe suggest some kind of workaround ? I believe it’s an issue that many have.

Hi, I just want to say this is also a big problem for the project I am working on, and would be with any triple A game. With the current implementation of deferred decals they are only really practical to use on static meshes. It looks bad if anything that moves receives decals or has decals attached. Even just limiting them to static meshes can still look bad. If for example I place a blast decal on the ground near a wall, the wall will get some of the decal but look terrible because it’s 90 degrees off, so it looks like a stretched cross section. (This is very obvious in Unreal Tournament by firing a rocket at a corner.)

I don’t think deferred decals can fully solve the problem, even if it was somehow possible to limit what surfaces they are applied to. This is because for example if you have a blood decal on a character’s arm and they move their arm close to their body, it will potentially render the decal on their body if it is inside the volume because it is the same mesh. But that may be “good enough” for most games.

The only real solution I can see is to have a different type of decal component that uses the traditional way of grabbing the polys and creating a mesh for the decal. This is a bit more complicated with skinned meshes but doable.

I hope it gets fixed in an update soon. Thankfully, it’s only visual so it can always be added later to a game :wink:

Just adding another vote for ‘please add a feature for filtering decals’.

Decals can help to spice up (static) level design, but you can only put them in places where player characters (and other movers) can’t reach, because if (say) you have a stain decal projecting down onto the floor, a character walking through this can get decal glitches on their feet. Yes, you can make the decal project in a very thin volume to minimise the effect, but not on uneven ground.

At the very least an ‘apply decals only to static mesh/static lit’ filter would allow more flexible level design with glitches.

Also, if the DBuffer system is here to stay, please update the docs! Took me ages to figure out the default decals ‘not very visible in static lighting’ bug/feature…

I’m also told that the last version of the engine had decal channels which were more flexible than this…


2020 Still no filtering…

That helps me to filter characters for decals :slight_smile:

Source: 1.5 - Receives Decals Off | Unreal Engine Documentation

same issue here is my lead for a work around as I rely on a few master materials it should be quick: