Runtime Vertex Paint || The Best Bang-for-Buck Plugin
HTML-код
- Опубликовано: 15 янв 2023
- The first 1,000 people to use this link will get a 1 month free trial of Skillshare: skl.sh/prismaticadev01231
Hey Prismaticrew! Today we're having a look at an extremely useful set of tools that can be used for hundreds of different things. If you've ever wanted to do vehicle damage, character damage, Splatoon-style painting or just letting players paint and customise things as runtime, then this is the video for you!
LINK to the Marketplace page: www.unrealengine.com/marketpl...
----------------------------
Patreon: / prismaticadev
Twitch: / prismaticadev
Discord: / discord
RUclips: / prismaticadev
Twitter: / prismaticadev
----------------------------
Computer Specs:
Ryzen 3900x 12-core CPU
MSI Geforce RTX 2080 Super
64GB Corsair RAM
One of those fancy nvme m.2 SSD's
Programs of choice:
Unreal Engine - (Game Dev)
Blender - (Animation and Modelling)
OBS - (Video/screen capture)
Davinci Resolve - (Video editing)
Adobe Photoshop - (Graphics and Texturing)
ProTools 11 - (Compositions and mixing)
OldSchool Runescape - (The best game)
Filmed using:
Sony A7s2 body
Sony 24-70mm f/2.8 GM lens
Yonguo YN360 LED's for colour
Yongnuo YN760 chip LED w/ Godox softbox for key
My lovely cats names are Boycat, Girlcat and Ladycat :)
There is something about you that is not found in the rest of the RUclipsrs. Simply, you explain things, how they work and how to use them, unlike others. Others give us what we want and we cannot understand anything of what they do. We just do what they ask, but you are different.
Can you name someone in particular?
@@timsonss Uisco
Matt asplaned
You have ryan laley is good
Its because this dude actually knows what he is talking about. Only people with extreme depth of their "product" can break it down so simply. Keep it up mate. Its so great.
Thank you so much for featuring my plugin
I am thinking about buying your Plugin for Real! It seems to check all the boxes I had planned to figure out myself (by fiddling with Dynamic Materials, becoming grey in doing so).
I only got one big Question. I do intent to use Vertex Shader Animations for clothes and hair instead of utilizing the Unreal Cloth-Physics. (Far away of being there, still studying tutorials for that).
Could I address your wetlook effects on Vertex animated hair and clothes as well? Sorry if my question is off, I am still on a noob level.
@@Chareidos Great, hope to see you in the discord sometime in the future then :)
Yup you can use the plugin and vertex colors to drive vertex animations, if you for instance want your character to walk through a water fall and only the part of your character that gets wet should run the animations! I haven't done it myself because here is an example of a guy that has:
ruclips.net/video/LGg3Vh8RZN4/видео.html
This is a feature I've always felt should exist in game engines, what a cool plugin.
I don't know how you do it, but every time I want to learn something you post a video about that thing. Literally the most helpful channel for people who aren't beginners with game dev but want to learn something super helpful and cool.
I bought this the moment I saw it on the Marketplace. I haven't used it yet but I knew I needed it 🤣
I'm also a very much vanilla engine kind of guy, but I do have a small handful of plugins that I am eyeing on the marketplace and this one looks like one that has a lot of use cases, looks neat!
Thank you for featuring this very important plugin. I do hope you make a series on this one, including Dragon IK physics and the newer Engore: Procedural Dismemberment. I think all of use would love to see a series on each one. :)
Great find! Super useful plugin. I'll definitely be picking this up 😻
I am sweating with excitement at this plugin
Uooh... I think you have found the Plugin of my choice! First Time Thinking about buying a Plugin! Thank You!
awesome plugin and video!
Interesting.. Here's an idea, blood splatter that can hit npcs and cause them to panic.
A lot you could do with this tool.
You can do deformations with vertex paint for a car like you did in the video and probably also combine with a blend shape as well to deform the mesh in a more authored way.
Been looking for exactly this! Would love to see more content like this if you find more gems on the marketplace
thank you for this blessing
I am not 100% sure that GPU can instance meshes with different vertex colors, so it may causes extra drawcalls sometimes. (You can't instance meshes manually with different vertex colors... )
Yep yep, that is correct. It still outweighs every other option (decals, render targets) in terms of performance for drawing on meshes but that is definitely something to keep in mind
I wish there was a tutorial on actually implementing it... bought it today and have zero idea how to use it, the documentation doesnt help
13:59 What's "Splatoon?" do you mean the hit video game Splaboon?
I wish it worked with Nanite
Hopefully they can figure out vertex paint with Nanite - it’s one of the key features holding it back. Not being able to create variation with vertex paint is very limiting
I tested this again and it turned out my project wasn't 100% enabled for nanite because of some DirectX shenanigans.
I've been able to reproduce this issue now where with nanite enabled, i can no longer paint on it. The task is a success but i see no difference in vertex colors.
I will look into this and hopefully have a fix for the next patch :)
Thanks for bringing this to my attention!
Is it possible to save the vertex paint? So that multiple players would see the same paint and also you could load a save file and the paint stays consistent.
It’s something that is being thought about. You could set up a sort of “paint replay” that executes all the commands in order which would recreate it on save/load and also across clients
@@PrismaticaDev would be cool if there was a way to bake it to a texture after a certain amount of time
Hi.
Yeah the Example Project has an example of how you can Save and Load vertex colors onto a SaveGame Class. Another solution is as PrismaticaDev Mentionted save the paint tasks that a mesh got to an array and when you Load, you iterate through them and re-paint them. This is more leightweight storage wise but there'll be a bunch of tasks running once Loading. You can optimize the array by clearing it if the paint task was a paint job that Set the colors, or if it was a color snippet task, since then all the previous tasks before it isn't relevant anymore.
I'm gonna look into Saving Colors into a Snippet in Runtime onto Data Assets, which is essentially the same thing as the save game class where each vertex color get stored, but will be more comfortable since instead of Loading you can just Paint a Color Snippet
Hey Pris, were you able to get this to work on landscapes? Or are you using your method still from your video?
Is there are any chance to have similar review on "Next Gen Destruction Toolkit"?
Or basically "5 minutes Chaos Destruction" series?
have a good day
12:43 SOLD!! DING DING DING, folks we have a winner.
You should get 10% of the profits my dude.
Can you do this for terrain to???? I'm thinking, gradually have the wheel of my vehicle carve tracks in the ground, and let it lerp in a mud texture at the deepest parts.
Or rather, what im asking is, can you have a texture appear where the vertex paint is applied, or can it only be a flat color?
IFAIK different vertex paint means separate draw calls. Dunno about this 'real time' thing. But instancing for example doesn't work for meshes with different vertex paint.
That is correct, however I think this is most useful on meshes like buildings and larger props, as well as characters (which can't be instanced anyway). Still very good to keep in mind though in case someone was thinking of having thousands of paintable things on screen at once haha
Doesn't changing vertex colors in runtime break batches/draw calls? Does this plugin counteract that?
Which performs better, painting with vertex or painting with render targets?
This method by far - render targets, especially when using an unwrap/capture setup can be hella expensive.
In most cases this should be cheaper. But one thing is that unique vertex colors will disable auto instancing, as far as I know. So each mesh is its own draw call.
Would be interesting to see if nanite meshes also need a draw calls for unique vertex colors.
So for many small meshes I would use render targets or try to merge them into larger meshes. Or paint them with per instance custom data.
Wait, could this be used to cut objects at runtime too then?
wow
Hello Prismatica, can you enable paid subscription for this channel? I know you have patreon but I don't ever log into that website and neither does many other so I think it would be additional gain for you. Big fan of your tutorials
WTF? Why it's so big deal? I always thought that this stuff should be a part of the engine by default...
You would think so! Haha but it's only doable in-editor by default.
Yeah i totally agree, which is why I priced it somewhat low since I think it's something that everyone should have access to and make cool stuff with :)
The only things that are kinda eh is that it's limited to RGBA, doesn't work with Nanite...yet, and, I think, that It will look great on high poly meshes, but won't look that good on low poly meshes, because there is simply fewer vertices there to paint on? Is that right?
Hi. I just tested Nanite in the 5.1 Example Project by enabling it in the project settings and on the mesh, and it seems to work as intended. Let me know if you can't get it to work. Remember that you have to set CPU Access to True on Static Meshes :)
@@Alex_River Ah, Sorry, I was just making asumptions, cause I thought that it had something to do with the world position offset not working with nanite. But thanks for clarifying that it does work. My bad.
@@OzirV1000 np! It's good that everyone brings up any potential bugs so they can be squashed immediately xD
Will do some extensive testing regarding Nanite just to make sure everything is 100% :)
You where right actually, it turns out Nanite wasn't 100% Enabled for my project because you had to implicitly set it to use DirectX12 in project settings->Platforms->Windows.
When i enabled it i couldn't paint on the mesh anymore, the task was a success but no visual difference was seen on the mesh.
Will look into this and can hopefully have a fix for the next patch!
Thanks for bringing it to my attention!
@@Alex_River Ah, really? In that case, I'm fairly certain that it would be really difficult to fix on your end. I think that the UE devs are working on Nanite support for this kind of thing on their side, which they have already prototyped for UE 5.1 that only works for Foliage so far, I'm not sure though.