TRAILER -- TUTORIAL -- DISCORD COMMUNITY -- SHOWCASE BUILD & EXAMPLE PROJECT -- DOCUMENTATION
This plugin makes it possible to Paint and Remove Vertex Colors in Runtime on Static, Skeletal or Spline Meshes in various ways that can enable New Mechanics, Game Modes or just incredible attention to detail!
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 as well as the Native EPhysicsSurface of each Vertex Color Channel.
You can also get the Colors of Each Bone, and the Average Color and Physics Surface Within an Area on a Mesh, so you can run logic in case the player has for instance Painted / Removed Vertex Colors on the Majority of an area.
You can now also get the Estimated Color and Physics Surface at the Actual Hit Location, which is highly useful if the Mesh has few vertices and the hit location might be between vertices, and you want to run logic such as SFX or VFX based on what the color is at the actual Hit Location!
Supports Multithreading so you can paint on meshes with an extremely high vertex count with the FPS barely being affected. The plugin also comes with a Rapid Json Module so you can Serialize & Deserialize data into strings up to 5x faster than the Built in one!
Showcases
Line of Sight Paint Condition Showcases: Dry Surfaces where the Sun Hits - Dry Character where the Sun Hits - Combined with UDS Paint Rain & Dry
-Vehicle and Paint on Wheel Showcase
Ultra Dynamic Sky Showcases: -UDS + Paint at Random Vertices - UDS + Slay Animation Assets - Simple Ultra Dynamic Sky
-Mario Galaxy x Epic Mickey Painting Showcase
Power Wash Sim (Coming Soon)
Vehicle Deformation (Coming Soon)
Performance Showcases
-Paint Task Speed Showcase when Painting on Different Heavy Meshes
-Painting on 980k Vertices FPS Showcase
-Painting on 50k Vertices 5 LODs FPS Showcase
User Showcases
Other
-Porting Fire Example to a clean C++ Project Tutorial
-Extend 4 Vertex Channels to 8 (NOTE that the Channels won't be able to blend into each other using this method)
Upcoming Features
-Landscape Layer Info Painting in Runtime (Hopefully this is possible)
-Inverse Falloff Option - Instead of Painting stronger in the middle and less on the edges, we do the opposite. Can be useful if you for instance have a grenade that goes off on a puddle, and afterwards you want the puddle to go back to how it was before
-Compare Colors Feature - So when painting/detecting, we can compare the result of those colors with a color array the player sent in. Useful if you have a game where the player has to paint patterns in a certain way for tutorials or something similar
-Paint with different colors at different distances with Paint At Location, so if you have a grenade go off, you can have the center be glowing, around it black, and on the edges more dirt or something similar, using just 1 Paint Task.
-Multithreading for Cloth Overlap Component
+ more
Post Launch Added Features
-Massive performance improvement where you can now paint on a mesh with up to 1 Million vertices with barely any change to the FPS.
-Paint With different types of Conditions. This is so the user has more control of When color is Allowed to be applied using for instance Line of Sight, so the vertex has to have line of sight to an Actor or Location, for instance the Sun to become Dried if the Mesh was Wet. Current Vertex Color Has to be >= and <= a certain Value, and finally only Paint on Specified Bones.
-Get Colors as Serialized Strings which can be used for Much more optimized Save / Load Systems, or with Web Services if you for instance want to store how a player customized their Weapon Skin using Vertex Colors. Should theoretically allow for Replay Systems.
-Vehicle and Paint on Wheel Solution in the Example Project
-Paint Within Area - Within Landscapes
-Centralized Solution to get the Most Dominant Surface, and what Colors to Apply Based of it
-Paint Entire Mesh at Random Vertices. Simulate for instance Rain or Snow by having the colors be applied randomly over the Mesh, which is much cheaper than using Particle Collisions.
-Improved UX with Custom Nodes for all Paint and Detection Types as well as for Utility Functions where the user can get error messages if they haven't properly connected necessary things needed.
-Get Estimated Color at Actual Hit Location, highly useful if the Mesh has few vertices.
The plugin itself does not contain any Art Assets.
5.2 STATUS
Everything works as intended and a new patch will be up soon. Except for Spline Mesh Painting seems to not work, even work in Editor Time on a project not using the plugin. I have reached out to Epic Regarding this and hopefully it will be fixed!
Technical Details
Features:
- Detect Get Closest Vertex Data
- Detect Get Estimated Color at Actual Hit Location
- Detect Get All Vertex Colors Only
- Paint Vertex Colors at Location
- Paint Vertex Colors Within Area
- Paint Vertex Color on Entire Mesh or on Random Vertices Over the Entire Mesh. Great for Rain or Snow etc.
- Create and Paint Color Snippets
- Affect Chaos Cloth Physics (UE5 EXCLUSIVE)
- Multithreading for greatly improved performance
- Rapid Json Module which is up to 5x faster than the built in one. Pretty much the same module that is in my other Rapid Json Plugin, so if you own this plugin, then you don't need to buy that one.
Number of Blueprints: 3
Number of Widget Blueprints: 3
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 (Only Windows Tested)
Supported Target Build Platforms: Win64, Mac, Linux, Android, IOS, PS4, XboxOne (Only Win64 Tested)