The AddOrUpdateBlendable blueprint function is exposed where you can find PostProcessSettings. It allows convenient access to the blendables container. You pass in the object that has the
Blendables container, the weight and a reference to the blendable. If the reference was already found in the container it simply updates the weight. It doesn't remove container elements as that
could confuse other code traversing the container and has implications to the garbage collection. There is no real performance cost a blendable reference of a weight of 0 as removing the element
should never be needed.
Here you can see how to reference a blendable asset in the content browser:
The variable 'BlendableVar' of the type LightPropagationVolumeBlendable (Object Reference) is used to reference an LightPropagationVolumeBlendable asset called 'LPV0'.
With the ConstructObjectFromClass blueprint function you can create a new blendable in the blueprint. By setting the Outer of the new object to the object that has the blendables container
you get the same behavior as if you would created the object in the UI (create the blendable as part of the object).
Here we create an object of the type LightpropagationVolumeBlendable, get the settings and set some members with the SetMembersIn... function.
Note: At the moment you need to manually put the override flag to true (checked checkbox), otherwise the property with the same name would not get picked up.
For experiments you can use the showflag VisualizeLPV (in editor: Visualize/Light Propagation Volume) to display the blended properties.
This was implemented in C++ code and only for this blendable type but later we should be able to expose any property without the need to do any code changes.
The showflag VisualizeLPV displays the blended values which makes it useful for debugging.