Post-Processing Controller
The post-processing effect embedded in Unity is provided as a Scriptable Object rather than MonoBehaviour, so it cannot be keyframed in animation clips, timelines, etc.
To overcome these limitations, the Post-Processing Controller provides serialized parameters for each of the post-processing effects.
Simply add a PostProcessing Controller to a game object with a Volume component, and you can keyframe postprocessing effects from animation clips, timelines!
Featrues
– The post-processing effect can be used in the same way as MonoBehaviour fields in animation.
– Updates only variables that are enabled and whose values have changed.
– Provides the same GUI as the original post-processing GUI.
– Automatically reflects the order of effects in a post-processing volume profile.
– Unused effects can be automatically hidden.
– It was tested at UNI.T 2019 LTS, 2020 LTS, 2021.2.
– URP, HDRP Support.
- Asmdef Provided.
– It is also available in the Enter Play Mode setting in the Unity Editor without any problems.
It's very simple to use.
There is only one MonoBehaviour script in the package :
PostProcessingController is a script that provides parameters for components belonging to a Volume Profile internally as structs rather than classes. This is because Unity cannot animate serialized classes within the inspector.
First, add the Post Processing Controller to the Game Object that contains the Volume. The Post Processing Controller automatically caches the Volume.
The scripts work even if they are on different GameObjects, but it is recommended that you add it to the same GameObject.
When the Post Processing Controller is connected, all parameters in the Volume are updated in the Post Processing Controller. If you want to change the parameters of the component, you can change them in the PostProcessing Controller instead of the Volume.
After that, just use it as if you were animating a MonoBehaviour script!
Some fields may not be displayed in red even though the animation is being recorded due to the process of drawing the GUI. (ex. trackball fields in Lift Gamma Gain)
Please see the Limitation tab for more information.
The PostProcessing Controller updates only the enable component modules on a frame-by-frame basis. To minimize the impact on performance, all updates ensure that the value has changed and run actual updates only if the value has changed.
If a parameter in the actual Volume Profile is disabled even if the parameters are bound to the animation clip, there will be little performance cost because rendering updates will not occur. It only costs as much as changing one typical variable in an animation.
The PostProcessing Controller is a script that only sets the value of each variable whose value has changed in Volume Profile, so it is important to see the rendering cost of each component itself. Therefore, it is recommended that you consult Unity's Volume documentation to optimize the performance of post-processing effects.
– Cannot animate parameters.
This is because the field type of the parameter is a type that cannot be animated.
To animate this effect, it is recommended that you blend the weights of two Post Processing Volumes with different values to mix.
– As the name suggests, the PostProcessing Controller only works with Post-Processing effects.
For example, HDRP has several volume components in addition to Post Processing, but this script applies only to Post Processing.
– Unable to animate Quality drop-down.
This field is only a preset of other fields, so when you animate a variable that affects quality, it is the same as setting "Quality == Custom" automatically.
– Some fields are recording animations but are not displayed in red.
But it's just a matter of the process of drawing the GUI, and it actually works well.
If you are confused during key framing, it is recommended that you check the bound properties in the animation window to ensure that the field is being written correctly.
– Only URP and HDRP are supported.
Links List
Address List
BUSINESS
olivecrow.games@gmail.com
BUG REPORT & QUESTION
olivecrow.report@gmail.com
olivecrow
Indie Game Developer