Change Post Process Material

Hi, I currently have post process volume within my scene that has an outline material so that whenever my mouse is over an object it gets an outline. I would like the outline colour to change depending on which type of object is currently being highlighted. Ive been playing around with some of the settings but so far Ive been unable to get it working. Ive also tried deleting the post process volume from my level and added a post process to each individual object that I want to have an outline but all the object seem to share one post process. Any ideas how I can solve this?
Im using the outline materials provided in this tutorial. Tutorial – Creating outline effect around objects | Unreal Engine 4 blog

To make the color respond to the hover type, you need to make an Dynamic Instance Material and assign it to the PP volume. You have to do that dynamically (through blueprint).
This material should have a color property that you will set through the blueprint once you hover.

Dynamic Material YT Tutorial

Thanks for your reply. Ive been trying to solve this for many hours. I already stumbled upon thaty video but my pproblem is that I dont know how to access the PP volumes material. How can I assign a dynamic material to a post proccess.

So the way I imagine it working is. OnBeginCursorOver —> CreateDynamicMaterial —> Assign that material to the Post Proccess Volume?
or should I create the dynamic material in the level blueprint assing it to the PP Volume and then from an object blupeirnt get a reference to that dynamic material and change its parameters?

It is better to create it once (probably when the level starts, you could create it in the persistent level blueprint). You Save it as variable. Then you access that variable from your blueprint. (your second suggestion)
You could add a PP shader to player camera w/o having one in the level.

This is valid if you have camera on your character. And if you have no PP Volume on the level (as it will override the PP on the camera).

10 Likes

There are two Create dynamic Material nodes - one is for component, one is Kismet, use last one. Hope you figured that out.

Thanks for your reply. Im still a bit lost tbh. Im trying to follow what you suggested. If I try to create it the dynamic material within the level blueprint it gives me an error telling me to connect something to target since Self is not a primitive component. That make sense but I just dont know what has to be connected to the target.

Nvm, I managed to get it working thanks a lot. I ended up creating the material within the character blueprint on beginplay.
Alos when I dragged the (Set members in PostPorcessSettings) node there was no Post Process Material input, in order for it to show up you need to click on the node and then type post process in the search bar and tick the box(As Pin).

how did you solve this ?

I desperately try to change my outline color too, but once the material is added to the volume PP, it does not work anymore

Hi! I’m a bit late but I found a solution! since this one doesn’t work for me… You need to create a material parameter collection, under material & texture. Then in it, you can create ‘‘scalar parameters’’ and ''vector parameters.
In your material, you can then go search what you just created in the ‘‘palette’’, look for ‘‘parameters’’, then ‘‘Collection Parameters’’, you can connect it where you want. (i suggest in a multiplier or an alpha channel)
After you need to specify the collection and the parameters name. You can then go search the parameter’s value in your blueprint in a node called: “set scalar (or vector) parameter value” and you can access the same material parameter collection you just create and change in your blueprint by changing the ‘‘parameter value’’!

3 Likes

awesome !!! THANKS !

This solved my query about how to apply the material, thank you!