Tutorial: Creating a Fireball in Blender

Video Statistics and Information

Video
Captions Word Cloud
Reddit Comments
Captions
[Music] so [Music] [Music] [Music] [Music] hey you made it so i have some good news and some bad news the bad news is that smoke simulation it's very time consuming i have spent five weeks on this tutorial the good news is that blender version 3.0 with the experimental build has support for cycles x so while we're waiting for the full version 3.0 release let's check out the alpha version which is going to speed up our stuff tremendously the very first thing we're going to do is we're going to save our blend file so press ctrl s and then just name this fireball and the reason why we're saving this already is because we're going to end up with some smoke baked data and this data will be saved right next to your blend file so if you don't save it it will get in some sort of temporary folder and we don't want that we want to see where our smoke save is so now we've saved our file let's delete everything by pressing a and then x and now we're going to create an icosphere which is going to be our smoke emitter so go shift a and create an icosphere and if you like you can rename this by double clicking let's call it smoke emitter and now to make this into an actual smoke object go to object quick effects quick smoke and a lot of stuff just happened first of all we have a domain object that's surrounding our emitter and our emitter is now in wireframe view so you can go to solid view if you like it's still wireframe and we have a lot of new interesting stuff happening in the physics properties let's say you click the domain you can hover your mouse over this and see oh so that's what the resolution division does and you can go down to the buoyancy density and you can read that oh higher value results in faster rising smoke i don't think there's any place in blender where the mouse over text is better than in the smoke simulation settings and for me personally i get just super curious when i read like oh the noise scale higher value research in large vortices and you just get filled up with all this curiosity and it just it keeps me going so i recommend checking out all these settings before you start clicking anything just read about it i highly recommend it so let's do some actual smoke simulation right click on this line down here and go vertical split and now we're going to set this editor type to properties so select your domain and go to physics properties and now you can see we have made a copy of whatever is happening here so if you click this pin icon now whatever you do in blender this or not whatever you do whatever you click in blender this part of our screen will always stay like this and that's very good because we'll probably be spending 80 of our time in the physics properties of the smoke domain so let's make this smoke emitter into a fireball and you select the smoke emitter and you go to settings flow type and you change it from smoke to fireplace smoke and now when you press play you have a burning ball would you like to make the ball smaller okay so let's select the ball press s and scale it down now when you press play do you think that this fireball will be smaller so this next part is a bit confusing in the beginning now when we press play nothing has changed the smoke domain has not updated and that is because we did a change to the emitter not the domain so to actually update our smoke simulation all you have to do is just to make a simple change to any of the domain settings for example you can increase the resolution division for example 34 and now we have our updated smoke simulation so in the beginning this is a bit confusing but i assure you once you get into it it's it's actually a really better way than what it used to be okay so let's make this fireball into a higher quality fireball and what i mean by that is let's increase the resolution because right now this is a resolution this little cube in the corner represents the size of the voxels of our simulation and we can actually have a look at this if you go to viewport display and set the interpolation to closest now you can see that we have this stylistic minecraft type of smoke we don't want that at least for this project we want a more smooth smoke simulation by the way this is just the viewport this won't affect your render so let's increase the resolution divisions now let's press play that is a lot slower i would actually say that's incredibly slow and that is because even though it's only smoke right here blender is calculating everything everywhere and we can prevent that because instead of this domain being static there is a feature called adaptive domain so if you enable adaptive domain now you can press play and there's this small box that it will adapt to your simulation so now we want to animate the emitter and in my opinion the fastest way to animate the emitter is to use this real-time animation technique that we covered in this tutorial so i highly recommend you check that out so we're going to start off by clicking the auto keying and then press space and then g and then let's just do some motion and there's our animation now let's um update this by setting the resolution divisions to 62. there we have some interesting stuff going on do you see the problem here the emitter goes outside the domain so to see where the domain actually stops we can just uncheck adaptive domain and now you can see that oh there's our border so you can scale the domain by select domain and press s and then x so we can make it wider now let's reset this now we can see that our smoke is inside the domain i think it's a bit weird that the smoke rises to the top i know that's probably what happens with a real fireball but let's try and turn off the buoyancy density and the heat so let's set both of these to zero and now when we press play you can see that we're sort of drawing this is like a 2d 3d drawing sort of thing okay so one problem i see already is you see these patterns here sort of like these frame by frame shapes each frame this fireball sort of gets simulated here and we can fix this by selecting the fireball and under sampling sub steps number of additional samples to take between frames to improve quality of fast moving flows perfect so let's set this to three for example and now let's just change something in the domain and now when we simulate we have a much smoother line and this will be much more visible once we have a more high resolution smoke so the biggest problem right now i think is that we don't have any movement from the emitter that is affecting the smoke we're sort of just drawing like it's a 2d pen we want it to be more of a simulation where it is actually smoke being simulated not just drawn and there's a very crucial feature that we can enable that just fixes all our problems and just makes this tutorial so much more interesting so you select the emitter and under initial velocity where the fluid gets some initial velocity when it is emitted so click this button and now we have initial velocity which is multiplied by one let's reset the domain and now when you press play look at that you have a much more organic fireball because the movement is actually being transmitted so right now i think we're at 24 frames per second so let's go to the output properties and set our frame rate to 30 and uh you know while we're here let's just set the resolution to 50 because we won't need to do an hd render for this one so now when we press play our smoke goes a little bit faster you know i feel like i was rushing a little bit when i explained the animation so let's just do that again let's view our emitter from the front and let's enable the auto keying and to move the emitter you can press g and then let's press space and g and let's move it like this the domain is going to look weird remember to turn off auto keying and if you go to the graph editor now you can see that we recorded these keyframes so now you can actually control these keyframes down here by pressing g and let's just move it to the beginning [Music] so now we have an animation that plays you know what let's smooth this a bit so let's go back to the graph editor and let's go key sample keyframes and then smooth keys this is explained in the other tutorial so now let's have a look at our emitter movement okay so one problem is that our domain isn't big enough so let's just uh make the domain a little bit bigger scale it on the x-axis and the z-axis i think so i think there's too much smoke in our scene so to get rid of the smoke over time there's the feature called dissolve and we can enable this and now when we press play we can see that there's a much shorter smoke trail i actually think this is way too short so i'm going to increase this to like 25 and now we're going to experience something really interesting wait for it you see that the adaptive domain takes a bite of our smoke let me just increase the thickness of the smoke so we can see this better so you see here is smoke definitely right but if we go like two frames and then one more you can see the adaptive domain takes away our smoke so the goal of the adaptive domain is to just prevent the domain from being too big so it's always looking for places to shrink and eat away our smoke simulation and usually that's not a problem but since we have the dissolve feature enabled the smoke will try and disappear over time so these are competing against each other the dissolved setting is trying to get a smooth smoke fall off and the adaptive domain is trying to chop away the thinnest part of the smoke that is so thin that it thinks hey there's no smoke here right we can just not calculate there so in the adaptive domain settings you can actually lower the threshold and i've found a good value to be .005 when the dissolved time is set to 25 okay so let's have a look seems to be working all right adaptive domain not too uh aggressive yeah that's good okay so i want the fire to stop at the end of the simulation so right now it goes around like this and then it sort of freezes here right and let's say we want to stop the simulation before that or stop the fire being emitted and as you can see here we have motion until frame 71 so on frame 60 let's go to the physics properties with the smoke emitter selected and you can see we have this value here called density and fuel so density controls the thickness of the smoke and the fuel controls the amount of flame that is being generated and what's really cool about this is that this behaves like a particle system so if we cut this off at frame 60 the emitter will stop producing new smoke and fire and this is really cool because then we can sort of turn off our fireball and it will organically fade away so to keyframe animate this right click and insert keyframe on both of these and let us advance to frame 64. and then let's set these to zero and then right click insert another keyframe so now these are going to fade out from frame 60 to frame 64. so let's reset the domain and let's have a look perfect okay so let's have a look at what the motion feels like in our smoke simulation right now the problem is this red number up here this means that we're not playing in real time so to look at our smoke simulation in 100 real time 30 fps we can render out an animation without creating a camera let's go to the output properties and under output click this folder icon and on our desktop where we have sailor stuff let's make a new folder let's call this flipbook and i'm going to call this mp4 as well because we're going to create some mp4 video files so let's call this fireball underscore a and then click accept now we're going to set our file format to ffmpeg video and under encoding let's set this to mp4 so now what we can do is we can go to the last frame of our simulation let's say frame 100 so let's set the end to 100 and make sure resolution is set to 50 you don't need anything more than that so now to render our viewport as a video file you can go to view viewport render animation and it's going to start rendering our viewport as a video file and your cursor turns into this frame counter so now we have a rendered video where you can go render view animation and here is our smoke simulation in real time and what we just did is absolutely crucial because we need to understand the movement of our simulation it's very difficult to feel the movement in your scene when your viewport is lagging so much as this one and it's going to be lagging even more once we start increasing the resolution of our smoke so how do we increase the resolution of our smoke first of all let's try and increase the resolution divisions to something high like 128 now instead of just pressing play let me show you something that's really unfortunate let's say we stop the simulation now let's go back to frame 10 or something and let's continue look at that this bug is because we haven't enabled the is resumable button but this button will increase your bake time so instead of having to deal with this bug and instead of using the timeline to simulating our smoke let's set the cache type to all so now we get this nice bake all button and we can set our end frame to 100 and we can press bake to just bake our entire simulation so now we don't have to be playing in the timeline and hope that everything just plays steady we can just click this baking button so here's our bake at 128 resolution divisions and remember we can't really just press play because the frame rate is so low so to render out another flipbook from our viewport instead of going view render animation immediately i recommend that you go over to the output properties and change your file name to fireball b and this will prevent that we overwrite the previous version so now you can go view viewport render animation okay so let's have a look instead of going render view animation all the time you can actually just go ctrl f11 there's our new fireball okay so one thing that's actually really cool with blender is that if you set this to fireball a without clicking out this other one you can go to render view animation and now you can play both of these now we have both of these right next to each other you can say okay so on frame 39 okay so i think this detail is and it's really easy to just compare these two and that's incredibly powerful especially if you're doing a smoke bake that lasts for three hours and you almost forget what settings you have changed then you can just go back and compare these two and say oh okay so i really like the falloff of this tale of the whatever so this is just really valuable and i often end up with a lot of versions where i just compare stuff like this all the time so i'm happy with the motion in this fireball but i still think it's too low resolution so how can we increase the resolution of our smoke without changing too much the way it moves we can use this setting called noise and it's not really just noise it's primarily an up press which is basically a way to increase the resolution so free our bake click the noise setting and let's click bake all and see what it looks like this is going to take a while okay so there's our fluid baking complete let's have a look oh it's getting quite interesting so let's have a look at this in real time and you can click the folder icon just to see how many versions you made so let's call this one fireball c and you know if you want to be fancy you can actually turn off the overlay here so we only see the smoke and now we can go view viewport render animation okay so let's have a look [Music] so there are two things i want to change right away first of all i think the noise strength is way too strong it just feels like a photoshop smear layer is just on top of it it doesn't feel like it has any depth anymore and i also think the fireball is too thick we want to make it thinner you can enable your overlay again which is alt shift z select the emitter and go to physics properties to make the fireball thinner we can change a setting in the flow source called surface emission higher value results in emission further away from the mesh surface so let's set this to 0.5 and we're going to get a much more slim fireball and let's go free all let's lower the strength of our noise now let's do 0.4.3 you know what let's go ahead and set the uppers factor to 3 because i think this is going to be our final bake for this tutorial this is going to take a while let's go ahead and click bake all uh just about to be oh there are smoke big finish complete 446.37 i'm just so curious what that number is i wonder if it's the amount of seconds i'm not sure so let's have a look oh very interesting ah this is going to look really great i think we're ready to do some shading let's just have a look at this one even though it looks really cool already so let's go uh render the viewport animation by the way this is a hundred frames of smoke simulation which is absolutely way too much if you just want to learn like the basics of this because the longer the smoke just keeps on simulating the bake times are just really piling up towards the end so i highly recommend if you just want to test out smoke simulation just do like 30 or 40 frames or 20. it's much more helpful than sitting around waiting for 100 frame bake but i thought we could do it in this tutorial just to see an entire smoke simulation so now let's view our animation yeah let's uh do some shading so now we're going to add our own custom fire material we are going to be using the brand new cycles x render engine so go to the render properties and set the render engine to cycles and set the device to gpu you might want to check your cuda if you have that available so first of all let's make a camera so let's go shift a camera and let's go view align view align active camera to view and then you can right click and adjust the focal length you just zoom out a little bit and let's press g and y to move it on the y axis let's move it down by pressing g yeah perfect so let's go ahead and see what this looks like in render view and you can turn off the overlay if you like and if things gets really slow and unresponsive you can press ctrl b and just mark a selection of where you want to render and this is a really nice way to just make things more responsive in the viewport so since we won't be baking any more smoke just in the nearest future we can change this editor type to a shader editor and now we can select your domain and behind this menu you can see there is a node and this node is called principal volume and it's really powerful it's a nice way to extract a lot of the data from our smoke simulation into the material output but there are some details there that are sort of hidden that we want to try and extract so first of all let's set our black body intensity this is going to be the brightness of our smoke you see it stops at 1 but you can actually increase this to like 5 or 20 or 50. now our scene looks a little bit washed out so let's go to the world properties set our background strength to zero but now it's like super pitch black so just to give a little bit of highlight to our smoke since it now disappeared completely let's make a lamp so shift a and let's go light point and you can see it already interacts with our volumetric so let's move it on the z axis so g and z so now it's above our smoke and then let's move it a little bit on the y-axis so now we have this light sort of like behind our smoke a little bit and let's go to the object data properties and increase the power of our light let's do 100 watts no let's do a thousand watts there we go and now you can go view cameras active camera which is numpad zero to get back to the camera view so now we can see we have this highlight on our smoke and i think it's a really nice way to just get some detail on the smoke but there's a problem here see this blob this isn't really a detailed fire but if we select our domain there is plenty of data here it's just that we haven't extracted it yet we are going to use a node called volume info shift a input volume info if you want to see what this node looks like you can hold down control and you can grab this one you can put it into the density and here's our density and then you can hold down control and let's take out the flame temperature and this color one is really weird i'm not sure what that is okay so let's see in the density and now you can actually see that we can see our emitter here and we don't want that so in the outliner you can click this little camera icon which will disable it in renders so we can still see it in viewport but it won't appear in the file render so select our domain again and let's hold down control and change this one back to the principle volume and now we're going to use this flame output so let me just use ctrl b here to isolate this part so let's take this flame output and plug it into the black body intensity and right away it gets way too weak and that is because we had a value of 50 here right so we can use a math node to get this back up so go shift a converter math and let's change this from add to multiply and set the value to 50. so now this node is multiplying the flame output by 50 and then sending it through the blackbody intensity as you can see we're getting just a little bit more detail but there's one more trick we can do which is insane let's make some space here and let's go shift a converter color ramp let's put the color ramp between the flame and the multiply and it will automatically connect and let's change this from linear to constant and now everything goes black but with the magical power of the cycles x responsive viewport we can now see this in real time and this is fantastic so let's select this one and let's just look at that how cool is this we can control where the fire is going to end and this isn't really the most powerful part yet because now we can control it like this right and if we press this plus icon we can make another black color stop and we can move it to the right of the white one so we just get this slice of white and now we're getting some really interesting details just from this data that is already available in the smoke simulation so right now it's just really hard just so you can see the effect better so instead of having this set to constant let's set it to b spline let's tweak this a little bit and i like to have it like this let's just zoom in like way too far so here you can see let's oh let's select this black one you can see that we're making sort of like a glow so we're keeping it sharp but it's sort of glowing let's look at this one this is going to be sort of the brightness this is getting really dark so let's increase the brightness of everything let's set the multiply node to 150 for example now there's one more thing i want to change and that is the fall off because right now this fireball is sort of it has the same strength all the way and we want to make it strong here and then just weaker to the end remember when we used that dissolve feature earlier that makes the smoke really thick in the beginning and then it will sort of fade out right so that means that this density value will be really thick in the beginning and then it will go thinner towards the end so that means that if we take the density and plug it into the multiply we can make a flame that starts bright and then becomes weaker but now it's already too weak so let's take this old multiply node and duplicate it by pressing shift d and you can see this has a value of 150 so we can just slap this on there and now we're back to a strength of 150 and we also want to duplicate our color ramp so press shift d to duplicate and then click this little menu and reset it and now we can drag this on top of here so now we have two color amps one in the density and this old one in the flame so here's where the cool thing happens let's take this color ramp which takes the density into account and let's flip it in this menu and now we can take this slider make this fall off look really interesting and we can make it even smoother by setting it to b spline this is getting really cool let's actually increase the strength by something incredible like 500 yeah maybe 400 okay so let's offset this a little bit by using a math node so go shift a converter math and let's just have this set to add place it between the density and the color ramp and i can hold down shift and you can sort and drag this and it will adjust where this color ramp is placed and the reason why we're adding this slider is that if you were to increase the resolution of your smoke let's say you wanted a a press value of five instead of three this shader is not going to look exactly the same as it does now because the smoke has more detail this add shader is a really nice way to compensate for that i really like how the smoke just oh what i thought i lost everything so that's the danger of blender alpha it's that eating crash any time so i really like the fall off on this one and we can actually increase the power a little bit more let's do 600. now that we have a camera instead of going view viewport render animation let's go render let's just render a still image okay so this is coming together okay so the default setting in cycles x is 4 000 samples you don't need 4 000 samples for smoke simulation because the denoiser is fantastic so instead of rendering this at 4 000 samples which is going to take a minute let's just go to the render properties and this is going to look a little bit different in blender version 2.93 but the key takeaway is this let's set the samples to 32 and let's have the denoiser enabled and that's basically all you need to have because now when we press render f12 you can see that this render takes four seconds first of all that's insane and second of all it looks really smooth we're doing it in 50 of hd resolution and i think this looks great so let's render this as an animation but we do not want to render this as an ffmpeg video we want to render it as an exr sequence set the file format to exr and this does not create a video file because it's an image format so it's just going to create a lot of still images and that's perfect so let's set the color depth to half we don't need full and let's set the codec to dwaa which is a lossy codec and it's fantastic it keeps your files super small and it has all the information you need you can't tell the difference between the lossy and the lossless one okay so let's click the folder icon and let's create a new folder called render exr and let's call this far yeah it's fireball d that's perfect except blender usually crashes the first time i render so let's just try it let's go render and render animation okay so it looks good it doesn't crash we're actually just at two seconds per frame which i mean if you told me 10 years ago that we will be rendering smoke simulation with like real ray tracing in two seconds per frame oh oh okay so we're gonna crash and that's a good exercise it's a good learning opportunity okay this usually happens no worries oh yeah so uh let's just open it back up and one interesting thing about after we crash the render settings sometimes gets reset so remember to turn on the noise threshold and max samples 32 and let's turn on the denoiser and in the output properties since we have already rendered 14 frames instead of rendering them again we can turn off overwrite and now we can go render render animation and it's going to start where it left off on frame 15. perfect so this is one of the reasons why we render as an image sequence and not as a video file because if this would have happened in a video file we would have lost our entire render i've actually never experienced that blender has crashed while recording before which is really impressive actually so while we're rendering just quick reminder that there is a patreon if you want a support channel some project files some stuff to tinker with if you're into blender and that sort of stuff it really helps me out oh the render is finished let's go render a view animation i'm actually surprised that this plays smooth when it's like exr sequences so the reason that we rendered this as an exr sequence is that if you look at this fireball you can just right click and you can hold your mouse over these bright areas this is like 30 times brighter than the brightest red and that is because we are using the exr format because it it supports these floating values and this is a really nice way to create glow this means that we can just slap some glow on this entire thing even the smoke and it's going to look really good so to do the compositing let's set the editor type to compositor and it's really empty here because we have to click use nodes and then backdrop here's our render layer and here's our composite output so if we press f12 now this is our render layer and the data sort of goes all the way this into the composite so what we're looking at here is the composite so to view the render in the background as a backdrop you can press ctrl shift and then click on the render layer and this will create a viewer and then you can hold down alt and middle mouse button to move this background around so you know what let's right click on this one and click join areas and click on the one you want to disappear let's add a glare node so let's go shift a filter glare and let's just drop this on the composite and then you can press ctrl shift to view the clear node so there will be a data stream going from the render layers into the glare and then into the composite and the viewer here we can change all kinds of glow settings let's set it to fog glow let's set it to high and so this mix slider is the glow intensity where -1 is original image only 0 is exact 50 50 mix and one is processed image only to zoom this image in you can actually open this menu and under view let's set the zoom to two times so there's one problem here and that is that the glare is only applied to this part of the fire and we want to set the threshold to zero so that even the smoke gets a glow filter applied and let's set the size to nine let's lower the mix to minus point nine so we have this really subtle glow effect and now what we're going to do is we're going to duplicate this clear node and then make sure you connect this to the viewer as well [Music] so now you have two glare nodes where this one goes into this one and this one goes to the composite or the final render but if we now wanted to see what our smoke simulation looks like on frame 60 nothing happens this doesn't update and that is because we would have to render it out again so now it updates this is the reason why we already did the render so we can just import the image sequence rendered in exr supporting this high dynamic range format because now we can go shift a input image and then click open and then find your render exr and then select all of these which is the entire image sequence of 100 frames open image and now you can hold down ctrl and drag it from render layer over to this image so now we can go to any frame and it will composite that frame immediately and the reason why we're doing this compared to using the render layers is because when we're going to render our final video file from blender we don't want to render the volumetrics and the fire and the smoke and everything we just want to composite this pre-rendered exr sequence so that makes it much easier to for example change the amount of glow or change the size of the glow or change whatever you want to do in the compositor without re-rendering the smoke only re-exporting the exr sequence as a video file which is perfect so the reason why we duplicated this glare node is because this glare node is set to high to get this really nice fall off and then this one if we set this to medium it will be slightly bigger so now let's set this to minus 0.95 for example no let's do uh minus 0.92 [Music] perfect so let's render this out as a video so if we go to the output properties and set our file format back to ffmpeg video and under encoding let's set it to mp4 let's set our output quality to perceptually lossless so it's really high quality and then let's create a new folder by pressing the folder icon and let's call this exports mp4 so this is going to be our final render so let's call this fireball beauty one this is going to be just our beauty render however let's say i want to render this image right now it will still render the actual smoke and this is the thing that we're trying to prevent to save some time because this is a five second render that's actually insane cycle sex is just almost making this workflow unnecessary but for like bigger smoke simulations this is going to be a huge time saver so what you can do is you can right click on this render layer and toggle node mute hotkey m so now you just mute this and since this project file no longer has any active render layers now when you press f12 it will just render the compositor right away and it does it in less than a second let's just save our file and now when you go render render animation it's going to render your smoke simulation really fast less than one second per frame because now we're just running the glow from the compositor not the actual smoke simulation okay so here's our final result perhaps we could have added more glow if we wanted to so i've tried my best to just explain every step of the way to get here but there are some things you can do to get the smoke simulation even better and i think we're about to enter the advanced part of this tutorial let's start out by creating a gradient background but any diffuse material would render quite slowly so let's give the plane an emission material with a gradient texture set to quadratic sphere then add a mapping node with a texture coordinate set to object now you can move the gradient around using location sliders in the mapping node here's the node setup i ended up using but now we get a lot of banding so let's do something weird remember we used denoising on this smoke let's add noise on top of that i like to use a cloud texture with a really tiny scale and then combine it using a mixed node set to overlay use the mix factor to control the intensity and to animate this fake sensor noise go to the texture z-axis and type the expression hashtag frame to get unique noise each frame here's the node setup if you want to take a screenshot this next step is not really necessary but if you happen to have the studio version of davinci resolve 17 you can import the raw exr sequence and in the fusion tab use the node's optical flow and vector motion blur and set the blur scale to 0.5 then export it again as exr and import this to blender now you can replace the row render and see if the fake motion blur works as intended let's get back to our small emitter it needs more life we can add a displaced modifier with the texture set to clouds and change the coordinates to global add a subdivision surface modifier and move it to the top of the modifier stack make sure the fluid modifier is at the bottom now our fireball will have a more organic surface when it moves around but what is our fireball have to be a ball in the svg tutorial you can learn how to import vector objects to blender and if you convert this to mesh it can be set as a smoke emitter so if you watch both these tutorials this is your chance to just completely light up that like button now for the final render let's import some 3d assets we'll take this katana model from poly haven then we'll get this swat guy character from xamu and give him some sword fighter motion capture in blender position the katana in the hand of the character select the bone that controls the wrist parent the cortana to the mocap armature with the parents set to bone and now we're getting somewhere now separate the blade from the handle so we can set the blade as a smoke emitter glowing ice asphalt mountains pipes rocks barrels a camera rig some camera shake and then turn off the lights [Music] you
Info
Channel: Polyfjord
Views: 374,402
Rating: 4.9819689 out of 5
Keywords:
Id: zyIJQHlFQs0
Channel Id: undefined
Length: 39min 22sec (2362 seconds)
Published: Fri Oct 08 2021
Related Videos
Note
Please note that this website is currently a work in progress! Lots of interesting data and statistics to come.