you shouldn’t be trying to change the Default PostProcessSettings directly, but rather the already-initialized PP on the Player.
I actually don’t animate them so my process is more rudimentary. it’s probably not relevant to you but in case you do Material Effects it might be useful:
to do that I followed this method:
from the PlayerController’s LocalPlayer get PlayerPostProcess and Find the PP you want by name (the name is what you put in the PP node in the chain in the editor), typecasted
change the settings on it
// find them and cache them
myUberPP = UberPostProcessEffect(LocalPlayer(myPlayerController.Player).PlayerPostProcess.FindPostProcessEffect('UberPP'));
mySSAO = AmbientOcclusionEffect(LocalPlayer(myPlayerController.Player).PlayerPostProcess.FindPostProcessEffect('SSAO'));
myCustomMatPP = MaterialEffect(LocalPlayer(myPlayerController.Player).PlayerPostProcess.FindPostProcessEffect('SomeMaterialPP'));
// and so on
// example of changing
myUberPP.MotionBlurAmount = 0.0f;
for you it’s probably as simple as replacing one line, where you get newPpSettings:
if you modify the PP make sure you remove the PP chain on level change because references to the PP settings are especially prone to fail with garbage collection and cause crashes. I clear them like so:
// my playercontroller
simulated event Destroyed()
if (Player != None)
I put that not only on Destroyed() but also on ClientRestartMap(). there might be other places needed for you since your game is multiplayer
This works just fine for me, and nothing undoes the settings that I change manually. I don’t know the downsides to how I do it. Maybe this approach could cause problems if I used more post process volumes, or if my game were multiplayer.
Maybe I should start doing as @Chosker says and start trying to access PlayerPostProcess instead.
One thing I was never able to do was fade in a color lookup table via UScript. If you set a new color lookup table in a post process volume, it fades in very nicely. If you try to change the color lookup table via UScript, it changes immediately, and I don’t see any way to fade into the change. Any idea how you could fade into that change?
@Nathaniel3W I think you’ll find that if you provide a BlendInTime to OverridePostProcessSettings(), it will blend in as expected, but then blend out once it’s reached it’s target (ie: it won’t stay on the effect).