Fusion Expressions | DaVinci Resolve Tutorial

Video Statistics and Information

Video
Captions Word Cloud
Reddit Comments
Captions
all right so here goes nothing trying to teach something that can be perceived as complicated but not make it complicated wish me luck all right so expressions um pretty much they are the tools that make complex animations and different things you want to create not so complicated or not so many steps uh yeah just maybe a little bit of setup but then you know once you build it out then it works amazing and you can do some pretty cool stuff explore a wide selection of pre-made creative tools for davinci resolve like titles transitions slideshows and infographs like bar charts and callouts and much much more link in the description for more information so getting into expressions there are a bunch of different um aspects of expressions so hopefully i don't lose you guys that's the whole point of this i'm trying i'm gonna try to keep it as simple as possible um we're not gonna go over too much in depth but um you'll get at least the basics and you can start from there right so um yeah so let's just jump right in okay so let's switch this over to here we are okay so let's pull in a couple of different nodes and take a look at their inputs okay so we have here which is our normal inputs and what i mean by inputs are these guys right here these are what run the node itself and all they are is a zero to one slider right and that's how we create all of our colors red green and blue channels cool that's how we create all of our um our colors and we can add expressions to these the easiest way to add an expression is just by right clicking coming down to expression and then you can populate this field with whatever math that you come up with or you can use a another input name and what it'll do is it'll pull the information from that input and use whatever it's uh equal to as its own right so when you think about this say okay we have red and then we come down here equals and then whatever's in here so if i put in here a two well it's only going to show three digits there but uh if i put here two or three decimal points uh we'll now have that right and we can put plus two and uh now we have 2.2 i thought for some reason that this was a two here but it was a 0.2 so there we go so that's pretty much an expression in a nutshell if we were to uh want to grab any other input inside of this one tool we could these are all going to be local inputs so we don't have to call the uh tool's name or the node's name as it said so we can just put in here green and what we're doing is now we're pulling this green value right the other thing you can do is you can use the picker so clicking on this plus dragging down to another input and we will grab whatever that is as you can see this says top left alpha the top left right it's sort of confusing until you really get into how a background node works but what it's referring to really is this four corners because there's a top right bottom and left and right but you don't really have to be concerned with that just use the picker and pick and then you'll get the the correct value sometimes some nodes also clone inputs so sometimes when you do that you'll see like clone of whatever the input is um yeah so some some of the tools are kind of confusing in that sense but don't be super confused by that one of the other things that you can type in here is if you wanted to now this is this value really it's gonna go kind of uh you're gonna get incorrect uh color values because it's not supposed to go past one but one thing that you can put in here is time so time is how fusion is is uh it's it's not time based it's not like time code based it's actually frame based so when you hear time it's actually frame so as we can see we're currently on frame 41 and we can see we have a value of 41 and then as we slide this it's going to grab whatever time is so you could build some type of equation that uses the current time of the uh of the uh comp that you're working in so you have that uh let's go over to a couple of others that that you will often see so if i look at this we have sliders sliders are going to be the same sort of deal just the single digit that you're going to get out of it but up here if we look at this we have the center and it has two values right so you have an x and a y value and if we connect this to any other point is what they're referred to as we were also going to have an x and a y and so when we're working with this we can't really take this input and get it to work here we'll see that if we well if we had this connected up we'll see like we're going to have it it's going to error out right and it's because this center isn't uh when it's when it's getting the information it's getting information that that it doesn't know what to do with because there's it's not formatted correctly uh and it goes in the other way as well if i was to come up here and let's take this expression off we wipe this out and we get like in here we're also going to have the same thing it's not going to know what to do because it's you know it's supposed to be used to two values so there are a couple of ways that we can go about uh pulling out that information from a a point input and to do that what we're going to do is we're going to right click go into expression and then we're going to call or we're going to uh initially state the the input that we want right so center is what we want and then we're going to put a period and then say which value within center do we want and we can say okay well we want the x and when we do that we get the 0.5 and then as you can see it's you know the values are are connected and it's kind of funny because as i move left it's getting smaller as i move right it's getting bigger uh but yeah so that's how we would do that so now we i just showed you one of the things that's going to be the building blocks of all um expressions is it's understanding when you want to look into something for a value so we wanted to look inside center and we want to pull a value of x and x is indicated here right we're going to do the same sort of thing with um uh whenever we want to go into a different node so let's put this back and let's come back over to the background and let's let's just do it in red we can just type in here transform one right and that current value that we were just working with was size right so we first want to say okay the node name and then period and size and now we're pulling the size value here so if i change that size we can change we can see our color has changed as we change the size and what that's doing is it's changing the value here we can also do the same thing with center but remember we have to go inside there so we could say x and now we will have that value as well and so as i change this we can see that our color is changing okay so that's kind of how we're able to pull values from other uh nodes if you're ever curious what a node's um what an what you would need to write for a node you can always hover over or excuse me any value you could always hover over a value right any of these inputs and then the bottom left down there you can see that it says background period top left green right and if i went over to any of the others we could come into here transform aspect right so we know how to kind of pull those things if you want it a easy way to use the picker you could come over into any of our things we have them both highlighted right now so we have them both in the list we're clicking on our picker holding down the um the left click going down to the name of the node whichever one is in our list and then we could grab any of the values so let's grab angle and we can see it automatically filled it in there okay so now we have a good understanding of how to copy values from one to the other next let's dive into now building out an expression so building out an expression is just think about it as a math equation of some sort um we have a number already and then we want to manipulate that number in some way shape or form i feel like the easiest way to do this would actually make this a little more visual so not so much a transform but let's use an ellipse okay so in ellipse we have a height in width right and if we were to move any of these individually obviously it's going to not uh be constant in its shape but we could grab from the corner and change it like this so that changes both of those values the other thing that we could easily do is just right click on one expression come down drag to height and now i can just use the height slider to you know get them to move together so that's pretty cool all right so now that we did that now we can um we let's let's say we want to do some type of a move right to do a move but we want to add a couple of different layers of expressions let's say we want to add some some expressions into center but we also want to be able to control the center with a control uh to be able to on screen change i know that that just came out and was super confusing but give me a second to explain this all right so uh to make any input all we have to do is just right click up here and then come down to uh edit controls when you come into here all these controls are going to be listed in here you can change them i probably wouldn't but i'm going to make a new one and this new one is going to be my channel name yeah so we're going to make it the channel name and here are the different types so we have our numbers like we were doing before the point where it's two and then we have text which is string and don't worry about don't be so concerned with what that is um but so we have um a number right so we're gonna or actually no let's go to point because we want it to be a controller and it matched the center controller so we'll do point and what page do we want it on so across here which page we want it on we want it to be on the controls page we want it to be animatable and we will have it at input of an offset and we will use a crosshair because we want to be able to see it on there and then we can pick the style but we'll just go with normal okay and now we have it right here we have a little controller and we can see that the values are changing as i spin this around so what we could do is we could go into here and we could copy that new value and as you can see jrtv is now there and it's going to be that new value so i can move around here and it's going to move that around where that little control was right so now let's add in another layer of uh complexity to this i guess all right so we let's go into here and let's add in another slider we're gonna make this abc and we're going to make it a number yeah on the control page animatable uh we want it to be a slider a screw is like this thing and the slider is this so the difference between is just the visual okay okay so we add that now we have another one abc but this is animatable so now we can add on modifiers i made a whole video about the new modifier the animation curve modifier i think it's super powerful i'm gonna quickly show you just how powerful it is uh let's go into the animation curve so we're now adding that modifier on come up to modifiers and for this i'm just going to make the source custom because i want to be able to control it and we will use easing for the curve just to make it simple and easing to the last keyframe let's have it go with bounce i think that's good scale is one to zero because we're just going to do a one to zero you'll see why here in a second i'm going to come over to frame 10 keyframe the input come to frame 30 put a 1 in here and then it'll automatically add the keyframe since it was activated all right so now we come back and remember we made two keyframes went from zero to one typically if we've seen zero to one if we look at this input we can see if i play this it goes from zero up to one okay but with this modifier it does something else that's really cool so now let's look at this value here which goes from zero to one but let's look let's look at what happens in the in the middle do i just watching over here when i hit play we can see like it added a whole nother complexity of numbers if you've seen that there play it again it's bouncing right because we had for the curve we had it set to bounce right so now how does this all work together all right so we have a value here we have uh a point uh input here which has two values the x and the y currently we copied it up here but we're not going to do it that way what we're actually going to do is we're going to put in here point and then we'll put in parentheses and in here we're going to type in well our point input that we want jrtv and we want for the first one we want it to be the x we'll put in the comma jrtv and i'll put a uh period and we'll put in the y now it didn't do anything right they still work the exact same it just looks a little bit different but now the input is split up into two values now we can add on another layer of complexity to this so simple math zero multiply zero is zero or zero multiply anything is zero zero multiply anything is whatever that anything is so we have it go from zero to one so we have this value over here in y which is the up and down let's just put in here multiply by abc so we're going to first take whatever the value is in y in jrtv y this and then we're going to multiply it by abc and how expressions work is they uh they get calculated every frame right there are some things that calculate for every pixel and that's very specific and the reason you don't want to do that but for uh these expressions it's going to be every frame so now let's watch what happens over here so we come over here now zero is obviously you know multiply it's going to be zero and then over here we're going to go back to the value that we had so now if we play this we just added a whole level of bouncing and we added in two key frames yes this took a little while to explain and everything else i get that but that adds a whole nother level of complexity and ability for your animations so we added all of that onto this one uh node right this one tool and everything that's looked inside this is all local so if we make copies of this all of the variables all the values inside that tool are all going to be local and they're not going to be affected by anything else so even though they have the same name so if i copy this and i paste it even though they have the same name they're they're all local to whatever that tool is so let me show you i can slide this over here and if i come back we have two balls now that are bouncing in different locations i can then copy that and paste i can move this down copy paste move this around right so now i have more balls that are all bouncing well you know what maybe i wanted to take both of the the ones that are up high highlight them come over here and i like to have on here show only selected so that the ones that you highlight are the only ones you see and we have those inputs remember we changed the input from a zero to one it was just a linear um line there we have both of them here because they're identical because we copy and paste them they're layered on top of each other so it's hard to see so i'm just going to click on uh to have one so whichever the check mark is the one that's editable the one that has the square circlish thing is going to be visible and then the ones that don't have anything you don't see right so now if i hold down shift and i slide this shift and sliding doesn't change the value it only changes its time so we're changing its time but we're not changing it up from zero or moving it from one right so now if i click on this one and activate that one let's turn that one off take these two and we'll holding down shift sliding okay so now we just change the timing of everything if i bring this down and we crashed well that's it what the heck come on man all right so we're back all right happens to the best of us so i think we still have all of our expressions we sure do so that was pretty much um expressions you know simplified i guess the best way to put it there is a plethora of different um math functions that you can use to typical math functions if you just go to like um i don't know uh lua math functions you could probably find a bunch of different math functions for all sorts of different things you probably have seen me use math floor which takes off all of the decimals so if i was to that's probably not a good thing to to use but uh here perfect example if i come into here and let's say this we could end up having a lot of decimals so if you come in and you do like uh uh math math floor and then we put in like uh um oh okay perfect example abc so if we look at abc we will see and we're just watching uh here we'll see it always stays at zero because it's always going to just rip off the decimal places and then once it gets to one then it jumped to one right away right so um there's a bunch of stuff like that there's a bunch of different uh math functions that you could use um you would just kind of have to look them up there isn't anything that's that's specific to uh fusion you know in particularly just look at blue and math functions and you can find them and honestly to build all the complex things that you've probably have seen in the past it's just understanding the different functions and there are different inputs and different things that you can call uh when it comes to different nodes i feel like what i've showed you today is a pretty good introduction into uh learning expressions there is one other thing i guess i could show you because there's definitely going to be someone in the comments that said oh you could do this and you could do that uh let me show you quick so when i was showing you this whole thing going like this and being able to copy that there is something that's similar to that so like let's say you want it to have a bunch of these um you wanted to have a bunch of inputs right let's say you made a a pretty uh complex uh node that has a bunch of different expressions and does a whole bunch of different things and maybe even use like that's not the right one maybe you use the custom tool right and you start making a bunch of crazy stuff one thing that you could do is you can right click and you can go publish right so if i publish this value that means that any other node inside of this comp can pull off of that published value so it's almost like writing in a node like writing in just the the exact in like whatever you you want to copy from it's like writing that but instead of doing that it makes it a little easier so you don't have to write it in or have a whole bunch of things highlight it like this and then you know go in here and go like this and come up here wait for it to flip over and then pick it instead of doing all of that what you can do is because now that i have that one published i can right click i can go connect to and then the the tool name so i have the custom tool one and then the number in one so now if i come into my number in one i change that value we're changing the value over here because it's connected through the publish so that is something that you can also do um and you can do that with just about anything you that you uh want to push the whatever the output of that to uh something else within your project you just do a publish uh and then all of them can connect to that so just want to show you that as another option that is out there if you start to get into making really cool expressions that that is something that you can do um yeah and anything that you make an expression on anything that uh you are connecting to it doesn't have to be a direct connection because you have to remember that the stuff that we're connecting from here to here or there to there that's just image information right that's just a pipeline for image information to get passed through we can pass variables from any node to any node so you could have a complex node structure and nodes might not even be connected to one another or remotely close to one another but you can pass that information so it doesn't matter where the tool is or anything like that you can still pass that information um but yeah i think that kind of covers it hopefully you guys found this uh entertaining and um you know useful in some way shape or form if this is something that you guys are passionate about and there are enough of you that are interested in knowing more about expressions and maybe uh you know me building a couple of expressions and just showing uh more of the possibilities with expressions then let me know and if there are enough of you i will uh you know look into creating a video revolving around that but with that being said i thank you again for watching and uh yeah my name is jr thanks again and have a good one stay safe guys
Info
Channel: JayAreTV
Views: 21,515
Rating: undefined out of 5
Keywords: blackmagic, DaVinci Resolve, resolve, tutorial, how to, DaVinci Resolve 17, Fusion, expression, lua
Id: 3qUulFBeVU0
Channel Id: undefined
Length: 25min 43sec (1543 seconds)
Published: Thu Mar 04 2021
Related Videos
Note
Please note that this website is currently a work in progress! Lots of interesting data and statistics to come.