Stylised animated grass and painting look in Blender

Video Statistics and Information

Video
Captions Word Cloud
Reddit Comments
Captions
hi everyone pierre from p2 design from popular demand i will show you how to create animated stylized grass it's the same process to get the painting stylized effects and the cool thing with this method is that you will get also shadows casting onto the grass this is the same method i've used into the first teaser for my upcoming animation course let's get started this tutorial is sponsored by myself if you want to learn all my rigging technique or if you want to create stylized character from scratch you will find all you need on my gumroad page use the code p2 design and get 10 on whatever product you want to get the desired effect we will need to manipulate the normals this is something that we are really used to as this is what we do whenever we are using a normal map to create faked complex surfaces onto a low poly character for example the rgb normal map once converted will change the way the light is bouncing on your character allowing you to fake eye poly details onto a lopoli model by default normals are perpendicular to the surface or perpendicular to a face when we plug a normal map onto our character the red values of this normal map will bend the normals along the x-axis while the green channel will bend the normals along the y-axis the blue channel is generally set to 1 since it defines the default orientation of the normals let's start by creating the ground where our grass will be growing let's add a plane i will subdivide it a bunch of time then i will modify it using the proportional editing to get a more organic surface finally in object mode i will right click on it and set the shading to smooth now i will add a plane that will serve as a particle and will be our grass strength in edit mode i will push the plane along the positive y-axis until the origin is aligned with the lower edge when you create a hair particle system and you use an object to replace the actual hair by default they will grow on the surface following their positive y-axis and their origin will define the zero altitude compared to the surface they are growing on let's select our ground go to the particle system add a particle system that i will call grass and i will also name the particle setting grass we need to switch from emitter to hair particle system for the time being i will set the number to 500 and i will switch the render to object and select our strand plane from there it will be cool to add a bit of randomness into the orientation of our strand so let's enable the advanced options this will allow us to get access to the rotation enable it and switch the orientation of the strand from velocity to normals if we give it a random rotation it will go a bit crazy while if we give it a random face they will rotate along their y-axis from there we can increase the number of particles to what leads you and also change the scale so that it looks more fluffy adding a bit of randomness to the scale is also welcome as it will make each particle having a different size this effect will work in both cycles and ev so we will use ev to get it real time i will select our ground object i will give it a new material that i will call ground and give it a nice greenish color i will also reduce the specularity to 0.1 and increase the roughness to 0.7 so that we get a nice matte surface for the time being this material is only affecting our ground so if i hide the particle system i can see that i have a green ground let's give our particle object the same shader and now both the grass strands underground are greenish let's now paint our grass silhouette so i will select my plane go into paint mode and click new to create a new texture we will fill it with black meaning that it will be fully transparent and using a white brush we will paint a strand silhouette don't fill in the full face keep some space on the side both on the y and x axis and don't forget to save your image so now our ground planes and grass strands are all black and white let's open the shader editor to fix this our newly created mask is currently plugged into the base color let's plug it into the alpha we are recovering our green color but it doesn't get transparent and this is because with ev you have to specify you want to use a transparent shader into the material setting so we will switch the blend mode to alpha clip also known as cut out in other softwares it now looks better but it seems we have lost our ground and this is because it currently has the same mask so let's fix this by going into edit mode and open the uv image editor and reduce its uvs and stack them onto a white background now it's fully opaque and we get our grass field so let's create our stylized effect the first thing we need to do is to convert our particles into an object so that we can modify their normal to do so go to the modifiers tag and click convert under the particle system blender has created one object per particle we add in the particle system and all those objects are sharing the same mesh data as the original particle so we need to make them a single user i press f3 search for single and choose make single object and data from there will all these objects selected i will make one of them active and press ctrl j to join them into a single mesh from there we can remove the particle system from our ground to get a better sense of what we are building i will switch to rendered mode and i will add a sun lamp this way we can cast shadows and let's currently add a mesh that will cast shadows onto our grass so now when i move the season head we can see the shadow being casted onto the grass but the grass also casts shadows so it's a bit messy if we go into the shader setting we can set the shadow mode to none now the grass strands don't cast shadows anymore in the beginning of this video i've explained you that no molds were kind of perpendicular to the surface and they dictate how the light bounces onto the surface so when we check our grass normals it kind of goes in every directions while our ground has a smoother surface to create the effect we simply need to transfer the normals of the ground onto our grass strands we can do this using a modifier so with our graph selected i will go to the modifier stack and choose the data transfer modifier source the ground go to the face corner data and enable custom normals i'm prompt to enable the auto smooth in the normals option of my mesh data now my grass trend seems to blend a little better but we still have those weird darkened strands and this is because we are currently seeing the back face of those strands so let's go to the material properties and enable back face cooling into the city now any strand showing its back face will be hidden we can finally select our ground right click and shade it to smooth and now we have the same shading on the ground and all our grass strand making them blending with the ground to improve our scene the first thing we can do is create an environment i've built a simple sky gradient you can see the notes here that will bring a better color variation on our reflection and shadow the other thing we can do is give our graphs a bit of variation in its color we could use a noise texture that will drive a color ramp with some greenish color variation the problem is all blender deals with coordinates wherever i use generated or object coordinates the texture won't blend between our ground and our grass strands to fix this issue we need to source our coordinate from a third object simply create an empty object in your scene and source it in the texture coordinates then switch the texture coordinate input to object so that it currently use the coordinate of the empty object as a mapping for both the grass and the ground if you now rotate move or scale dmt it will change the texture behavior but the texture will be mapped on both the grass and the ground the same way creating a seamless blending now you can adjust the color as you wish and you're done it's exactly the same process to get this painting style effect the only difference here is the orientation of the original particles the planes are kind of parallel to the surface where they are growing and instead of a noise texture i'm using the lighter weights node to create color variation if you want to get a nice effect the important thing is to make the mesh that you sort the normal from pretty smooth if the geometry is complex the normals will be complex and you will lose the smoothness of the overall paint effect you can use a decimate modifier on top of your source mesh to create other variation you can also try the alpha blend and alpha ashed blending mode into your material into your material settings this is all i've built the shaders for the grass and the bush for this animation and on top of this i've added a bit of wind animation let's jump back to our grass shader and check out the uv out by default even if it's unplugged our grass mask is using those uv's coordinates and as explained in my soul trace tutorial this strange red and green mix of color just shows coordinates the red channel shows coordinates on the x-axis black is zero white is one so we have original coordinates using a separate rgb node i can preview those and if i now check the green channel i will see the y coordinates that also go from 0 to 1. the idea is to get variation onto the red channel to create a left to right motion so we can add another converter but this time combine rgb and we will modify the red channel using a noise texture so let's plug this into the coordinates of our mask texture and add a noise texture we will then add a mix color and we will mix our noise texture with the red channel now if we tweak the mixed value we can see we have some distortion that goes from left to right on our grass strands it looks very noisy at first but by reducing the scale of the noise we will get broader distortion now we need to homogeneously project this texture onto all the grass strands so we will use the same technique as before i will create an empty object called this empty wind and we will source it as being the object coordinates of the noise texture we also need to switch from generated to object coordinate and now when we move dmt we can see the texture sliding along our grass strands bringing distortion to the x-axis of the uvs of our mask and creating some kind of wavy motion onto our texture the only issue here is that both the root and the tip of our grass strands are animated it looks more like fire than grass strands but what we can do is to mix this distortion from the root to the tip lowering the influence of the distortion on the root of those cross strands and we can use the y axis of the uvs to do this so i can plug the green channel of the separate rgb into the factor of the mix and add in between a converter color ramp to be able to tweak the values if i now push the contrast of this green channel whenever it's black there will be no distortion whenever it's white it will be full distortion so if i display my shader back and move our empty wind we will see our grass strands dancing with a black to white color ramp we get a lot of influence if we lower the value of the white going into the grayish we will lower the influence of the distortion so it's just a matter of testing which value you need to get the right amount of distortion and the right amount of wind effect once you're happy with the result just open the timeline input a keyframe on the position of your empty then go 10 frame later move a bit the empty insert a new location keyframe so that we get a location animation on our empty with both keyframes selected i will press ctrl t and select linear interpolation then open the graph editor select our x value press ctrl e and choose linear extrapolation this way the value will be extrapolated over time and you will get a perpetual win motion by changing the value of the x location curve you will change the wind speed and the wind effect if you get some artifacts make sure you reduce the clipping range in the 3d viewport setting the difference between the clip start and end to a lower value this is the end of this video i hope you've enjoyed it and i will see you in the next one you
Info
Channel: Pierrick Picaut
Views: 38,536
Rating: undefined out of 5
Keywords: blender3D, modeling, shading, rigging, B3D, p2design, sculpting, digital, animation, cartooning, rendering, CYCLES, tutorial, Pierrick, Picaut, Pieriko, 3D, Computer, Graphic, blender, eevee, VIDEO GAME, rig, animate, stylised, best, Blender
Id: RjDyR_lIWm4
Channel Id: undefined
Length: 16min 50sec (1010 seconds)
Published: Mon Feb 15 2021
Related Videos
Note
Please note that this website is currently a work in progress! Lots of interesting data and statistics to come.