New material called ForceField in now live. Its enabled on all platforms for everybody to use. The material supports parts, CSGs, MeshParts and etc.
Enum.Material.ForceField enables force field behavior for objects it’s applied to. It has four main features:
- Fresnel (and optionally depth where its supported) driven transparency which makes the force field visible near edges.
- Vertex alpha driven outlines that allow having a visible border even on flat parts of force fields. This persistent opacity is controlled with alpha channel of vertex color, where 1 is no forced color and 0 is fully forced color.
- Vertex color tinting can be used just as with any other material.
- Animation for mesh based (for now) parts with custom textures. The ‘r’ channel of texture is used to calculate visibility of force field parts over time (there’s a sliding window of currently ‘visible’ range of values). The alpha channel controls how visible the texture pattern is.
The material has been in production for a while now even though we didn’t make any public announcements because we wanted to gather more information on use cases and possible enhancements internally. After careful examination of all the feedback it was clear that we need to make some adjustments to bring the best experience and cover most of the use cases. There’s two main differences with what was initially released and some of you might have played with. The first one is about persistent opacity - it used to be controlled by the red channel of vertex color and value of 0 meant no persistent opacity and 1 meant fully opaque vertex. This is now controlled by vertex alpha and value of 1 means no persistent opacity and 0 means fully opaque vertex. This allows to use existing meshes as is without the need to draw custom vertex color. The other big change - ‘rgb’ channels of vertex color are now used to tint the forcefield just as in other base materials. This would mean that existing mesh based forcefields might look broken but we strongly believe that those changes were necessary to bring the best experience.