What an amazing plugin. Truly awesome. I was wondering,
about to purchase this , just curious if you have any specials sales planned for the holidays… I know its not a fair question lol, but I have the worst luck of buying assets and then a week later they are on sale for cheaper.
I would be using it in a 4.17 engine built from source, since Croft up there seemed to have no issue copying over the plugin and compiling it… I am hopeful it will work out fine for me as well… though if you could add any documentation for adding to a source compiled engine that would be great too…
Thanks much! And truly amazing…
If I was to make a request… It would be for you to make tutorial videos on methods for things like world build and such to minimize performance loss (non related to this plugin but you seem like a warlock)
Thank you Yes! The plugin will be 50% off during the holiday sale; Very soon!
Definitely. I use this plugin from source builds too, no special steps are required. You can either copy the plugin straight into your own project’s Plugins folder or your source build’s Engine\Plugins\ folder depending on your preferred workflow.
For accessing the API from C++ remember to add the Module “DonMeshPainting” as a dependency in your Builds.cs file (PublicDependencyModuleNames) as usual.
Thanks again
Quite busy these days building “Drunk On Nectar”; will look for opportunities to weave something into the mix whenever I can
[USER=“4812”]Daniel Skipper Games[/USER] - This issue has been resolved in a local build.
Some new features like compression support for saved data is also planned; if possible an out-of-cycle feature update may be released for the plugin with these improvements.
For those curious - the logging issue was solved by creating a custom UObject archiver (i.e. no longer inheriting from FNameAsStringProxyArchive) that handles Nones/nulls/ as a special case. It’s the null objects (in this case, optional references for decal textures/etc) that were flooding the logs. All clean now
Sweet, man… thanks! See lol… I would of bought it and right after it would go on sale… happens all the time! … thanks for the info… and Drunk on Nectar looks amazing…
The links were broken while renaming some content, sorry for that.
@Kees.Ii - The KB Search page still needs to be fixed. I’ve sent a support request to my KB provider to find an alternative way of running the search box (it currently needs access to an admin-only part of the website for running some Ajax requests apparently…)
Thanks to both of you for bringing this to my attention
For your usecase you could use a decal dirt texture and accumulate dirt trails on the landscape and the car as well. This will be driven by your materials with a node provided by the plugin.
If you meant “3D Particles” like ones in Cascade, then no, the plugin doesn’t deal with those.
Hope that answered your question Also check out the Paint Stroke and Quick Start knowledge base articles to get a sense of the overall workflow.
Sorry, I was referring to the drawing of decals through your plugin on the skeletal mesh when the particles collided with the skeletal mesh. Something like this: https://www.youtube.com/watch?v=kLeKe2SHu78 but on the skeletal meshes.
That video uses the “On Particle Collide” event to spawn decals whenever a particle touches the ground (presumably scene collision/etc is turned on, I didn’t see the full video).
Anyway, you could use the same approach and just pass that data to the plugin’s Paint Stroke node as a Hit Result.
Few things to note:- The plugin requires a Hit Result to work so you would need to wrap the particle collision event’s data into a custom Hit Result first. As the particle event doesn’t tell you which component it collided with you’d need to manually seed the list of desired splatter surfaces (eg: Your character’s skeletal mesh, landscape floor, etc).
The plugin is smart enough to ignore any decal requests that do not touch the character’s skeletal body, so you don’t need to worry about that. Proper setup will be key for your usecase though as in the absence of “true” hit results you’d need to convert cascade’s collision events into a hit result; the decision making of which actual component to seed those Hit Results with will be yours to make.
Have you tested this with morph targets on skeletal meshes? I noticed that for the one frame or so it takes to update the mesh paint masks, the morph targets will completely disappear and reappear. Turning off the paint BP node temporarily seems to prevent the flickering but then I don’t get meshpaint anymore.
Looks like there’s a known engine issue where morph targets briefly reset after you apply a new material on the mesh. This answer hub post has a couple of users describing the same thing. A staff marked the issue as resolved in 4.7.2 but if you use the “Frame Skip” feature in PIE you can clearly see the issue still persists (tested on 4.18). For our high-frequency usecase the flickering becomes even more obvious, so will definitely need to find a way around this.
I’m doing some testing on previous engine versions (4.15/etc) to gather more data on this issue. Will keep you posted.
PS: Today is the final day of the 50% discount for this plugin!
Fix available for 4.15 and 4.16 users
If you’re using these engine versions follow these steps:-
In your Content Browser’s View options enable the “Show Plugin Content” button.
Navigate to the “Don Mesh Painting Content” folder and open the Materials/PositionsTextureBaking subfolder.
Open all the material assets in this folder and in the details panel search for the “Use With Morph Targets” checkbox.
Enable the checkbox for each material and save them. You will now be able to paint on meshes with morphs (corrective/static).
Status for 4.17 and 4.18 users
With 4.17 there was a regression of an engine bug which resets morph targets for a frame when Set Material is called. This is what causes the flickering described above. I have reported this issue on answerhub (report link) for Epic to take a look at, hopefully it will be fixed.
Appreciate your patience on this issue, please track the answerhub posts linked above if you are affected by this bug.
Well, I guess I was late to the party and missed out on the sale but this very well may be what I’ve been looking for. Could this be used in a city building game for allowing the player to draw roads on the terrain, like having large decals as road pieces that are restricted in a way that they would sort of snap to one another? Or maybe they paint a solid color where they want the roads, and then click a finish button or something and have a function that goes back and paints the roads over the lines they painted? And then can I get the world location from where they painted so I would be able to “connect” static meshes to the edges of the the roads, in the same way other city builders where services need a connection to roads? And of course remove any grass, rocks, trees, etc. where they paint?