Easy Motion Graphics Setup with Geometry Nodes | Bouncing Rays

Video Statistics and Information

Video
Captions Word Cloud
Reddit Comments
Captions
foreign [Music] [Applause] thanks for joining me today in this tutorial we're going to have a look at a very simple geometry node setup which you can use for Motion Graphics backgrounds and even video transitions like I did in intro specifically we are going to make this example right here if you're not really familiar with geometry notes or dislike the node-based workflow don't you worry it is a really easy example and I will explain each step along the way so let's get started first up we have to create a simple shape that we can instance later on so in our case we are going to use a simple rectangle shape which we just create from default Cube and we're just scaling down here oops on the X and Y axis a little bit to get something like this then we press Ctrl a to apply the scale and then we select the edges right here and then we're going to Bevel them and in here we are going to enable the clamp overlap and I think maybe let's use 15 yeah 15 segments that looks good and now we are going to select all with a press M for the merge function and to be merge by distance and now we removed four vertices so now we can select these faces right here and with Ctrl B bevel and we can create nice round corners a little bit too much here let's say 10. now set Shades move and we're finished now don't forget to always and rename your objects if you use them like this one here is rectangular round and we're finished and we can put it off to the side now before going into the node editor let's briefly talk about what the main goal actually is and how we can achieve it we want to instance our object which we just created multiple times on a mesh in a grid pattern to do this we will transform a basic grid into a lot of points and on these points we will then instance the round rectangle these instances can then be rotated and moved along each axis individually with the help of our texture or the proximity of other objects so here in blender we're going to create any object in this case a plane and we go over here to the geometry nodes Tab and we're going to create a new geometry nodes tree in First Step first we're going to delete the input and get a grid primitive fun fact if you didn't know if you're searching for any node you can just press shift a and then hit s and then you can type whatever your searching for and this is the way I get my nodes most of the time so yeah we have a grid node and we connect it to the output and we see we have grid the reason why we're using a grid node and we are we're deleting the first plane in the first place is that we have a lot more options here and we can change them later on and this is a much more flexible workflow in our case so now let's use a transform geometry node and transform this grid by 0.5 in the z-axis and rotate it on 90 degrees in the y-axis so it stands upright and now if we take a mesh to points node we can see that this node transforms our geometry into a lot of points and we have different options here for this case we have here vertices edges faces and corners in this case I would like to have my points centered on each face so I'm going to select faces and when I come back here to the grid option we can see if I change now the amount of vertices in our grid that the mesh is then automatically generating more faces of course and this because of this we are going we are getting more points in our mesh now we are going to let's say make 10 10 vertices looks good and in The Next Step we're searching for a node which is called instant on points and with this node we can instance the geometry we created before onto these points here always good tip to pin this node group so that we can get here the round rectangle from before and drag it into our scene into our node tree and now we're going to use this geometry here as the input for our instance and what we can see is that we have a big mess this is because we have to first apply proper scale to each individual instance so I'm going to shrink this down to something like 0.1 can be a little bit bigger 0.11 yeah almost touching each other but now I also want a second row of instances to fill these gaps in here and one way of how we can achieve this is if we make a little bit Spacey down here and we're going to use a second mesh to points node we can just copy it with shift d and then here instead of setting faces we're going to apply vertices and now if we take the same geometry from before and look at the points here we can see that it's basically doing the thing that we wanted to do but we only get one part of the points so we use shift A and S a joint geometry node where we're going to join these two points Point groups together so we get both points in one object and you can see that this is basically what we were going for but now we have the problem that if I were to rotate all these meshes or these instances that these would intersect with each other so a way to fix these and what I did is that we're going to copy this transform geometry node and we're going to clear all the values which are used and then we are going to use it as it's a transform for the second mesh to points with the vertices and we're going to translate it on the x-axis by just a little bit by 0.1 and now we see that we have a little bit of offset this is even more than I intended to to be honest let's get back a little bit more yeah something like this 0.005 0.05 yeah perfect and now if we rotate them in any direction they should not or most certainly will not intersect with each other so the hardest part is almost done now let's introduce two new nodes which are called uh translate instances and they rotate instances node like the names imply the first one is for translating it's each individual instance and the second one here is for rotating each instance we start off with the translate node first and I always like to play around with noise textures too for translating or rotating because they give really cool images and they just look basically really cool and what we can do here is instead of this 3D we can put it into 4D four dimensions and this W value here basically is a time offset and when you click in here and type hashtag frame this value will be automatically updated based on the values from our timeline so if if I hit play we can see that it automatically updates to the to the frame in the timeline this can be sometimes a little bit too fast this is why we're going here and divide it by let's say 50. so we have a much much smoother motion and what we're going to do now is we're using a combine XYZ node and this node helps us to create a vector from three different inputs and we will take our the output the factor output of our noise texture and put it into let's say the x axis here and lift the other two values at zero and then we use this Vector here for the translation and what we can see is that something is already happening but not really much this is due to two reasons first up the scale is a little bit too high we can decrease it like to 0.5 even and see that not a lot is happening and that's because the noise texture is basically outputting a value between 0 and 1. and a value between 0 and 1 is not really much if we want to translate our objects so what we can do is we can use a map range node here and so we're giving it a value between 0 and 1 so this is what has been declared in the first two from Min from Max is zero and one and we want to push these uh to a new maximum so we let the minimum at zero and we want to push it to a new maximum of let's say three or even higher we can say five and now we can see that a lot more is happening but it's still moving the whole mesh and I think it's because I have a little bit too a too low scale so let's say like 2.5 and we can see that now the mesh is really being transformed if we want to increase the contrast between uh this for this effect what we can do is we can introduce a color ramp after the noise texture and we can play around with the with the sliders here to increase the contrast and see that if we now pay to play we have our instances moving along the x-axis we of course can also use it in the wide Direction which also is a really cool effect and we can also use them in the setter set direction of course which will move them upward and you of course can also combine these on two vectors uh two axes at the same time or even all three if you would like to and this is basically moving your instances along here along our axis and now we can look at rotating our instances which is nearly much nearly identical so I'm unplugging this node input here from a translation and I'm giving it to the rotation here and we can see that already a lot is happening and normally I would say we don't we do not like to just play with a few degrees like five degrees but the mesh is already rotating a lot and if you want to have more control over it let's say we want to have the mesh or the instances to say we want to rotate at a maximum of 180 degrees but the problem with this is that the input up here for the rotation only takes radians and not degrees so we can use a math node in here and in the conversion section down here we can find a tool which is called two radians a function and this will rotate uh we'll calculate the right rotation for our mesh for our values down here so if you play we can see that our mesh is turning at a maximum of 180 degrees we can always also limit it to 90 and play around with these values as well and again it's working in each Direction X Y and Z or like like before we can also combine these if we want to which looks a little bit silly right now so yeah perfect um with this setup now we can also instead of using a noise texture I am because I'm just quickly unplugging this we can also use a geometry proximity node to use an outside geometry as the drive object for our mesh here and what I have done before is I use the text object and I deleted the text inside and set a number like let's say five and then I'm going to rotate it um so that it's upright and visible and then I'm going to scale it up a little bit more position it here and now if we take the text here and import it as the same way as we did before and then we take the geometry output as the input for the Target in our geometry proximity we have to keep in mind also that we have to put the position to relative and now we are using the distance output of the geometry proximity node as the input for our color amp now if we want to visualize this we can always press Ctrl shift and left click on an object to preview its values and if we're going to preview the distance here we can see that we first of all need a geometry input up here and we if we would look at the instances we would see that nothing really much is happening and they all look kind of gray and this is because each instance is handled as an own object where the proximity is applied but what we want to have a look at is actually the mesh we transformed in the beginning so we can see what's actually happening with the proximity here and we can see ah yes everywhere where the 5 is there is now a black value which means in our case 0 and everywhere else is a gradient up to White which is basically one so we can and we will turn this around and we can see if we take this value right here now perfect that if we move this a little bit closer that now everywhere the 5 is um there is a value of one and everywhere else is a value of zero if you want to increase this resolution of the proximity of the distance gradient we get we have to increase the resolution of our mesh so we would have to increase like to 20 or 30 or 50. now then you would have to change the scale of your instances and so on and so forth but for this case I will leave it at 10. and now if we disable this again we can see that only and if I disable this here we can only we can see that only where the 5 is our mesh is being transformed and now you can also use your mesh and animate it and see that the mesh is basically reacting to your your numbers or text or any object you want to have just be sure at the last as a last step that you use a set material node and select a material so you can shade your instances right here and a quick tip for shading in the Shader editor when we select our object and material we can use a an object info node and use the random output down here and if we look at it we see that each value are that and we see that each instance gets its own value it's its own number so to say and now what we can do is we can take a color ramp and put it here and then let's say we make a couple of stops and with this drop down menu here we can distribute them stops those stops evenly this is one too much for my taste and now we can also change the interpolation to constant and what I always like to do now is to use a website called coolers and this website has a lot of tools for basically generating different color patterns and if you find something that you like you can preview the hex codes of each color and I would like to use this one here I would like to use these four colors and you just click copy for the color and then urine can apply this color in blender to the hex code and we can do this very quickly here and now we have a very colorful and nice looking instances on our mesh and this is how I got the colors on my mesh for the introduction video well this is basically it from here on out you can try different shapes settings and textures or different objects to create your own animations I hope you enjoyed this tutorial and found it useful if you want to see more blender and 3D content be sure to subscribe and leave a comment what you want to see next and also be sure to check out my other videos and I will see you in the next one [Music]
Info
Channel: Bouncing Rays
Views: 50,148
Rating: undefined out of 5
Keywords:
Id: evxRGwtqYrM
Channel Id: undefined
Length: 18min 45sec (1125 seconds)
Published: Wed Sep 13 2023
Related Videos
Note
Please note that this website is currently a work in progress! Lots of interesting data and statistics to come.