A Plugin that allows the user to Paint, Remove and Detect Vertex Colors in Runtime in several different ways. Can enable Extreme Audio-Visual Fidelity, as well as new Game Modes and Gameplay Possibilities!
This plugin makes it possible to Paint and Remove Vertex Colors in Runtime on Static, Skeletal, Spline and Dynamic Meshes in several different ways that can enable New Mechanics, Game Modes or just incredible attention to detail!
You paint on Geometry Collection Meshes as well, but it is 5.3 Editor Only and quite Experimental.
You can also Detect Vertex Colors by getting the Data of the Closest Vertex to a Hit Location such as Vertex Color, Position, Normal, Material, UVs, Native EPhysicsSurface, as well as Compare colors if you want to check if a specific Pattern or similar has been painted.
You can also get the Colors of Each Bone, and the Average Color and Physics Surface Within an Area, so you can run logic in case the player has for instance Painted / Removed Vertex Colors on the Majority of an area.
You can also get the Estimated Color and Physics Surface at the Actual Hit Location, which is highly useful if the Mesh has few vertices. Includes a Rapid Json Module so you can Serialize & De-Serialize data up to 5x faster, and get vertex colors as Serialized String.
Supports Multithreading so you can paint on meshes with an extremely high vertex count with the FPS barely being affected!
Vertex Colors vs. Runtime Virtual Texture & Decals
With Vertex Colors you have the power of the Material Editor to manipulate things per Vertex like Paint/Removing Colors! This may require you to have a higher vertex count for something that may otherwise not need it like a flat floor, which ofc isn't an issue for RVTs or Decals.
Decals are also faster than painting with colors, but each Decal is also a Draw Call, which may affect performance.
With Vertex Colors we can also Detect, and not just what Physics Surface and Colors on Closest Vertex, but also what % of each channel is painted, and a lot of other more.
Using Latest Plugin with old Engine Versions
We can't update plugins for 4.27-5.0 anymore. However, you can use the latest if you have a C++ project by copying the plugin from a new version, and do some modifications, just follow this Tutorial.
For 5.0 you only have to change the engine version in the .uplugin file and re-compile.
-Paint up to 12 Surfaces on one Material
-Landscape Layer Info Painting in Runtime (Hopefully this is possible)
Post Launch Added Features
-Dynamic Mesh & Geometry Collection Component Support
-Override Vertex Colors to Apply. So users can create their own Paint Conditions!
-Paint Using Physics Surface. So instead of hard setting the values on RGBA, you can for instance paint Water Surface, and it applies colors to whatever channel Water is registered to. If Physics Surface Families is setup, then even if it doesn't have Water, but has child, for instance Asphalt-Water, then it can apply to that instead, or vice versa, which makes this extremely useful.
-Compare Colors to Detect Painted Pattern. So when painting/detecting, we can compare the result of those colors with a color array the player sent in.
-Paint With different types of Conditions. For instance Line of Sight, to the Sun for example to Dry Faster on parts of a wet Mesh.
-Paint Wheels Component. A component that enables you to paint the wheels of a vehicle with what it drives over, and/or paint the surface under the wheel with whatever is on it.
-Paint Entire Mesh at Random Vertices. Simulate for instance Rain or Snow by having the colors be applied randomly over the Mesh (cheaper than using Particle Collisions).
-Geometry Collection support is 5.3 & Editor Only. Not possible to override colors in build, but will hopefully come in the future!
-Spline Mesh Vertex Painting is bugged in 5.2-5.3, even in Editor Time and isn't plugin related: UE-186643
-The Plugin has no Art Assets.
Number of Blueprints: 5
Number of Widget Blueprints: 4
Number of C++ Classes: 52
Network Replicated: The plugin does extremely little with replication, so the user has more control of How they want things to Replicate, since all projects has different needs depending on optimization, anti cheat structure etc.
The Cloth Overlap Component is the only one that does anything with replication and has an clothOverlapEnabled Replicated bool, so if changed in Runtime, even hot joiners will get the cloth to overlap.
Supported Development Platforms: Windows, Linux, Mac