Energy Shield Portal in Unreal Engine & Houdini (Pro Unreal Engine Tutorial)

Video Statistics and Information

Video
Captions Word Cloud
Reddit Comments
Captions
what's up everybody in this tutorial we're going to be going over how to create this energy shield and we're going to set up functionality so that as your character steps on and off the platform the energy shield will activate and then deactivate and we'll be creating all of the assets needed to make these effects in this tutorial so first we'll jump into substance designer and create a nice procedural texture for the look and feel of all of the effects for our energy shield then we'll jump into houdini and create all the meshes needed for our energy shield system and i'll go over some tips and techniques for how to make sure that your uvs stay consistent and scroll in the right direction each and every time we make our mesh assets then inside of unreal we'll go ahead and create all of our materials for our energy shield assets and we'll add some extra layers of control so that we can modify the look and feel of our energy shield and customize it to our heart's desire we'll add some particle systems inside of niagara for that extra layer of visual polish as our energy shield activates and deactivates and then we'll wrap up everything in our blueprint by adding our functionality to activate and deactivate our particle systems with animation parameters to animate our materials on our dome and our floor as well as our lights and by the end of it you'll have this nice awesome looking energy shield that you can customize as much as you want set up with gameplay functionality so let's jump right in and get started alright so let's jump into substance designer and we're just going to create a nice procedural tiling texture here so first thing i'm going to do is i'm just going to drop down a shape and i'm going to use a disc pattern with a slightly smaller scale i'll then send it into a shape splatter node here into the input and use that pattern input as our base and then i'm going to slightly change the scale the randomization of the scale and give it a little bit of a random position and then i'm also going to change kind of the height offset so it gives a little bit more depth to the the texture there and then i'm going to send it through a levels node and just kind of crunch that down so we just boost those white values and then this is something i'm going to use quite a bit so i'm going to send it into a slope blur grayscale i'm going to invert it first send it through a blur hq grayscale the quality and intensity there 3.99 for intensity and then i'm going to send it into a slow blur gray scale just crank the samples up and intensity to around 3.51 send it into a directional warp and just send that intensity a little higher to 24.46 with a purlin noise scale of 12 and this order somewhere around 0.91 and then i just copy and pasted the slope blur so it's very similar the intensity is a little bit higher there but then the blur is still around 3.99 and then i'm going to send it into a bevel i'm going to kind of define the edges a little bit more so that's where our eventual breakaway or borders will be for where our erosion ends and then i'm going to invert that back and again send it through a slope blur grayscale and this is starting to kind of define the overall shape intensity at 5.6 this time on that on the grayscale and same intensity for the blur then i'm going to send it through i'm just going to copy and paste the shape splatter i'm going to change the pattern amount and i'm going to still use kind of a scale different scale different randomization change some of those settings the position and then the height offset again to kind of get the randomization but this is just going to be kind of a secondary texture used to kind of cut further into our texture again with the levels to boost the values send it through a blur hq grayscale 3.09 intensity into a warp and that warp will be about 0.8 in the intensity with a purlin noise that is scaled to about nine point three six in the disorder running into a slope blur again this time the intensity is pretty low so around point three three and we've inverted it going into another warp node here intensity around 0.89 with the purlin noise and the scale around 15 and the disorder around 0.36 and so you can see a lot of this is very similar i'm using a lot of same techniques to just continue to kind of find the the shape of this texture sending it into a blur again and that intensity is around 2.37 and then i'm just blending those two together with a max lighten and that's kind of giving me this nice erratic shape pattern here so the goal is eventually to get to something very organic looking so following the same pattern as we have i'm just inverting it blur hq grayscale same values as early as 3.99 slope blur around 5.6 i'm always cranking the samples in quality as high as they will go on these blurs purlin noise set to 13 on the scale just order of 0.36 and then this time i'm going to go into a multi-warp grayscale because i want to get kind of multiple directions that this this texture is going in that'll give it a little bit more break up and make it a little more organic feeling and then i'm just kind of changing the angle there i've got it on min on the mode and just changing my intensity to around 33.83 sending that into another blur at 2.9 and then i'm using that blur to drive the directional warp so it's going in the directional warp and you can see that's where we really get that shape pattern now now it's really defined those those edges and we have kind of our organic looking noise and then i'm just i'm running it in here you can do this i think on any node i like to do it on just a transform node but i'm not using this to transform anything i'm using this to set the color output if i were to leave this at 60 if i were to try to crunch it down to 16 bits you can see it's at 32 floating which is going to make this texture size very sizable even at 16 we're probably around 4 megabytes which when texture memory is an issue you want to have your textures nice and low in memory to start out so i'm taking this to an 8 bit per channel texture so i'm just using absolute and it'll automatically give me the 8 bits i can also choose if i want different color spaces there so we're going down to 8 bits we don't really need the extra from a 16-bit texture so this will be fine and then i'm just using a histogram range just changing the position to see that it finds some darker values and then i'm just kind of brightening up everything through the levels node again and that is giving me kind of all the variation in this texture and then sending it through an output just name it what you'd like here i've named it noise 3. you can add kind of your usage i'm just doing rgb you could do mask here or kind of whatever set it to whatever you want diffuse is fine for this and then i'm going to set it to srgb and then we're just going to export our texture by coming up here we can save it and right click on here and export output as bitmaps there's usually a graph portion here i delete just so my identifier is the only thing that i care about and that will give me the exact noise of my texture find your location and if this sometimes the even defining it as srgb in your node your output node doesn't always work and it ends up coming up as raw so just make sure this says srgb when you export and go ahead and export your texture all right so we're going to move into houdini now and create our meshes for our shield effects and the first one we're going to do is the dome and we are going to drop down a line the very beginning of this pipeline just give it a slightly longer length and then i'm going to drop down a labs cylinder generator and i like these lab nodes because they give you extra options like adding vertex color in case you want to use that for a mask or adding noise things like that and then what i'm going to do next so don't mind how this looks this would just look like if i were to drop this down real quick type cylinder this would just be a straight cylinder and that curve wouldn't be there and this is how that would look normally but what i'm going to do is i want this cylinder to take on the shape of a sphere so i'm going to drop down a sphere and the reason why i'm not using the sphere generator is my final mesh is because you really have to fight with the uvs they don't naturally go in the y direction like i want them to so i would have to really fight with a uv texture to make that happen so instead i've always kind of done this shrink wrapping like technique to shape cylinder meshes to kind of a different mesh that i want so if it's not a sphere or it's something else you can still have those scrolling uvs in the x and y direction but you can shape it to a different mesh based on your needs so i'm just going to transform i'm going to look at my cylinder and i'm going to transform this up to the size roughly of where my cylinder is and kill that and then i'm going to then come back to my cylinder and look at this mesh and use my my ramp to kind of shape my cylinder close to that sphere which is kind of what what i did here we just want it close to the edge as possible of this sphere and you give it enough points so that you can make it snap a little bit easier and then we're going to drop down a ray node in this ray node we're going to transform our points through the minimum distance to our sphere so you drop your cylinder and input one and your sphere input two and we're just going to snap it and so now it takes on that perfect looking sphere and so then we're just going to transform this up so that the scale works in unreal now you can go straight to 100 and i recommend usually using a hundred i change some things along the way and so i have a slightly smaller scale just to make it work for me so for this tutorial i recommend sticking with my units here but in any case when you use this you could just use it as 100 and then change that in unreal all right then we're going to use an our rop fbx output and we are just going to save the current frame and just give it a name save it to our hip file and save to disk now one thing i didn't mention these are checks along the way so if i come back here i'm just seeing how my uvs go here are going to transform so if i scale them down i mean if i transform them i can see that they're going in that x and y direction perfectly so that's why i have a transform there the material node is again it's just a check i like to come over here to the settings go to materials drop down a natural one with wood chips because it has an image texture on it with displacement and drop that in my material slot here and then i can check as i scroll my uvs how this displacement looks as my mesh you know is kind of scrolling and how it will work with the textile density of the mesh itself so again that's just a check it's not necessary and it's not something you're going to export out in the information all right so let's move on to our floor mesh this is going to be a lot simpler we're simply going to start off with our line again now this was up quite a bit for our cylinder but i gave it a very low value so that when you because if you go all the way down to zero it gets rid of your grid you can see as i snap it and so just for a sanity check i don't think it it really matters but just for a sanity check i just do a very low value and so you can see it five zeros and a one and that keeps our grid there and still makes it flat and so that's my line dropped into a cylinder generator so that was you seeing kind of the end result and the way i'm getting those snapped vertices to the top i'm just pulling them down so that they snap in like we did with our sphere so it's going all the way to the bottom and giving us this disk mesh and you can see that the cylinder has the same settings as the one we just did for the dome which then if we go to our uv transform we will see that our uvs are correct and they're going to be scrolling the way we want you can do the material check again again it's not necessary and then i'm going to just transform this up again this could just go to 100 but i am just going to use a value of 95.6 for this tutorial and then save it out then finally our energy shield particle itself these are going to be quite small again we're using a line with a length of 0.45 i am using 9 points because i want it to have rows so that's giving it the rows because if you send it into this sweep node here it will give it columns and so the way you get the rows is through the points and the way you get the columns is through the sweep node and i'm using a ribbon with the quadrilaterals and then i'm just increasing the width just so it's not as rectangular so i just have increased it slightly i think that's all i'm changing there other than that i did an edit on it and what's great about this edit node so i added this i didn't just start editing the points i dropped it down so that i could go to this soft setting and what i'm doing is i'm making sure points are active i select my point and this soft setting gives me a value that allows me to translate all the vertices attached you could pull it out further but i'm kind of giving it this kind of edge with just a bump out in the middle so as you pull out your vertices you can see that it's it's only going to affect the area with that kind of falloff radius on it so it's a great part of that that edit node that i really like and then the last thing i did was i just transformed it i just moved the centroid to origin made sure it was in the center because these are going to be rotating later on and then i just gave it a scale of 22.7 i want these to be kind of small and then just save those as well and give them a name and those are our meshes right so let's quickly go over importing our assets into this project so first let's just go ahead and import our meshes so under the tutorial folder under assets i have my meshes here and if i were going to insert these let me just go to a upper level so that i don't override what i did already so for settings i always choose replace the vertex color in case at a later time i decide to actually use vertex color for masking purposes i do not want to create any materials and i don't want to import the textures there since there aren't any so we're just going to just hit import all so i would just highlight all these drag them all in hit import all and that will import your meshes and then as far as our textures go once you drag this in here we can go into the settings and sometimes in production these textures can be a little bit extreme for texture budgets that are in use so you can just scale it down here and you can see the resource size will change it's part of the reason why i use 8-bit textures just to keep texture size down and then you can just come down to the level of detail and under the texture group just set that to effects so the system recognizes it as in a texture that will be used for effect systems all right so we're going to jump into our first material which is our energy base and it looks quite complex but really it's just a matter of adding a bunch onto it as you build it out and i'll kind of show you some of the tricks that i've used all of our materials are going to be translucent unlit and two-sided and so for our first part on our energy base we are going to set up our distortion and you will notice that i use this setup actually all of this a lot so these are going to be duplicated you'll see that this these parameters are all kind of duplicated throughout multiple uses in this shader so once you build out one you can kind of copy and paste the only thing with uh unreal now is when you copy and paste the parameter does not change so make sure you rename it before you start adjusting your values otherwise you will adjust the values of all of the parameters with the same name and you'll have to go back and try to figure out what you did so i'm just setting up my uv coordinates i am appending a vector i'm just setting up an append vector with two scalar parameters that i'm calling x and y so that i can have kind of an uneven tiling of the texture if i want and then i also love to add another multiply and set up another scalar parameter as kind of a master scale so once i've gotten the look i want here whether even if it's one and one i can still scale this up by five without having to come into the individual values later on so i like to set up the scaler parameters just gives me more flexibility i like setting them up like that then sending them into a panner just make sure on your panner nodes that you set them a fractional part doesn't make a huge difference but it kind of keeps it within a range so that it doesn't degrade over time every now and then that makes a little bit of a difference so i like to keep it on the fractional part just in case and then set up another append vector with x and y speeds so i can kind of control my speed directions now this is something i like to do a lot of people will just stick with the texture sample and convert it to a parameter so that you can have your texture parameter there but i like to throw it into a texture object parameter so if you type that in texture object parameter and that allows me to string this together multiple texture samples or some material functions will only take a texture 2d and so it just makes it easy for me to kind of keep it a little bit cleaner as i'm moving through my graphs so that is what i'm going to use and we're only going to use this one texture for this for all of our materials so that will be our parameter it's set up i'm going to run it through this uh component mask you do not need to do the r channel you can run it through the rgb channel and it will do the same thing i was just trying something i think initially so don't worry about the fact that it's if you're going to run it through that channel this is just separating out the red and the green channel so that we can use it to distort our our uvs now you can also use a normal map for this and you can do the same thing where you take the normal map and you just steal the red and green channels and leave out the blue channel and that will distort your uvs in a different way so these are two methods of distortion i use this approach a lot because i end up kind of getting what i want from it and i usually end up using the same texture that i use for my noise you know or things like that so i'm going to send it into a multiply and then create a scalar parameter which is going to allow us to increase and decrease the distortion amount so you can see if i set this to zero here and go to my generated band you can see that it's not doing anything and then if i just set my value back and see that we're getting quite a dramatic distortion in that band so moving off of our distortion we're using the same distortion for both our radar scan which i'll explain in a second and our noise so our noise is the main texture we're using to drive all these values these are my scale i copy and pasted so you can just copy and paste the values from the distortion just make sure you change the names another thing to note is i'm setting up all of these in groups and i'm putting a comment box around all of them so that i can keep them organized so these are all my noise parameters and everything and noise is getting grouped with noise so that it's easy to kind of pick those out later i'm then sending the noise into an ad and i'm using a fresnel to kind of give a glowing edge around the dome and so i'm just adding that value to the overall look so i have that glow and you can see the fresnel is giving it kind of a glowing edge around the outside so that's being added to our noise which is then going into kind of an erosion i'm just using a smooth step there's two different smooth steps you can use one deals with an alpha and one deals with a value it's very similar this is the other one and you'll see there's an alpha and you would set them up the same way so if you wanted to drive this from just an alpha map you can do that i'm driving this through the value of what i'm getting here so this is my erosion i'm setting up an erosion amount and then the max value you can also call this erosion softness if you want because that's basically what it's doing if you were to just use erosion amount and turn this down to zero you'd get a very hard edge kind of cut in your erosion which you could also use a value step for if that's all you want to use but the erosion max value down here allows us to soften up how that erosion is used and so it kind of gives a softer transition out in our erosion values so i'm just throwing that through to the opacity and adding a depth fade and this is the distance i have set up for that you can usually keep that around 25 and play with that in your material instance this is just so that if the mesh is close to touching the floor we'll have a nice soft fade off of the edges of our mesh rather than cutting through another mesh and then i'm just adding a fade on the opacity so i have it set quite low here but if i were to set that to zero you would see all of this disappear just because that is what is controlling kind of our master opacity here so what am i combining with this i have a procedural grid kind of set up from generated band and all i've done is i've taken two generated bands i have flipped one of them in the direction so that it kind of gives a cross-hatch pattern so if we kind of preview that you can see there's a very very tight crosshatch pattern going on and that's because my pattern is very high i have it set to 512 in the scale and you can move that you can change that to get different looks i have grid sharpness and grid width set up and then i also have a power connected to this and i usually like connecting powers at the end just to control how much of a say oh yeah it's because i am not previewing it let me preview from here so you can see how it's kind of eroding away you know from that texture let me get back to the values i had just minus 0.75 and there we go so you can see our grid and then feeding that into before it goes into the color i'm feeding that into another generated band that i'm calling a radar scan which is just this red uh band going around the outside of our dome in the x direction and that's just giving us kind of a look as if this shield has some life like if there were incoming missiles then this would detect it and keep us safe so i have set up a panner and i'm just scanning in the x direction or i'm just panning in the x direction just a value of 0.5 my generated band i have switched the direction so it is vertical instead of horizontal and giving it a very low narrow value and i also set up an ad because i am distorting the uvs as i showed you before so we're just adding to the uv coordinates to distort those i'm throwing a time into a sine which is just giving us some kind of an on and off just a zero to one blink and that is turning on and off our generated band and that's why i sent the grid through it because i wanted to carry on with the look of our energy shield and again gave it a power just so i had more control over how strong this band is and we're just using that to feed into our alpha so this color will be blue for the most part but everywhere this energy band is because we're basically using this sine value from zero to one when it hits one it is turning on our energy band or our energy radar scan and we're using that as kind of the alpha to drive this from zero to one so once it reaches one it's going to our orange color you can see what what that is and if it's off it's allowing us to just have our blue color which is why the whole shield looks blue at that point and that is just set to 250 and that blue color so for the most part everything will be blue we're also sending the grid pattern through our emissive color and that is allowing us to just show up on our mission and not our opacity so then once that lerp goes through a multiply because it's going through our fresnel mask and we are also sending it through our radial beam which has a radial beam distortion and i'll show you that in a second and then all of that is multiplied by our band it's going into a miss of color so now we'll go into our opacity we have a radial beam distortion again these are just the copied values that i showed you before you can see what i've changed going through our distortion amount so this is our radial beam distortion amount which is then again copied parameters same same setup as before running into an add to distort our uvs and running those through the uv coordinates of this band and there's just a horizontal band that is shifting down our energy shield and so i have these settings for the beam width and then i also have kind of a this kind of works in the opposite direction of the power this is kind of going to be the intensity of our beam that's shifting and then i have a radial beam mask on here and i'm just taking uv coordinates using component mask in the green channel sending it through a one minus and multiplying those two results so that we have a fall off on the top and bottom and then giving it even more of a fall off overall controlled by a power and then just multiplying that by the beam result so that it's not going through the top and kind of falls off on the the y values there or the y coordinates and we're just multiplying that by both our emission or sorry we're adding that to our emissive values and our opacity overall and then the final thing that i'm multiplying into our opacity is the warp energy which you will see later and that is just another mask that is going to go from either bottom to top or top to bottom and allow us to activate the shield in the direction that we want so it will expose all of the underlying noise in the direction that we want it to go so again texture coordinate going into a component mask and we can switch the direction so instead of me multiplying this i want it to go in one direction or the other so if it's negative i've set up a static switch parameter here that will say if this is activated then it'll go in the negative direction we're sending it through a power and that's the warp energy power and you'll see that value played out later and then i am also doing a negative a one minus on there to add kind of a mask to the bottom edge of our warp power so i just multiply those two together and then i'm setting that into the multiply and again this whole mask right here will activate our energy it'll expose our values from bottom to top and then there's just a very simple world position offset there's no noise texture going into this or any other factor it's just going to straight multiply by one and i'm setting it quite high and you can just see if i'll show us i'll show the material instances later but if you were to look at what is going on if i go down to this world position offset i've set it to 12 if i set it to 15 like it is now you'll see it increases our sphere so i'm using that just as a little extra control so if i wanted to pulse out or do some extra things i have that ability through that world position offset value all right so let's move into our energy distortion we'll set up our distortion so these are the same this is the same setup we used before so you can copy and paste this the only difference is i'm adding a multiply in between our speed for our panner because i want to have a universal speed multiplier which is what i've set up here and if we were going to throw this into a particle system i also have it as a dynamic parameter that i have set up with a static switch parameter and the reason why this is a different color is because it is used in multiple places in case i wanted to activate this as a particle system i'm going to ignore these setups so don't don't mind them we're not going to use it as particle system it's just there for functionality in case it's needed sometimes i like to build things out that way to have more use cases so our speed multiplier is feeding into this chromatic energy speed up here our distortion speed our mask distortion our refraction normal and our world position offset so that is probably all i'm going to mention about that but the reason why i do that is because i can have speeds calculated and balanced per each section and then in order if i decided i wanted to increase the speed i don't want to have to go through all those parameters again especially if they're balanced and they're all functioning the way i want them to i would rather just increase the speed and decrease the speed with one parameter universally and it makes it easier so that's why i've multiplied the speed by that parameter so our distortion up here is very similar i have a very low distortion amount this time that is going into our chromatic energy distortion which i'll explain in a moment then i have a mask distortion so this is going to distort our mask that we will set up again same setup and carbon copy from the top we have a mask distortion amount of the same value 0.05 and then these are actually the uvs that are going into our generated band i just have pulled them down to the distortion mask so i'm adding to our uvs and that is our distortion so you should have a material function called chromatic aberration that i've created it is not native to unreal but it should be in the project file i'm not going to go into the details of how this works but basically you're going to hook up your texture you have a chromatic shift amount which is going to determine how much rgb shift you see so if i go to zero you'll see there's none we're gonna give it a value of five so we see it and then the texture power is the overall noise um texture that you are adding so if i were just increasing something huge you'd notice it just goes away so we want it kind of kind of low and then we also have a tile and a scroll and we're setting it up like we've been setting up the rest of our material shaders with those append vector values and then there's a desaturation amount which actually the more you go in the negative value the stronger the saturation is on the chromatic intensity so we're at negative six and then you can also have uh you can boost that chromatic intensity from this value so if you want it to be stronger more pronounced you can use it here the time is the value that is going into scroll our uv's so that's just allowing us to scroll it and that is our scroll speed so the chromatic intensity will have a noise uh texture that we can also add color to later which is how we're going to get the banding on the energy shield but if you want to adjust the chromatic intensity or you just wanted just the chromatic shift you can set the color that we are setting up in this color value to kind of a gray a very dull gray and then we have an emissive intensity value that again is just boosting everything so we just want this to be fairly subtle which it does not look like from there but it will be once you're actually going through your opacity so that's how we're setting up the color it's just one color it's just a kind of a dark gray and we'll change that in our material instance and then our mask before we go into kind of the rest of this we have a mask we're going through we're setting it up with a generated band this is kind of similar to what we did before here i do not have it i set this up as a parameter so that i can switch the direction if i wanted it to go left to right instead of up and down and then i have this mask wipe parameter which is actually just shifting the direction of our band in on one of them so it's just going to shift it on this one though there's a mask offset on both of them this mask wipe will actually transition between the two and that's why i have them multiplied together so one of them kind of acts as a mask for the other then the power is to overall kind of soften the edges from in the y direction so i'm going to send that into a multiply with our chromatic intensity so our mask will mask out our chromatic intensity and that will ultimately go in through our opacity and then i'm doing a second power shift to kind of give more of that energy band just accentuate it a little bit more and create a lot more fall off in the y direction and i am adding that to our chromatic intensity as well which i'm going to send into our refraction because we're going to use that to kind of determine some of our refraction values so before we go into refraction i'm going to go into our fraction normal again same system multiplied by our time multiplier and texture and we're going to send it into a normal from height map which will give us a normal map and it'll give us intensity that we can play with so this will help determine how intense our normals are on our refraction values and then i send it through so if you have a normal map and you wanted to use that instead of this you wouldn't use the normal from height map but you could also send your normal map through a flattened normal and that way you can control the normal intensity through your normal flatness amount so i've done both just because i like to have a little bit extra control and it kind of gives different looks to things so i've sent it through a flat normal and then i'm just sending that through a lerp the alpha being the mask and the value where i don't want this normal to be exposed setting that to zero and then here is the b value is our actual normal and we're just sending that straight into the normal channel now this will activate after you do your refraction so the normal will only be there if you choose to have an input in the refraction which we are just sending our lerp from 1 to 1.05 and we have a refraction amount that is being multiplied to control our alpha and the alpha being again this mask that we have and that's controlling where our refraction will be seen in that mask then we have our world position offset and this is a little more important here i know we didn't do this whole setup off the back end we just had this front end setup but i have a noise texture that's going to control where our our world position offset scrolls over our mesh and again similar setup that we've had before just running it into a mask so it's just giving the white value and this is really not important you could have just done the red value again this is in case i change this to a texture that's packed so if i wanted to do a pack texture i could do this and i could convert this to a parameter too so you can choose your channels along the way so some things are just a little arbitrary just because there's extra functionality needs that i may have in the future and so i've just set them up that way and then there's our world position offset amount which i'm just defaulting to zero all right final things erosion see we're actually using the alpha version of the smooth step this time um same thing that we set up before with our erosion setting it into a depth fade with a default of 25 and then we have our warp mask again uh this is also going to determine that direction that we're going to warp this or move the energy in the direction of the energy shield from bottom to top so same mask that we used before all multiplied together and feeding into our opacity and that is the shader for our distortion alright so let's quickly go through this particle material this is basically a carbon copy of the energy based material the only things i've removed i've removed the color i removed the radar scan and i kind of shifted up the warp energy as well the other difference is i added in a particle color from the fresnel mask so that's being multiplied for the color and the opacity is being multiplied by our opacity mask and our warp energy those are put in and i'm just multiplying that into the opacity so that we can have full control from our particle systems and then i have some dynamic parameters set up so for the warp energy we're going to use that to drive this warp energy mask and then there's another one set up down below for the radial beam and we're using that in our power so that's the beam mask power and running the other one through the world position offset and that's going to be our world position offset amount and again i gave this a static switch parameter so that i can use it as a particle system or i can use it just to define it through the material itself what's going to happen is these particles are going to be used in one of our systems as kind of like a projector to simulate activation of the energy shield and so i'm just needing to get kind of a cool look to the particles themselves but having these white values at the top will allow us to really push those vertices out in an extreme way and that's why we're using the dynamic parameter because we're going to be able to control that world position offset amount on those specific particles and really push the vertices where those one values are so we kind of get that projector like look in our material instances we'll start off with the dome in the examples or in the master project you'll see two i'm gonna use dome two i just had different variations going on i think with the the grid lines just make sure this is real time here so you can see it so the values i changed here are the warp energy and the erosion and then the grid i wanted kind of more of a separated kind of scrolling energy look and so my grid settings this is kind of how i did that i just went negative in the noise power my grid size i made a little bit stronger a little bit bigger and then the grid width set to that and then as far as my noise i just increase the scale change the speed and then the last thing i did was just added a little less to the world position offset amount and that was just purely an aesthetics choice for the floor you can see how that's working and the only thing i didn't don't even think i changed the fade distance that's there so our floor is just kind of how we have it set up in that base material very fine grid on this one i didn't mess with the grid size i left it as is so there's just a very very slight grid all right and then the dome distortion so as i noted before with the color parameter so i changed the color and the emissive intensity so that i got this kind of orange banding energy i kind of drove the emission more from the color than i did from the emissive intensity so i kind of lessened that a little bit and change some of our chromatic energy settings just so that the blending of that rgb shift with this orange wouldn't compete i just wanted a very very subtle kind of chromatic shift there you can see some of the other settings i changed in the distortion and the erosion as well as the refraction amount and that is basically it for our material instance for the dome distortion as far as the particles go nothing really changed there other than me just turning on the world position offset for particle use okay let's move into our particle systems i'm just going to show you these quickly here so i created an emitter which is just based off of a fountain emitter so if you go to effects aggro emitter new emitter i just came down and chose the fountain emitter and then just changed a few things so i left most things the same here the spawn rate all of that the only thing i really changed was the sphere location uh the sphere radius is 150 and then i also changed this from sprite render to a mesh renderer and then just selected our mesh for our particles so just our particle mesh selected that and threw that in there and then override selected the override materials and selected our material instance for our particles and that was about all i set up and then threw that emitter into our particle system so if you come out here you can just create a niagara system you can create it from your emitter so that's how i got this first emitter and just renamed it to our radial energy activation and this is blue so you can see when this kicks off these are our blue particles and that's just when the shield activates so i did change these to gpu so they're a little less intensive and gave it a fixed boundary radius of minus a thousand and plus a thousand in the max i did add a little bit of a loop delay to it just so there was a little time overlap and then my spawn burst i added a spawn burst to this which is set at 50. my initialized particle here are the settings for lifetime which i believe i just left alone you can see the sphere location is there except the only thing i changed in that is i activated the hemisphere z so that it didn't spawn on the z axis and then i used the surface only band thickness and gave it a value of somewhere around 0.136 so those are my settings for that then just in the add velocity i give it a velocity with a random range vector so just you can choose your drop down type in range and i'll give you a random range vector here and in that this is my minimum and my maximum values around minus 350 and plus 350 with a slight minimum value of 50 just so there's some variation there and how much they spawn vertically and then going through my drag i like to animate the drag especially for this i gave it a drag of around five to start and then as they kick out they kind of come to a halt and so i animated with a curve so when my drag i just chose float from curve and then a curve for for floats and gave it a value of 13. see actually sorry my values at 15 there so goes from 5 to 15 you can just set these this is an auto keyframe so just make sure they're set to auto kind of ramps it up and kind of fades it off there at the end and then for my color i used a scale color i initially set this up to work from a linear rgb and then chose it to do a curve here i won't need the curve for this one i duplicated this system and used this elsewhere but this is this just stays at one color so the curve really isn't necessary it's not used um but i used it later on i was thinking about changing the color over time for these particles set at a fairly high value of 250 and these are my settings for that blue color and then added a curl noise force just for a little bit of variety as they kind of float in gives them a little bit more movement so set that 50 and 50 and then i panned the noise field in the z direction and you've already seen the mesh renderer i didn't really change that is all fairly the same the only thing i did change here is the velocity so for the facing mode i change that to velocity so they would come out based on the velocity direction and that's it for this first emitter so these were our activation particles in the second one we can go through this same thing it's gpu and spawn versus the same initialized particles i get a little bit different lifetime my velocity is the same as i had before and then i also added a velocity from point on this that's because i wanted it to come out from a point location so you can see they all kind of come out in more of a spherical pattern just from that point i give it a very high minimum value high maximum value and no real direction or origin offset here and then my drag is the same it's just going from 5 to 15. scale color is the same curl noise and then i have a dynamic material parameter set up on this and that was to just change uh the beam mask power and the warp energy mask and then on the world position offset amount this is what i was describing earlier we're going to give it a pretty extreme wpo amount these are all set in the 0 to 1 space so i just did a linear curve that i just added points to and you can kind of see each of those values but it's just randomization you can give these different values you don't have to choose what i did but they're very excited kind of curve values so they're very sharp and then they kind of trail off towards the end and kind of start you know non-existent at the beginning so as long as you just started at zero and ended at zero you can give it some nice peaks and then my scale curve i actually set to 4 500 so they had a very extreme boundary so instead of trying to set this to 4 500 and play with the values there i just wanted a zero to one that would be controlled by the scale curve itself so i just gave it a high value so those really peak out and you can just see how they're shooting out and then finally we come over to our persistent particles which are these guys that stay afloat during the entire energy shield and these will actually change color so instead of doing a second emitter with a new color it was more appropriate just to allow these to change color and so everything is roughly the same here there is no loop delay just make sure i didn't give one yeah there's not one on the other system either spawn rate is at 25 then lifetime was set back to what it was before very low sphere radius so instead of coming out from a point i just had it come out from the sphere radius and set the hemisphere to z no surface only being thickness here and it's on the inside is my surface expansion mode for this one velocity was a little higher more intense because i wanted these to pop out in the z direction pretty fast and this time i did not animate the drag so i just set the drag at five and that was enough to kind of keep them from from moving any further but i still wanted them to kind of float off just slightly instead of coming to a halt and then my scale color this is kind of the value i gave it so again made vector from linear our color rgb scaling in a curve it's my blue value which then goes into a very high value of 500 and then i'm going into kind of an orange color and you can just steal these colors from the color palette so you can just put these up here if you'd like to reuse them which i love to do and if i hadn't mentioned this already you can also create new palettes rename them and you got you know a bunch of different color palettes you can pick from and then at the end i'm just going down to zero on black so they're just kind of disintegrating and then the alpha curve is fading them out completely then curl noise the noise strength i upped and i also changed the pan noise field to be one in the x direction and i gave it a mesh rotational force on this one just so they're rotating consistently just from zero to one so again just added a random range vector and velocity facing mode same thing so all the rest of the settings are the same these two down here are carbon copies of these two up here the o is for orange and the b is for blue so these are just inheriting that orange color nothing has really changed so if i went to scale color you'll see these just have the orange this lower orange color which is just set to a high high value and same for this one so everything else is the same on those so that is our particle system now let's move on to the blueprints alright so we're going to move through our blueprints now and you can see in the project folder under blueprints there are two examples one is the completed energy shield so if you get lost at any point you can see all the functionality that we've built out or that we're going to build out and then the first one is the actual one that you can work off of and build your own functionality out of so it's just the energy shield portal without any of the additional functionality so i'm going to go ahead and work from the one that i've already set up everything so you can see what i've done the very first thing i did with the event begin play so this i'm not going to talk about because this is me setting up the 3d function or the functionality for the 3d asset which is not part of this tutorial so i'm going to ignore this and you'll already have a timeline that activates it as well as the events but we will i will show you how i do all the rest of it because that's usually what you would do as an effects artist to build this out so most of the time if i'm building out an effect system i'm using this kind of logic to do a proof of concept and i am just setting up the logic to show kind of a designer how i want it to go and then they'll take it and make it even prettier and sometimes they use what i do but most of the time they have way better systems to handle all this so in order to get your inputs so that we can use these keys so if i were to just type in p key and scroll up you can see we have access to all of these key bindings here now these would usually be in your input section under your settings and you can define them in your action mappings and things like that but if you're working on a game that's in production those will already be defined and you don't want to mess with them so in order to access them in a blueprint and use them properly to control the function or the event you want to set off you just enable the input so grab an enable input node and then just get the player controller and hook that up and that will allow us to use these as the player controller when we play this blueprint now you wouldn't want to implement that in the game because that would override your action mappings and things would get crazy so this is more for just doing your or setting up your events that way so next what i'm going to do is i'm going to add in all of my meshes and we just grab our meshes so you're going to go in here and just grab a mesh and just add that component and you can see my scales here i set this to two for the dome so the dome is at two and a location i bumped up just a little bit the floor is a little bit bigger because that's going to cover kind of the area where i do my energy distortion dome and that is just over two set at zero and then i have my dome distortion which is just a little larger and that is so that it sits outside of that main energy dome right there and again that's at zero i've just set all these to movable so that you don't have to bake lighting and the lighting can change dynamically with each of these meshes and then i have also added in point lights so you just drag a point light in and i'm using this for the energy so energy will come off the bottom portion here through this energy light which is energy light one and i've set it to a blue color just a regular value of one because we'll change that through the intensity and then i've given it these settings for the the radius and i also turned off cast shadows i do not want this to cast shadows i just wanted to cast light so i initially played with the intensity to get the intensity where i wanted which i believe was around 11 000 and then i turned it off so this light is not on when we start the game it is going to turn on through our blueprint logic and then the second light is up top because once this energy shield activates there will be a blue glow and that will play on top of our character and again the settings are fairly similar just with a little bit change same blue color and we're going to activate these from our blueprint so going to our logic those are the only things we need we also need our our particle system so again just click on that add that component to this arrow here this arrow component and we're going to turn off auto activate because we're going to use the blueprint logic to activate it from our controls so the first thing we want to do is we want to set up our scalar parameters on our meshes so you just drag these in and then you just drag off and just hit set scalar parameter value on materials and we since we only have one material we really don't have to define this so this is just going to set our parameter name that we have so we're going to type in our warp energy because we want to control how this activates and if you remember our warp energy was driven by a power that allows us to kind of erode away the value so that's going to basically allow our shield to kind of activate or look like it's activating on so we need that we have an erosion parameter here we're using the same one for the dome and the floor i'm using a separate warp energy and you can see these values that i'm setting up these are the base values of where they're going to start when we play an editor here i'm using the same warp energy for the floor and the distortion dome and then i'm using a different erosion value for our distortion and then our refraction amount of course only relates to our distortion dome so i've set up all those parameters and now we're going to use our timeline to activate those so this is our actual energy portal and these are all of our energy settings our dome settings and our floor settings so what you can do like i said you can go ahead and find your keys and we're going to use these to kind of debug our activation so when we play an editor we can hit a p key or an o key and we'll activate and deactivate respectively but we want to do our event begin overlap and that is the one thing i did forget to show there is a collision sphere here so if you type in collision you see our sphere collision we added that and you can see my settings i just have it at a radius of 6.56 or sorry the sphere radius is around 8.77 and the scale is at 6.56 and i wanted it to stay kind of small because if you were to do it to the size of the dome when the character leaves the dome he kind of crosses through it and then same for when he kicks it up so i wanted to make sure the character when they come into the middle it activates and then as soon as they step off it deactivates so it looks like it deactivates before they step through it which was a little nicer looking so that's why i have a smaller target here on the event begin overlap on the collision sphere so we're going to choose event begin overlap because that's going to detect our collision and allow us to activate our particles you just drag in your particle system here and we're going to set that to activate so just drag off and type in activate and then we're going to run it through a small delay of 0.45 before we actually kick off this timeline and here's what our timeline looks like inside we have the energy floor we have our erosion distortion and then our refraction our energy shield and the erosion on our shield and then we have a light intensity and don't mind this bottom one that is the one that should already be set up for the generator itself but here's our light intensity and if we look at our values for our energy floor we're starting at a time just off shifted from zero and going to 25 and then our values at minus 1.75 since that was kind of the energy the warp energy value that we gave it where we want it to land and then if we look at our erosion distortion we started at 15 here at 0.5 on the timeline and then going to one second with a value of 0.8 remember this is all of our activation settings so when the shield activates this is what we'll play to bring it to life so then our refraction we start at 0 and i'm just going to start at 0.5 because i want the refraction to come in just slightly later that our energy does our energy shield does and we're going to go just a one second so it's going to be a half a second transition at the value of 5 for our refraction and then we will go from 85 on our energy shield again this is our warp energy for our shield and it's going to go down to that value of minus 1.75 that we had previously defined so from zero seconds to one second is how long that transit transition will be and then we have zero on the time and 20 for our erosion on our shield value at 8.95 so 20 to 0.85 on the time and point in 8.95 and these are all things that i kind of you know played around with initially before just so i could see you know how they were how they were working so there's some trial and error involved in this this is zero for our light intensity and it's going to go up to one and the reason why this goes up to one is because we're going to multiply it by a float so if you come down here instead of trying to do 11 000 on our timeline it's easier if we just do a float times float and we define the initial value which is zero to one and that will raise our intensity from zero all the way to eleven thousand by multiplying it times that value and of course you can see our energy light is there so that's our first light which is the one on the ground and then we're going to give a delay of one second so that the energy shield has time to kick on and by the time it reaches the top and kind of casts light onto the character that one will pop on now we're defining we're showing that the energy will already be there so that that 11 000 value will already be on this light so it'll almost pop on which is fine for how the energy shield kind of comes into existence then all of our values that we've set in our timeline we're going to run in respectively to our scalar parameters so we can set those on the material so you can see our energy floor is for our floor we have another value here our energy shield which is our warp energy for the other for the dome and the distortion and then we have an erosion which is also going from our floor and our dome and our dome distortion is running into this warp energy parameter erosion and the final one the refraction and you can see they all connect respectively so there's our refraction here's our erosion for our distortion here's our erosion for our shield for our dome basically and then here is the energy shield for warp energy so you can see those are all running into those values so when we step into the energy generator that is going to kick it off from the start so you want to connect it to play from start so it starts the same every time and same thing you can press p so that you can look at it from a distance and kind of see how it's how it's working and then we're going to do our event end overlap and we're going to run it into a sequence and this is so that we can kick off multiple different events without trying to run everything through loops and all this other stuff so we're just gonna the first part of the sequence is going to reverse it from the end which means it's going to send it all backwards now initially i thought i was gonna need more time and so i had set up a five second timeline and so if you want to have more time you can however it will start from the end of that five seconds and reverse it from the end so i needed to set a new time so that it was quicker when you step out so i set it to one second which condenses the timeline down to one second so it just reverses everything for one second and that will deactivate it a lot faster i did that as kind of the last input it didn't matter here what the order was because the second thing i wanted to do was deactivate the particles so you just run out of here type in deactivate and we're going to deactivate our particle system once we step out of the generator and then just compile it and save it and we will put that into our level and then you can see so we've got it in our level here and when we hit play we can step inside of it step out of it and kicks off and we can hit that p key to kick it on and hit that o key to kick it off and so it's working as intended so i hope you enjoyed this tutorial thank you for sticking with me till the end and i hope that you are able to create some pretty awesome looking energy shields thanks so much you
Info
Channel: Rebelway
Views: 67,427
Rating: undefined out of 5
Keywords: VFX Industry, Special Effects, Visual Effects, Hollywood, Simulation, VFX Tutorial, VFX Tutorials, Portal, Energy Shield, Portal Effect, Portal Tutorial, Energy Tutorial, Unreal Engine Tutorial, Pro Unreal Engine Tutorial, Portal in Unreal Engine, Shield in Unreal Engine, Energy in Unreal Engine, Jesse Henning, Rebelway, Rebelway Unreal Engine, UE5, UE5 Tutorial, Advanced Unreal Engine Tutorial, Unreal Engine Lessons, Unreal Engine Course, Portal VFX
Id: lzLfGRp-0_w
Channel Id: undefined
Length: 69min 3sec (4143 seconds)
Published: Wed May 04 2022
Related Videos
Note
Please note that this website is currently a work in progress! Lots of interesting data and statistics to come.