UE3 - UDK Post process settings wont override.

  • Two Factor Authentication is now available on BeyondUnreal Forums. To configure it, visit your Profile and look for the "Two Step Verification" option on the left side. We can send codes via email (may be slower) or you can set up any TOTP Authenticator app on your phone (Authy, Google Authenticator, etc) to deliver codes. It is highly recommended that you configure this to keep your account safe.

macattackk

New Member
Mar 25, 2012
2
0
0
Hey, so im trying to change the post process settings based on the player's movement speed. This function is called in a tick and changes smoothly and gradually as the player is attacked.

Specifically im trying to desaturate the scene as the player is slowed down. I have a log in there to check the desaturation and it works perfectly. As the player is slowed down, the desaturation value gradually goes from 0 to 1. It just doesnt actually desaturate the scene. I suppose its something wrong with LocalPlayer(PlayerController(Target.Controller).Pl ayer).OverridePostProcessSettings(NewPPSettings); but ive used this before and it worked.

Anyone know whats going on? Am I not referencing the player's post process desaturation value correctly? how do i log the player's post process desaturation value instead of just my new settings version of it?

Code:
function SlowDownPlayer()
    {
        local PostProcessSettings NewPPSettings;

        NewPPSettings = LocalPlayer(PlayerController(Target.Controller).Player).CurrentPPInfo.LastSettings;

        NewPPSettings.bEnableSceneEffect = true;

        if(Target.GroundSpeed > 0)
        {
            Target.GroundSpeed -= 1;
            
            //Set scene desaturation to the Player's movement speed percentage.
            NewPPSettings.Scene_Desaturation = 1 - (Target.GroundSpeed/Target.default.GroundSpeed);

            //Override the Player's post process settings with the augmented one.
            LocalPlayer(PlayerController(Target.Controller).Player).OverridePostProcessSettings(NewPPSettings);

            `log(NewPPSettings.Scene_Desaturation);
        }
    }
 
Last edited:

macattackk

New Member
Mar 25, 2012
2
0
0
hey nelson thanks for the reply. The problem I had was I was using custom post process chains and it didnt want to override their settings. it only works on a default post process chain i guess. what i did instead was create an uberpostprocesseffect in the chain i was using, then referred to it and modified the desaturation. Overriding post process settings happens slowly anyway. it takes a second for it to load which is what i think you are talking about.

here is the code:

Code:
function SlowDownPlayer()
    {
        local PostProcessChain CurrentPPChain;
        local UberPostProcessEffect DieingDesaturation;

        CurrentPPChain = LocalPlayer(PlayerController(Target.Controller).Player).GetPostProcessChain(0);
        DieingDesaturation = UberPostProcessEffect(CurrentPPChain.FindPostProcessEffect('Desaturate'));

        if(Target.GroundSpeed > 0)
        {
            Target.GroundSpeed -= 1;

            //Set scene desaturation to the Player's movement speed percentage.
            DieingDesaturation.SceneDesaturation = 1 - (Target.GroundSpeed/Target.default.GroundSpeed);
        }
 
Last edited: