Houdini Game Tools | Luiz Kruel, Mike Lyndon, Paul Ambrosiussen | ILLUME Webinar - Halloween Edition

Video Statistics and Information

Video
Captions Word Cloud
Reddit Comments
Captions
this is the Houdini games tool webinar my name is Chris hey bear I'm the director of marketing at side effects this webinar is about the Houdini games tools should be about an hour long plus Q&A at the end we're gonna do a whole Q&A session at the end feel free to use the chat there's a chat tool feature as part of this zoom experience if you've got a question though put it in the Q&A so that we can organize those questions and make sure they get answered at the end or at least we'll try to so Houdini and side effects have been in the game space for over 10 years believe it or not we've had more of a focus over the last five years and and about three almost three years ago started doing a game tool development path where we're helping game developers with faster workflows based on the work that the guys that you're gonna hear from today we're gonna talk all about and I would say though that even though the games tools are designed with game development in mind there are tons of film TV and advertising people already using them in that space as well as speeding up the workflows so feel free to use them and we'll talk more about that in the future as well for sure so side effects and Houdini have been used on Triple A games including Ghost Recon Mafia 3 for our cry 5 horizon zero dawn Uncharted 4 and steep in mobile games such as modern combat versus candy crush and indie games such as Planet alpha re in the secretive seasons Sukie in the shadow claw and more go check out side effects calm and look at the the customer stories if you want to learn how Houdini has been used in those games but a year and a half ago our games segment director Judith crow made a really smart decision in bringing the guys that were about to hear from onto the team and they've been working on the game tools ever since Lewis Carell is the senior technical artist here at side effects it's got more of a decade of production experience in games worked on several of the largest franchises in the industry including halo Call of Duty doom Madden and Just Cause Mike Linden is a senior technical artist inside effects he has broad range of experience creating computer graphics for commercials films video games his fascination with the world around us and desire to blend art with his technical tinkering has led to his work making rolling its rolling cloud escapes in Ender's Game generating raging fires and Gears of War and trapping Penguins in an avalanche of snow for Happy Feet two and all as a technical artist that side effects he studied international game architecture and design studies at Breda University of Applied Science sciences used to be an HTV now it's called Breda University of Applied Sciences he enjoys writing tools to support effective our pipelines to help others create amazing things and a better faster and more flexible way so really looking forward to this webinar and over you guys starting with Louise hey everybody so I'm going to take you guys through a quick overview of what the tools are just a quick slide back and then we'll dive right into the tools so we'll split up each of us are showing a few tools I'm showing three Mike's showing three and then Paul is showing four and that's going to give you the top ten tools that we've worked on in the past year so let's jump right ahead and let me share my screen so let's just double check cool so I'll just dive right into the slide back if everyone can see that okay so what we're going to do today is basically talk about what is the game dev tool set and then we're gonna go into the tools demos and then we're here for you guys for as long as you need for Q&A so chat will be online for a little bit after so the game development toolset hopefully you guys are familiar with it before those that are not it's a set of over a hundred tools to basically help game developers leverage houdini they range from everything from simple tools to make some they still have you guys some confirm my zoom flickered we're still here okay cool so basically a set of over a hundred tools to how game developers leverage adeney they range from things like generating a new inclusion all the way for photogrametry effects getting vortex animation textures so we'll run through some of those today and the main reason why we wanted to do this is to soften the learning curve a lot of people coming from games getting into Houdini a lot of the times Houdini's not the primary package they don't have a lot of experience they just want to hop in do something and then get data out and then we also want to improve the Houdini user experience a little bit especially for the new users so in film there's a lot of experience people that have been using Houdini since before it was called Houdini but on the game segment that's definitely a newer area and the team like you saw today it's myself Mike and Paul so the tools if you can think of Houdini as this kind of large sand box filled with nodes and tools that you can use generally speaking a lot of the studios will build their own in-house tools and these can be custom exporters they can be little utilities that you can kind of see that oh I made this pattern of a few notes a lot so let me turn that into an HD a and share that with my studio so what we do as a games team is we visit everybody in the world and then we see which of those tools really should just be part of Houdini like a good example is the calculator and occlusion there like that should just be built-in so we take some of those tools on and then ship those as part of the game development toolset I'm gonna go a quick video on how to install it a little bit later but they are all hosted in github but you can also download them straight from inside of Houdini so the idea here is that we're completely decoupled from Houdini it's not like you need to get a new build you can still stay on your version of Houdini and get new daily versions of the games tools basically any couple from meetings there's over a hundred of them now which meant that we started doing a lot more testing and smoke tests and unit tests to make sure everything is kind of working we actually use that heavily when we did the switch 217 so when a couple of the things change their warnings popped up we were able to basically make sure all the tools were in a decent enough state to push them out to 17 and then we did add some analytics we have over a thousand users using these tools now and close to 53 countries and they're using a lot the one thing in the end analytics that was kind of cool is because we have so many nodes we didn't really know which ones were being used and we had some suspicion that some were just not used at all and just kind of rotted away because we've been doing this for close to three years now and surprisingly pretty like 99% of the tools are being used which is pretty exciting so what what are these nodes we kind of break them down into a few categories there's common workflows that are just things that should just be built into Houdini some of it is maybe it's a little too complicated to do so like baking in Houdini with the big texture node might be a little too technical so we simplify that and we do a lot of work with third parties so we're going to show a couple of them today and then a lot of just basic i/o basically getting data in and out of Houdini so why do we build them so if you think about Houdini as a Formula One car to where you need to be kind of in good shape you kind of need to know the underlying hood everything under the hood and how the car operates you don't need to know how to drive a manual car that's usually what's expected out of a Houdini artist it's like it's a little more technical it's a little bit you kind of need to understand the underlying math maybe even need to code a little bit and the higher-level tools give you that same kind of feeling and experience of making use of Houdini and making awesome content with it but maybe with a little less more technical we kind of coded with a little bit of paint to make the experience a little bit better for you and this is what the last kind of touch' slide because paul said that we have too many slides so I wanted to make sure we keep through these quick so we can get to the tools but the these tools are for you guys and by you guys so it all starts from us talking to you guys you guys say hey wouldn't it be cool if we had this tool to make rock generation better and then we start basically working with you generate a minimal Viable Product get feedback make a release get more feedback fix bugs and then kind of do that loop forever so it is definitely focused on you it's not just us coming up with random tools that we want to build there's a little bit of that but for the most part it comes from you guys driving us and telling us what you mean here's a quick video for those that are not familiar with how to download the tools so all you have to do you can do that right now I'm just launch Houdini load the game development toolset that will be ages ships with Houdini now it's only gonna have a single button which will give you the ability to download the tools and you can choose to use the production build or not and then you just hit update and that's gonna download all of the zip files from github patch the Houdini environment and just work so if you restart Houdini you will have all of the tools kind of ready for you and that's it so now let's go on to the demos Paul's gonna go first then myself then Mike so after Paul Thank You Louise let me just share my screen all right do you see this yep yeah okay just a quick disclaimer the screen recording software you use might take a bit of resources from my machine so it might seem a bit slower but if you use the tools themselves are really quick and so the first tool we're going to talk about is the skinny converter so the skinny converter is a HD a Houdini digital asset that can convert any non-changing topology to forming mesh sequences into a bone based animation so for game engines you can't really bring vertex animations into a game engine by default there are of course solutions like for example phottix animation textures but sometimes you want to have a bone based animation for example if you want to put over a secondary physics simulation in engine or you want to have some interactivity with a player character for example the tool has a bunch of parameters to play with which allow you to get a result that you're looking for so let's take a look at the tool what we do is we just type a skinning converter after you've installed the game of toolset and that gives you this node here what you didn't see is a tool has three inputs the left input is where you want to have your deforming match sequence so we have this simple cloth which is falling and we want to convert that into a bone based animation so we just select our costume and plug it in on the left and if we then visualize it we can now see that we already have our grid here with these orange spheres on it so these orange spheres will basically become bones as soon as we convert it the tool has a bunch of parameters to play with at the top here we can see we have a tab called direct conversion this is what you use to convert your mesh width so at the top first thing you need to do is set your frame range so in this case since my simulation is exactly 50 frames I will set it to 1 to 50 we also have a bunch of capturing methods we have bi-harmonic capture and we have proximity capture I recommend using by demonic capture because it's it does a really good job at capturing the mesh but sometimes it's a bit slow so if you want to have a quicker capture speed I would use proximity but you'll have some less quality basically so for the bone placement it is of course important to know how many bones you're putting down and this is what you can do under the bone placement control tab so with this tab you can either choose uniform placement which allows you to uniformly distribute bones on your mesh right so the more bones you have the higher quality conversion you'll guess for the more identical your bone based animation will be compared to your your products based animation you can also choose adaptive placement so with adaptive placement what this tool essentially does is it looks through the entire frame range of your simulation and then figures out which regions need more bones than others and it does that based on the analysis method it does that based on area deformation based so it looks at the deformation of a mesh on specific regions of the mesh it can do it based on curvature so if specific places in your on your mesh bend a lot you should use curvature based and if you have a mesh that that is somewhat stationary but some parts move faster than others you might want to use a velocity based but for now what I'm going to do is I'm simply going to use the uniform placement with the seat parameter we can get some different results without changing number of bones and with the influence radius we can basically control what the influence radius of the capturing process is and this one is most important for the proximity capture since the piyo monic capture might overwrite this once you have something we like all we need to do is simply hit convert to bones and we can see that we now get this pop-up which says start a conversion generating skeleton baking skeleton and then it tells you the conversion is complete it will also tell you where the output result is so in this case is that the object level in a subnet called skinny conversion geometry 184 bones so you can see what the result of you is once you go up to object level you might see that Houdini is processing something it's now actually doing the capturing phase so I didn't do that while generating the bones it's doing that right now we're seeing now is this is already the converse the computed result so we see these small pins these are the actual bones so if we hit play now this is actually the converted result it's not the mesh we see here if we enable the other one we can compare the two to see if we're happy enough with the result if we want to have a better comparison and what we need to do is we want to can dive into our subnet into our geometry node where we have our conversion and then we can enable this error visualization tab and with this error visualization tab we can essentially see how identical the conversion is with our mesh right so since it's pretty red we can either decide to completely change the number of bones or we can for example use the adaptive placement set it to let's say area deformation based increase the number of bones and then hit convert the bones again once we taught that we can go back to object level it does the capturing process again just wait for that to calculate and then we can see that we now have an updated result which is a lot more identical to the source file as you can see so they're really overlapping right now and once you have that we can simply export it to a game engine but to do that we're going to look at a more interesting result so we also have this other example say we have this market stall and we get some film seems one of the interns Danica did that and we want to bring that into a game engine so if we enable that I already did the conversion beforehand and we hit play we can see that this is the converted result of the simulation but since we want to have this in a game engine we need to export it so what we do is we simply go to file we click export and select film box FBX if we then press here on select file we can specify the location of where we want to export something so let's call this spooky spooky cloth dot FBX why not and hit export then for the export path we of course need to select what we want to export so let's select this market our 108 bones so we simply select the subnet which on the inside has all our bones and the geometry and the null which is to boot in this case so select that hit accept pattern we can leave these to default and then when we simply hit export meaning more than export data to an FBX you wait for that to finish and I want to we can go into our game engine in this case unity going to the folder where we want to input it select our our file and we can then just drag and drop that into the content browser if we then bring it into the scene let's make this a bit bigger set this to 100 and hit apply we should then have our cloth there it is that's huge that's much better all right so we have this but it doesn't play our animation yet since in unity we need to create something called animation controller so we just right click on our on ERISA browser here and to create and select animation controller we can just call this whatever we want so we'll just call this root key controller we then just open this and we drag our animation in here which in this case for some reason did not import doesn't matter we still have our other examples where we already have that set up so in this case we can see that we have our file in this case for this market art which has an animation controller called tarp if you dive in here we can see that we have this main file which is saved inside here so here we have this animation file so you simply drop that in here and you're already good to go after which in the scene you just drag that animation controller you made into this slot here if we let hit play and go into our scene view we can then see that the animation properly plays like it did inside Houdini so that's it for the skinning converter let's take a look at another tool so for next tool we're going to look at something brand new which is called the LED create tool so the LED create tool allows you to very easily create LED change top level from game-ready geometry so if you for example bring in a for the battery scan or something wrong ZBrush you would first use something called a game rest which is a tool that Louise will show later on and that would be your LD zero right that's the game mesh you're going to use which you then plug into the LED crate tool which allows you to create LEDs so to explain what LEDs are I'm going to use a simple sphere so Elodie's or level of details are is basically decreasing the complexity of a mesh as it moves away from the camera so the further away an object is from a camera the less big it is on screen meaning the less detail you need to preserve to get the same sort of look so to see this visualized let's just plug it into the LED create and we can now see that we have four different representations of our sphere lined up next to each other so this is what the LED create tool did for us so we have LED 0 this is what the user will see if they're really close to the object and the further away you get the lower the resolution or the complexity of this mesh gets so but it to itself if you toggle this button on on here and you basically generates this lay up next to each other so let's take a look at a more realistic example so we have this this car object here and we want to generate LEDs for it because for some reason maybe we're building a content for a mobile game we need some LEDs for that so we plug in our LED create tool which then gives us lots of settings to play with so if you scroll down here we can see that we have a mess estimation setting which allows us to tweak our LEDs so on here we can see that we can specify for each LED what the percentage of triangles needs to be so let's say for LOD one we don't want 50% we just want 40% then we can change that to 40% and we can now see that it got reduced to 40% so it's really easy in tweaking this that's from a mess mesh decimation but the tool can also do a shader consolidation for you what shader consolidation is is essentially the reduction of the number of draw calls by combining and materials into a simplified version so this car here let's just turn off this for a second this car has two materials in this case we have one that has textures from disk and we also have a procedural texture right here so this procedural texture is essentially just in a cup net we have some noise here and I applied that using the quick material node using the reference so in this case I just typed up and then up footpath and then point it to the the noise inside the cup net which then applied it to my mesh here as soon as you have that so then when you decimate it or do this here to consolidation it essentially merges all those channels together that you assign using for example the quick material so it will give you maps such as base color roughness metallic normal and any other custom channel you want to have the tool can also generate imposters for you meaning that this tool basically brings you from LOD zero all the way to the apostle level but you can decide to not generate impulses by simply turning off last LEDs and faster for the exporting we put all the the convenience settings you're going to use a lot into a single tap meaning that you have full control over way exported geometry whether or not you want to extract source files those textures that have been applied this is really useful if you're using a procedural shaders inside Houdini because it will bake them out and save them out as DJ files or whatever file type you want simple shader consultation and in foster's it's a real cool thing of this tool as well is that it has a preset system as you might have already seen let's just wait for that to calculate this preset system essentially allows you to build presets for all the settings you see in here for example for the mess estimation so if we select this preset here and we changed for example distant object we can now see that it changed the types of LEDs to what has been defined in this distant object preset and the great thing is this is all defined in a JSON file so if you edit this LED create tool and go to the extra files section you will see that you have this already preset store JSON file which essentially has all these settings that are saved on this parameter interface meaning that if you for example rename this to something called a spooky Halloween car or something and you hit apply you will now have this preset here this also means that you could for example load in an external JSON file from your pipeline and use the - to play with the - also has a bunch of debug settings so if we for example enable our camera 1 and we set this to keep pivot where it is and we lock our camera we can now see that if we enable debug camera that the LED will change based on the camera distance so if we change our preset again to a large object we have more LEDs meaning that if we get closer we will get to see all our LEDs at once but if we simply want to see these happening right here we can use the physical LD slider which allows us to just preview our LEDs right here so it's a really convenient tool we've seen some great work with it already and we're really looking forward to see what you guys are going to do with it so how does that work when you export it out this is it this is another model imported into Maya which is a walker created by Chris of this and it's simply the FBX imported into Maya and meaning that it works right away and you can also still tweak at distance settings in here and the same thing works for game engines such as unity unreal or your own proprietary engines it's a real cool stuff so that's another tool that we looked at for the next tool we're going to look at the physics painter tool this is a tool that we've spoken about in the past already but we've made some great improvements to the tool self after some user feedback and requests that you guys have done so just to rehash the tool I Felix painter is also initiated that allows you to basically paint physics objects onto any other objects and then similarly gravity on those objects you paint it once you do that you basically dry the objects you simulate it and then that allows you to paint over that previous simulation and the match again so you get lots of control switches tools again and at any given time you're only literally a button press away from activating something cool so to see the tool action how do you set it up we just drop down a physics painter tool we plug in our scene so in this case we have a simple box here and we hit the display flag on our physics painter so that doesn't mean that we can paint yet we of course need objects to paint with so we do that by going to the objects tab and and open the dynamics tab which gives you these paint meshes object so if you set this to two we can now see that we have two slots where we can put objects so just to just to show what the tool does let's just use a box and a sphere in this case and we're going to plug in those so let's put the sphere in there and let's put the box in there set this to polygon mesh and probably make this a bit smaller and we're going to do the same thing for the box if we then select our tool and hit enter in the viewport it now gives us our brush and this brush now allows us to paint these objects onto the mesh itself so once we now hit the up key or the right key we cannot see that it's immolates once you have a frame we like we can just hit dry current paint and we now convert all those dynamic objects into static objects meaning that we can now paint on top of those again and continue painting so you can do real cool stuff with this all by just hitting dry current paint if you want to delete everything we can just hit clear out paint and if we want to remove the objects that we just painted we can use clear current paint so that just removes what you just painted let's take a look at a cooler example we're going to look at painting at big heads so since Houdini 17 we have a new cool tool called convex decomposition which you'll get straight out of the box from Houdini and it allows you to basically take a complex object so in this case this pig head and if we were to use complex hull we can see that it doesn't really match match the pig head shape right as you can see it has this sort of hole in here that we would like to remove I just press W by the way to get into wireframe mode if you're wondering so we can use the convex decomposition node for that and what it does is it essentially converts this mesh from a single convex hull into multiple meaning that you can have much more detail while still preserving the same sort of performance that you get with a complex haul mesh so if you then use that in physics painter and we can now see that the collision between has become a lot more precise because it actually uses the shape of the pig head that we defined using the convex decomposition so to use that all we need to do is just point to the convex decomposition for a simulation mesh it will then use that object as the collision mesh for a simulation that of course doesn't mean that it looks like your random mesh well that is what the render mesh parameter is for so if you enable that and we point it to the actual pig head which hasn't been cut up using the convex decomposition we can then see that it uses that actual real mesh that we use as reference as the output so then for a more cool example because we want to do pretty stuff with it of course I imported these logs from the manga scans library and I also imported some twigs which we're going to paint and now I'm going to show you the new cool stuff so as you can see I have 50 objects assigned to my paint mesh here and I'm going to paint all of those but I don't want to simply paint in a simple stroke like we see here we want to paint lots of stuff real quick because we want to fill the scene with lots of twigs at the same time so that is where this new button comes in this paint bucket mode when you enable that and you hit enter this this pointer that you have this brush with the sphere if we hold shift and we drag left or right we can basically control how big our brush is we can also control how many bucket items you have meaning that as soon as we hit it click it will put 10 items into that photometric brush we have so let's build some cool stuff with that so as you can see we can now simply drag along these meshes and create something that looks really complex really quickly we just simulate that and we already have something really cool so the improvement of this is that you can now build these really complex looking scenes in one go instead of having to paint multiple times meaning we'll probably see much more cool stuff from you guys so once you dry that we now have a really cool scene again I'll set up once you have that we can then for example export it out to our game engine or we can render it here inside Houdini lots of cool stuff so that's it for a physics painter but now we're going to look at something that is also brand-new which is something that is about improving the UX that you as a user have inside Houdini and that is something called a few poor shaders so the games team has been like I said working on improving the overall us that you as a user get inside Houdini and part of this is for example the marmoset drop which allows you to very easily create real-time renders and animations but we're also working on improving the viewport itself this is why we've been working on some real-time shaders real time as in here in Houdini for the viewbot so that's what I'm going to show you right now let's see it is loading alright there is and the first example that I'm going to show you is a flow map so you might already know the flow map tools from Houdini which can create really cool stuff so this is what you will see beforehand right so this is what you would have and you would use for example the simple Baker to bake this to texture I'm doing that into a game engine and to be using your shader but we've made that work interview for yourself so let's just look at this simple example we have a grid we applied a mountain to it and we did a soft transform to sort of create this slope and then on the floor map node itself these tools also have lots of updates I won't cover all of them in this video but as you can see I simply put the slope which is a new option and that will essentially look at the slope of this mesh and generate this base flow map from it then with a guide in this case at this curve I basically generated more of a direction so if we visualize that and turn off these other guys we can see that it used that guide to to generate the direction from it right so we use that curve to generate the direction let's put that back to slope so now we see that we use the guide then what I did is I used obstacles so we have this cool scene which has lots of rocks and once this rocks to effect the flow map itself that is what you do with the flow map obstacle then I added the second obstacle which is this object in the middle of the river and then I used a flow map brush converted that to color and then now we get to the real cool tool so this is the flow map visualize this is a new stuff if you merge that and we get play we can now see that we have that full map working in real time in the viewport so this allows you to tweak this flow map without having to export it first so if you for example take this brush we can now literally paint on our flow map and see that working in the viewport so this means that your speed of iteration has become a lot faster and also allows you to very easily tweak stuff for example this rock if I don't like to flow around it we can just change that here in the viewport itself without having to export it out as a texture first into a game engine so the to itself it's actually a shop net it's a shader in the shop nuts so if we dive inside this flow map visualize we can see that it essentially is it brings in the grid that we have and it promotes your UVs from vertex to points which is what to share your needs from you then with a material node you can simply assign this shader that we generated which is saved inside the shop net so that is what you see here this is the actual viewport shader that we're seeing working in the view put right now and it's all based on Geo SL so if you want to modify this code or want to use it as reference all you do if you simply click on type properties and you go to the code tab and this shows you all the different shaders that you have here so the photo shader the fragment shader and the geometry shader so in this case for the full map example and the fragment shader is what you would want to edit and to see that code is it looks really scary but what we do is we we cleaned up the examples that Houdini provides by default so it is easy to modify and learn from so we have this input parameters here then we have some parameters so this is what you see on the user interface we then have some custom functions that we created we have our main function so this is what's happening all the time when rendering and this is where our logic is placed so this is the code for our flow map shader so if you have your own logic for a flow map shader that you use in your game engine you might want to for example port that into this shader itself so if you have an exact results between engine and putting yourself and then here at the bottom what it does it assigns the outputs so Houdini basically knows how to render and what surrender so that's it for the three flow example we hope that you do real cool stuff with it and hope that it improves your iteration speed so that's the first example but like I said we're constantly working on improving it and building more of these we also built the texture sheet example so people love texture sheets and they love motion vectors so why not have that working in the viewport as well so if we enable that we can now see that we have this motion vector tool working in the viewport in real time so there we go and it's nice to give this full control over the speed if you want to make it really slow we can now properly see the blending it happens with the motion vectors you can apply or not apply double motion vectors to see how that results look so usually we use double motion vectors because it does a better result you can specify the number of rows and columns if your Center sheet has eight times eight as price change that number and it also allows you to change the distortion number but the default is usually what you want to have so that's it for the viewport shader like I said there is many more coming for example for the Felix animation textures so you can directly see those in the viewport and also for imposters which means that you can very easily see those and for example use them in crowd workflows but also see them in the LED tools and that's it for me for now on to you Louise so that was awesome and and the other note that we like to say is that all of these demos are live so expect horrible things to happen all crushed it and nothing bad happen but we still have all our Mike and myself to mess things up so on with the show I'm going to be talking about three tools the first one is the reality capture plugin so reality capture for those that aren't familiar is a photogrametry software so we have a plugin that basically lets you run reality capture inside of Houdini I'll go through that workflow after that we'll talk about the game rez know that Paul mentioned and the idea there is we have this mesh pipeline that goes from high res asset all the way down to LOD 1 or LOD 0 automatically we'll go through that and then finally I'll show map box node which is a combination of osm import and satellite and color or height information for anywhere on the world so we'll go through those in a little bit so to start off I have a empty scene almost empty scene of Houdini and I'm gonna start by just going through and seeing the reality capture notes so as of last night's build we've moved the reality capture plug-in to be a part of the game dev tools so before you had to kind of run a separate installer but now they should just come with Houdini itself or the game dev tools so there's five nodes aligned images create models extract cameras register images and text remodel so we start off with register images and all this node does is basically takes a series of images in this case there's this Apple data set that we provide for you guys as well so we can just hit open and this is simply it's just a multi-part that just has all of the differences in a list that actually stores those as a detail attribute on this node which then will pass over to the next notes so I'm actually gonna do the next step which is aligning the cameras I'm live it's gonna take a little bit but I'll talk through it so if we do our line images this is what the node looks like by default that's not gonna do anything because we've added this ability of doing manual mode so before reality capture will basically just start cooking immediately and then Houdini would lock up for however long reality capture needs to do its work and that kind of felt really bad so this is a non-traditional Houdini thing but we're starting to try it out to where now there's this manual mode built into the nodes themselves traditionally we have those just here in the bottom where you can kind of set it from auto update to manual but now you can turn that off and it would just run away and do its thing or we can turn it on so the other thing that you'll see actually we also enabled caching so if you see I didn't even have to compute anything but I'll compute it anyway so I'll just kick this off so we can see it running as I'm talking the first thing that you do if you drop this node and then you get a error if you middle mouse click you sometimes will say fail to load license so what you need to do is you click this button that says get license and this will launch the reality capture website that you can just type in your credentials and then use your license so this works with all of the regular reality capture licenses except the steam one including the kind of demo or promo the the less expensive one so feel free to use it the thought there was that if you have reality capture you shouldn't have to pay for it again just use a plugin so if you see it already registered all my 59 images and here I have a point cloud in this case we can middle mouse over it to see how many so it's a hundred and ninety four thousand points just for the kind of sparse cloud after here we would create the model I'm not gonna do this because this does take a while for this model I think in my machine it takes around ten minutes which is still not awful compared to what people are used to waiting for photogrammetry but I do have the result here cached so we can see here we have that same point cloud let me hide the other objects and then we can see the model loaded if you can see here we actually show how many triangles it has it has nine million points for the South Pole so it's a pretty dense Apple and it's just using vertex colors so here we can see this is actually the wireframe so if we go all the way in you can start seeing the resolution that we have so it's pretty incredible and pretty fast to use I'm super simple like even if you don't know Houdini these tools are designed for you to just kind of hop in and do stuff some of the attributes here the ability to colorize the model so whether or not you want vertex colors the ability of maxing the poly counts I'll touch on this in a second but reality capture can easily give you like a hundred million Polly's that the Houdini viewport might not handle so you have the ability of just clamping that and saying by default nothing more than 50 million that's that's good enough for me or you have the ability of kind of decoupling the internal reality capture model from the Houdini display model so in this case we can basically say the max display poly cow is going to be something but we're still going to have in memory the original reality capture model so you can see here where I say reality capture model has humming triangles that's the kind of internal one so even if Houdini is telling you something and this is telling you what under the hood is happening and so now I'm gonna hop over to a slightly more complicated scene that I ran through yesterday so here again adding the images only 21 images to generate this guy here we have the alignment so the alignment is actually going to give me a lot more points I'm just hide if you want to hide the background image we can hide those here let's dark so we can see so it actually generated some what we expect like it picked up some of the background information that we might not want so I'm just using regular Houdini tools here to basically delete everything that is not my selection and then I want to generate access online bounding box of that selection so I'd feed that as the second input into the create model which is going to give me in this case 7 million poly I'm statue so here again we can go into wireframe and see all the fancy detail and this is not super fancy you can see there's a lot of baked in lighting which we have some tools to get rid of but what we can do now is one of the common questions was if I want to generate a texture out of this so a lot of people just don't care and though just use the the vertex colors in that case you can just use regular Houdini pipelines sort like here we're gonna clip the floor we're gonna delete the small parts so there's a couple of kind of these fringy exploding bits and then we're gonna run that game Razzano that'll talk in a second and so here we're actually looking at I think 15 thousand yeah so fifteen thousand price automatically generated from the photogrammetry so I didn't really have to do any work but I baked the color from the vertex colors and then sometimes people are like wow if my model wasn't good enough sometimes I like to generate an actual texture from reality capture so how would I do that so that's what this other chain is so you don't want to generate the texture on the full 7 million points just because it's kind of overkill so what we can do is you can actually chain to reality capture create model notes together and if we turn on this user inputs model data instead of recalculating it from the camera's it's just going to take the model data from this guy and then do that summation so in this case I'm dropping it down to 500,000 points then I'm running that texture model nude which is going to give me the the texture model in this case it's gonna actually also give me the option of a model path so this is basically dumping this out to this so I'm basically dumping out an 8k texture with an obj so if I do want to bake just the textures from the photogrammetry itself you have that option and then you can bake your normal map your inclusion on though you are the data from your high res so that's it for the reality capture plug-in it's really fairly straightforward to use one limitation that we do have is we don't have support for control points that's a commonly requested feature that we're gonna look into adding but so expect that to come and then somewhat near future working with the reality capture team on how to best integrate that it but the thought here is if you have lots and lots of crops you can definitely use this pipeline if you have one single crop that you kind of need to finagle a lot reality captures still better for that so the idea of using Houdini and that pipeline is if you have lots of models that you kind of want to churn through that pipeline so now let's go a little bit deeper into this game resin oat let me just check my notes to make sure all the notes and the other know that I had was the extract cameras which we can try to see if this will work you might not because I'm improvising so if we funnel this in from it then actually works so if we use this extract cameras we've just chained it from the aligned images and we can actually get the camera positions of the the photogrammetry scan we don't have rotations yet and that's kind of a quaternion math nightmare of gaining things from reality capture space into Houdini space but we're working on that problem and but for now you definitely have all the positions and at least you can kind of see which one's aligned and which ones didn't so get back to the schedule we'll look into the game rez node so the game rez node is something that we've been working on for close to two years at this point it's made up of lots of different parts so what it does is it will automatically reduce your mesh including some options for adding fossilization and actually using a Quadra measure called instant meshes but also auto you view your so we have multiple different techniques that we can go through in a little bit and then you actually do your baking as well so this goes from a high res mesh into a gamer as I'm in a few minutes depending on your bake quality so I'm gonna open up a new scene and we're gonna try to run through a quick example life so that's not what I wanted to grab so let's fire up a new empty Houdini which I already had ready so this one doesn't have anything that's just a regular node and we're gonna drop in a file node and I am going to load in this Nike model that I downloaded off the internet so this is just actually the STL so it's not even cleaned up I wanted to do the clean up stuff here if you can see it comes and rotated and if I disable my back face culling you'll actually see that it's also inside out so this is generally what you might get out of Candida so to fix the inside out we just drop in a reverse node and we followed that in and then to rotate it we just dropped in the transform node and we rotate it by negative 90 so now we have our model kind of back where it needs to be on the model count for this is 500,000 Poly's so the idea here is you can I use photogrammetry because it's easy well you can easily do this with a ZBrush model or a Maya model or Mudbox or wherever you're coming from so now we'll drop in that game rez node and the one change that I will make is I will change the bake size so just for our times so instead of a 2/5 where it's a 2k texture I'm making 256 and here you can see just by turning on the visibility it already ran off and started cooking it already did the decimation at this point it's backing and after this it's gonna start baking so the bake hopefully will take around 30 years seconds because it's a low texture but that's really all there's to it we'll go through some of the settings here when it kind of comes back up but this is this basically took us a few years of starting with Houdini 16 we rewrote our poly reduction we've been seeing us rewrite a lot of the V tools so the new if you lay out the new UV flatten that's been rewritten twice since 2016 and stay there it goes so then once it's done it would actually do all of the setup for you so in this case it loaded in my model it also loaded in the normal map and the textures this don't worry too much about it this is actually a viewport bug in Houdini to where if it gets too close to the edge we start getting some of this banding I have the model up here all so that I can show you guys when it gets baked at a higher risk that I'll show in a second so the nice thing is for the auto you being we already had an auto UV that you can just use by typing in Auto UV but we added the UV auto seam technique that is new in 17 so before 17 this model was a nightmare to try to get UV so if we look at the UVs it's not perfect but it's not bad the thought here is this is not gonna be necessarily your final game res metal if you're doing a VR experience that you don't really care about the the UVs are just baking things out this is perfectly shippable if you bake at a higher risk but if you are kind of going in and you want to optimize everything and you like to see your UV shells and recognize them you might want to go in and clean this up or kind of do my new you v's but the thought is you only do that once per project right is you get the your asset in from ZBrush you iterate you get art director feedback you get design feedback you loop on that 30 times until you actually have the model you want and then once you have that and that's when you spend your time going through a topology tool then UV tools so before this just would fail horribly we can actually visualize the different parts of the pipeline here so if we turn on you v's there's just one little part that it kind of doesn't do a great job at so we're still working on that but for the most part it gives you pretty clean non distorted you v's for most of it which is what we want on the reduction tab we and then here their settings on basically how which technique do you want to use and we have videos on it if you want to merge small islands which flattening methods so it's this is just kind of standard UV workflows so on the reduction you can clearly say how many verts you want in this case 50,000 I'm actually going to check this use instant meshes because I like this is going to give us a Quadra mesh so instant mesh is a open source Quadra measure that if you have the executable in your My Documents Houdini 17 path it will just pick it up and use it so here it's gonna kind of go off and do the packing Wow okay so it actually gave me back so this will actually give you pretty nice quad topology still not perfectly it has some continuation issues that hopefully we'll address but then we can kind of go in and see the final model so I do have the final model baked out in marmoset so this is the the same model baked with 4k texture so you can see this even though it is kind of a completely automated pipeline it still holds up and if you put this on a website or if you put this on sketchfab or even put it in your game as a block out or even final art like if you're gonna be moving rocks and all these other assets they might not necessarily care about you should spend the time really focusing in your assets so that's the the game rest biplane it's relatively straightforward to use a lot of people have been using it in production so hopefully you guys are using it and enjoying it and any questions I'll be able to kind of help you guys out in the next session so then so that's it for the game rise tool and that's open a new scene and next we're gonna go into map box so for those that are not familiar map box is a map provider they do a lot of work with kind of cars and different industries but they do have an API for downloading map data and kind of browsing the world so if we drop in the map box node which is is already live but we haven't really made a video of it because we're kind of holding out to show you guys in this webinar so here there's gonna be a slot for your map Box API key if you sign up for free you can just plug it in here I have a preset that will set my key for me there is a licensing associated with it if you want to use it for commercial purposes if you want to talk to them there's a button here to contact them and work with them on it but if you want to just use it and kind of play around with it you can hit this lookup button and that's gonna give me a browser of the world and I can literally go anywhere in the world and I will download the data for the terrain the height maps the colors and the OSM data for it so I like to start off with somewhere in the Grand Canyon because it has really really big steep area so Grand Canyon National Parks over here we can keep zooming in you can see if you just download this so we'll get this image and it will kind of without the markings and apply that but if you kind of keep going in after some point you can actually even get pretty close resolution so this might be too close so I actually want somewhere here and let's just hit download so this is not cached this is just me downloading it I said it's gonna dry out download the height information the image and then the OSM data so let's check it out what it's doing and hopefully so now it's doing loading everything up I'd already downloaded if we hit spacebar F you'll see that part of the world loaded so there it is you will see that there is some copyright information and the map box logo on your images so that's to kind of discourage you from using this on commercial project so I would recommend just talking to them and working out a deal but this is the kind of dream so we had osm data for a little bit and what osm data is is essentially this it is curves for the whole world so we have even on areas that there's no roads or buildings you still get a lot of information from osm but once the next step the next logical step was actually getting in the height and the color information so the workflow instead of trying to line these up by hain and downloading them from two different web sites and trying to line up latitudes and longitudes and circumference of the world I just wanted to have a browser that I still like the area that I want and then I hit download and I'm done so that's the tool that we have here and as you saw the first input or the first output is the the height field you can actually change it to be polygons if you want polygons instead of the height fields the resolution is a two forty-eight per square for whatever you download so if you download the whole state of Florida or a tiny little space you're going to get a 2k texture for it and then you can actually merge in the terrain with the OSM theta so you can kind of see where they line up and it's actually pretty close or it's then on we can offset the terrain a little bit or the curves from the terrain so you can actually see that we have some of the markings of where the cliffs are some of the ridges so it's pretty damn awesome and then you also have the rivers and all the paths so this is great for a terrain piece but let's go to a city so if we load up our image again it's going to remember where we were and I want to go somewhere in Austin because I used to live there for a while and I generally remember the area and so let's go this way this way a tricky Meiko right on our Packer key and went too far so there Austin so I'm gonna go to Lake Travis for those that are in the area there's a dam in school dam that I'm gonna kind of go around and just pull that area so this is the area that I want this is the dam this is the island there's some houses over here it's going to hit download and it's going to do the same process that it did I'm just gonna get the information so you see I'm being sloppy I'm not really caring where it is and it's going to give me exactly what I want so that's the beauty of live demos hopefully it'll just work but if it doesn't I have some backups so here it is obviously the height differences are not as drastic as the Grand Canyon well you still get so like where the dam is you can see that there is a height difference of where the dam is and then we also get some data here for the houses and we can just isolate these and some of those some of the roads so what we can do here is I like these houses and it's going to go on them in 3d so we have this note for osm buildings that we can just funnel in from the know into it and this is going to give you little extrusions for the the terrain so we've emerged that back cane and we remove that offset from ten back to zero and we're gonna put them back on the ground nicely enough a lot of the buildings in this area already had height information but if you don't you can actually generate buildings on missing data I'm so if you see now it's gonna actually generate a few more and these are just gonna be randomly from 10 meters to 30 meters so it's kind of up to you to depending on your city where you want to guess but ideally the city already has a lot of the data for you so let's look at a bigger city and this was the kind of image that we showed on the webinar so so this is what New York looks like and again this is the same note right I just chose the coordinates for New York I hit download it's a little bit more data so I chose to cache it the nice thing about New York is that it does have not only the buildings it actually has building parts and we know how to handle that data so a lot of these buildings so like Empire State is actually a tiered building over here so we actually get a lot of that information just straight out of OSF so we don't need to do a lot of the guessing data a lot of the guessing work comes in from like Jersey City and Brooklyn and Queens where some of the data might not be present but that's what gos imply k-- the other no that i've added and i don't think i've checked this in yet but it's gonna go in i'm tonight is this osm filter node so the OSM data has a lot of stuff in it so it has subways it has rows it has if you want to get down as sometimes as parking meters so the filter node lets you basically isolate just the areas that you want of course you can go in the attributes if we look here in the geometry spreadsheets on the primitives there's literally hundreds of these attributes from names from where they are if there's a bar and then there's all sorts of crazy data that it's marked up and we just ingest all of it so you can use it but there's some key ones like buildings and then roads so there's different types of roads so there's primary secondary you can kind of see it as it's coming up so foot waste pedestrians other and then other data just the other kind of stuff that is not I think there's like in New York there's ferry tracks and everything so it lets you a little bit more so if you don't want if you want to do a map or something or if you don't want to use the USM buildings you want to do something custom to actually take the footprints and then rent it on a farm and kind of generate the footprints themselves you can do that but that's it so the map box no it is live you can download it you can play with it of course contact them if you're interested in licensing this tour using on a project but if you just want to play around with it for non-commercial knock yourself out and go anywhere in the world and pick it so now that's it for me I'm gonna hand it over to Mike that's gonna bring us home thanks Louise I just wanted to point something out because I don't know how many people watching this know this but the reason we're all streaming separate video streams I don't know if Chris mentioned this is could roll in different cities so Louise is in in Miami correct Greg yeah Paul is in LA and I'm in Toronto so we we are literally a global team working on this stuff okay so enough talking let's get to the fun stuff I'm gonna be showing some stuff which has been around for a while but if you're new to great it would ask me for to work okay if you are new to Fellini then the stuff might be less familiar so let's begin here so the first thing I want to talk about is imposters Paul touched briefly on this idea in the the Lord tool because you can actually have as your final LOD an impostor which essentially is a sprite instead of dealing with all the geometry of something you just have a single card with the texture on it which updates based on the angle so I'm going to show you how to set that up and then also show some updates to the animation imposters specifically so what I've got here is just a really simple run cycle of a card character and to setup an imposter you need two things if you go to your add context and I should probably point this out because I do this quite quickly just a little note if you ever need to add a shortcut or a key binding to something that's in one of your your menus you can actually go click on it with ctrl shift and alt so for instance if I wanted to add a shortcut key for chops then what that will do is if I click on that with ctrl shift and alt it'll bring up the hotkey manager already set to that and then you can just add in your your hotkey for that option and the reason I'm showing you that is because I actually use that to jump between object materials as well as cops and the render notes so if you're wondering how I'm doing that that's how I am doing it so the first thing I need in my art context is the game Dave impostor texture node and just for the sake of kind of going through some of the stuff I will retype this and Paul was kind enough to add to this for us the ability to handle octahedral imposters which Ryan Brooks called out in a post from epic awhile ago and it's a little bit more efficient way of dealing with imposters so that's the first thing that I need and I'm going to point this at my mocap geo I'm just gonna grab that there and then I also need a camera rig so for the camera rig I'm going to jump back to my icon to object-- context and drop down and then posture camera rig and I'll just rename this as well he drawled reek and this is a little funny but basically you need to point this at ask Rob and then the Rob at this so I'll do it that way around first I'm pointing this at the octahedral impostor and then I'll jump that way around and in here I go to camera rig and I'm gonna hit that to this guy over here so I just want to kind of show you what's happening a little bit under the hood I'll set this to Hemi octahedron and drop it down to 1024 and if I go to my render view then what I can do is I can essentially see what this is going to look like so there's a bunch of different render nodes available in this case I'm going to have a look at the octahedral one and the cool thing with us is we have a lens shader which essentially renders the same object from multiple angles all in one go so instead of having to to wait for multiple Reynders for each frame it'll actually take care of the whole thing in one fell swoop which is pretty cool so this is what an imposter texture would look like and then this you would hook up in your your game engine so that's just quick kind of overview of of what the imposters are what I wanted to show specifically today has to do with some updates the animation imposters because that did have to be done as single frames which took some time and wasn't the greatest so what I have here is still this the same animation I have a camera rig already set up and then I also have a game day of imposter textures Rob and this is set to animation and the cool thing is now if I go to render view we've kind of combined two things here so there is now a specific wrap for that which is the to render animation lens and basically what that's going to do is it's going to give me a render for the specific frame from a number of different angles around the object which will look like this will let that load up there we go there is jinxed it let's see if we can bring that back up quickly so while that's loading up Chris do we have any questions that we might want to answer while this is loading there's a bunch of questions we've been answering some along the way in the Q&A area but train two is erosion sim for example I think we'll keep on going and then we'll save some questions for the end I think we'll do it all at once no worries this loaded up pretty quickly so we should be good okay let's see if this decides not to crash on me this time so what I wanted to point out was if I come here and I hit render let's see how this goes [Music] there we go okay so what you're seeing now essentially is a render around the the character from a number of different angles for that specific frame so if I was to step forward a frame you can see it now updates and does that so essentially what I can do when I hit render here is it will do as many of these as there are frames which is here the animation frames 1 to 16 and then it'll composite that all together so my final texture looks something like not that one there let's see if we can find it over here will look like this and that is loading somewhere as if we can find it so and I forgot to load my light which is why I'm not getting any beauty coming through actually now I'm reloading the wrong one let's do this guy over here preview and we'll let that load up here we go so this is the texture that it's generated so now I can take this into my game engine apply to sprite and then using some shadow magic we can we can choose which one of those images we want so you probably saw win this crashed I already have something loaded up to show you so let me go and grab that quickly and basically if we have a look at this we can use it in a number of different ways so this is the imposter being used or struggling a bit so we can do that again where I have the sprite attached to a particle system and I can do kind of cheap pads in the background so as I move around and hopefully this doesn't fail me you can see that we're getting the correct angle for that object and the way that I set that up I'm not going to go into too much detail about the shader specifically but I'll kind of show you a little bit about it is like I said it's it's basically taking the camera position to the particle position figuring out that angle and then based on that picking one of the textures in the the spritesheet or in the texture sheet if you want to know more about this I'd suggest checking out wine boxes post and I think epic does have a bloop plugin content content plug-in that will give you some more information as well as as to how that works so that's just very quickly something that you might want to use you can either use it for static textures or auto static objects or animated objects and it's it's relatively quick to do you saw that the the render itself first static one was almost immediate this takes I would say about a minute to generate and then of course we also do provide the option for base color and normal so if you want to recreate this with in-game lighting then it'll handle that as well so that's impostors let's jump on to the next one and we're gonna be looking at let's see look at some IVD workflow stuff so if you haven't had a chance play over seventeen yet I recommend you check it out we've got a bunch of new tools specifically for our BD and fracturing and before seventeen came out we were already looking at how we can improve the overall our BD workflow there's already great shelf tools can help you set up some of these things but what we wanted to do is see if we could kind of encapsulate some of these ideas that are done over and over and over again so I'll let this load so I think there are three parts to crafting an instruction sequence there's your fracturing of the geometry there's the the directing of what happens to those fraction pieces when they get activated how they get hit and then there's the solver itself so taking that idea we wanted to kind of provide three nodes to to handle that so what I've got here is just a little model to kind of test this out with and previously we would have used the our body fracture node which is part of the the game dev tool which was kind of like a stopgap but you're still more than welcome to use it but what we now have which is super cool is the IBD material fracture presets now this is a new no 217 it's basically a wrapper for a bunch of great stuff it can do presets for concrete wood and glass so not necessarily game deer specific but we wanted to make sure that it worked with the game dev tools so to give you an idea if I plug this guy in it takes a little while to to initialize and then I'll click down and explode nodes we can see what's going on explode come on so you can see that we've we've now got doubling of images let's hide that guy and we can see what's happening so the the material fractured does recursive fracturing in this case it's doing two levels of fracturing so I'm just going to increase this to say thirty scatter points for the the base level and then what it's doing is for each of those thirty pieces it's randomly picking ones and dividing them up into you in more pieces so you get a much better look I think than just a standard Voronoi fracture the other thing I might want to do as well is it's just have a look at the actual volume that's being used to scatter the points and right now it's scattering points kind of in these areas over here but what I'd like it to do is just be a little bit more even in its scattering so I'm just increase the the noise frequency I think by two should be okay see if it gives me something I'm happy with and I apologize my laptop is going as fast as it can to provide these images there we are so I'm pretty happy with that I might just move the noise down a little bit and then that's gonna be used to scatter the points and in fracture up the geometry okay so let's hide that again and we'll get rid of that you know I have a look at this and so you can now see that we're getting some some kind of interesting fractures so this is all pretty standard now the important part to this really is the the game-day of tools that we want to show and that's the ugly director and the IBD solver and the idea behind this is this would be used for your kind of more simplified destruction pieces where you just need to get it out as quickly as possible you don't have to do anything too complex you want to fracture it up maybe activate some pieces and then and then spit it out so for that like I said we have the IBD director and I'll go into a little bit more detail about that in a second and then we have the RBD solver so all these are really are just wrappers around a bunch of stuff that you might want to do yourself in fact I don't want to include that I'm gonna put that in there a notes on our body material fracture it has a couple of outputs the one on the left is for your export to render geometry and the one on the right is your proxy or collision Geo and the idea here is that you can actually noise up your export zero for interior detail and edge detail but then for your collision geometry which generally you want to be a convex hull it'll keep that as as convex geo so with that all being said let me just show you what I've got I put down the director and the solver and if I hit play there we go we're doing a basic simulation so what this is doing is it's it's sitting up all kind of attributes that you need for for a an orbital simulation and the ugly director is really what we care about because it includes a bunch of cool things that allows you to activate at a specific frame it allows you to use volumes to decide what gets activated if you want something to add a force to it kind of encapsulates all that stuff that you might want to play with and just to kind of save time I've already set some of this up so that we can go through it but you saw they are dropping down the nodes and and getting started really doesn't take too much time so this is almost identical in its setup we take that same statue and fracturing it up using the RBD material fracture and the settings on this by the way are identical to the other one and you're probably saying well then why don't you just use the other one Mike it's a good point so what I want to show here is I'm going to go through a couple of different ways you can use the RVD director so first thing I'm going to show you is exactly the same as what you had before essentially what this is doing is the RVD director is activated frame 19 so everything will start simulating as part of this object at frame 19 but let's say that I want to stage it a little bit better I want to have half of it fall a little sooner and then the other half fall a little bit later well what I can actually do is I can put down abounding objects as can be any geometry essentially and I can actually plugged into the IBD director so I've got a second IBD director here so these can actually chain together and I've plugged this in and then I've actually set the frame to activate at frame ten and what that means is everything in this area will start at ten and then everything in the other area will be its frame 19 so if we have a look at how that now works we play it again you'll see at frame 10 the one side starts falling down and at frame 19 the other side starts falling down so this is a really quick way for for sitting this stuff up and then just showing one more thing about this you can also use that same bounding object to create a volume and then add a force so if I was to turn on create force from objects on the RBD director and play this again you'll actually get something which is now kind of pushing you'll notice that some of the pieces are essentially being pushed to the right and that's because that I'm adding a force to it so I think to maybe make this a little clearer I'll just move this over to the other side so you can see we'll probably get everything exploding all over the place now but that's fine let's see what this does there we go so that is now picking up from the SDF that's created from that object a direction and then it's adding that as a force to that object I'm going to move that back into position so there's one other thing that you might want to know about the OBD director and let's do with animated objects so I've actually got a fear here that I want to use as a Collider I want to basically drive it through my my simulation and the way that I do that is once again just another RBD director except I've set the type to animators and so what this will do is it will take animated information in and in a certain frame we can switch it over to using a dynamic object so remember that at 19 was when we kind of had stuff falling down so frame 18 I'm going to do it the other way around and if I now play this you'll see we get the first part falling and then we get that blasting through so in very little time I think you can start crafting your simulations to do some interesting things and like I said the purpose of this is to handle some of your more simple stuff we'd like to keep adding to this at some point constraints would be a part of it but for now this is kind of just the initial setup okay so that's just a little bit about the OBD director our buddy solver and then a very brief intro into the of the material fracture so the next thing I want to look at has has probably been around as one of the the oldest game dev tools we've had and that is the vertex animation textures but if you're new to Houdini maybe you're not familiar with them or if you're in the film industry this is maybe something that you might want to use but haven't come across in your field and the idea behind this I'll start with the cloth example that Paul showed a little bit earlier so Paul showed how to use the the skinning converter to basically take a cloth simulation and bind a bunch of joints to it and then have that play in your engine which is great because if you don't have a lot of texture memory to work with or your engine doesn't allow you to actually play with the vertex shader then that's a good way to do it but there is another way to do it as well and that's where the vertex animation textures come in so this is the simply basically as it goes I mean this is the velum solver in all its glory and it's it's moving through that relatively quickly but then what I want to do is I want to export this out and and the skinning converter as as good as it is might not necessarily give you the detail that you want for for higher precision stuff and and that's where the vertex animation textures come in so the way that this works is we'll come over here I've actually cached this out already just to save time is I'm going to take this I'm going to write it out to a texture so the way that I do that is I can drop down in my app context a vertex animation textures node I pointed to the thing that I want to export and you do this to the object level thing which in this case is my bat node which is short for the vertex animation textures and for now I'm going to leave the settings pretty much at a default but we have four different methods that you can export something you can do soft body rigid body fluids as well as sprites and just for today I'm going to be showing soft body and rigid body and we do have videos online and go into more detail about the others if you're interested in those but this is kind of just a refresher for for someone maybe that hasn't come across this so once I've done that and I kind of plugged it in I'm gonna do a little bit of cleanup I'll rename this in a webinar and this is just a personal preference I like to name it based on the name of the node instead of the hip file and with all of that done I can then hit render and it will process the geo and generate these textures so if you've never seen a vertex animation texture before this is what it looks like and it will just load it up quickly in a webinar and I won't go into this too much I want to leave enough time for Q&A as well so it looks like this and so essentially what we're doing is we're storing the position of each vertex in the pixel so each line of that texture represents a frame of the animation and sometimes multiple lines actually represent a frame so we can now use this in the vertex shader in the game engine side to reproduce this animation so I'll run you through kind of how we do that to make life a little bit easier we do have shaders you can download for unity it's part of the game dev tool set and then directly within here you can actually open up one of these little boxes and it has all of this crazy code which will generate the shader Network for unreal so if I copy all of this stuff here I can jump back across to unreal and give me a second while I load up the right one and I'm just going to kind of show you pieces of this without going into all of it demo shader because I have set this up like I said I want to say I don't want to use up too much of your time for this and we do have videos that go into more detail if if you're interested so you can get this to connect here we go okay so what I did was just going through that again I copy this over here I come over here I hit paste and I get that full network so hopefully that makes your life a lot easier for setting up your base shader and then you can create material instances from that so jumping ahead like I said I don't want to take up too much of your time I'm gonna just load something that I've done already so a couple of things to note and maybe this is worth doing here because I know this question comes up quite a bit when you import your mesh because you're gonna get two pieces of data you're gonna get come back here you're gonna get an FBX file and you're also going to get an e XR or whatever you want to output so the one is the mesh the other one is the texture when you import your mesh make sure to turn off merge degenerates Poly's and then actually in your geometry settings in the details panel turn on useful precision you v's and it'll give you a better results for certain things you generally want to turn that regardless turn that on godless and then the other thing is to do with the textures so once you've imported the texture you generally want to use vector displacement map as your compression setting it gives a better results than HDR in terms of not messing with these values because we actually want these values to be as precise as possible and the other thing is to change your filter to nearest because if it's it's or one of the others it's going to grab position data from different pixels and start blending them together and you're gonna get some weird results in your animation so with all of that being said I have this already set up and it's a shader that looks like this I plugged in my texture and then one other thing that I should point out is we do have these bounding box values so there's this B box ybox Max and B box min and those numbers help expand the texture which we've normalized into kind of world space and we plug that into the shader so once you plug those in you should get something that looks closer to what you have in Houdini and instead of showing it there it's actually showed over here just turn this on and there we go so you're now able to recreate that clawsome directly in unreal and and it'll give you some some pretty good results or unity or in fact like I said any game engine if you're using your own proprietary engine check out the unity shaders they're written in hlsl so they should be pretty straightforward too to understand there was one other thing that I wanted to mention about this and I forgotten what it is Oh speed so if you're trying to figure out what the speed value should be there's a there's a quick and dirty hack for this which is take your framerate whatever you're Houdini export frame rate was and divide it by your total number of frames so in this case I am using 24 frames per second and there's 239 frames in total so if I come back here I can actually just type in 24 divided by 2 nine and then it'll give me the result that I need for my speed value so that's probably handy for you to know okay so that's cloth pretty straightforward really easy to get it in and I think the next thing I want to show is rigid body dynamics because that's also pretty cool and then I'll shut up so we can answer some of your questions let's see so what I wanted to show here was instead of using say the RBD director and already solver for some of the simpler stuff I wanted to create a little bit more of a complex example and this is actually forgive the spaghetti Network this is a result of the ugly material fracture node set to the woods preset and this has actually given me a really nice results in terms of getting this to break through this this ball to break through this wooden wall and get these really nice splinters now there's a couple of things to note here first of all there's I think something close to yeah a thousand seven hundred tricks now if you try to do this with skeletal animation you might find the system doesn't deal with it too well geometry detail aside I'm focusing more on just how many pieces where we're trying to deal with and the other thing with us I'd like to point out that you should investigate is constraints so as part of the new of our body material fracture stuff there's an easier way to set up constraints which is going to give you a much more interesting look you'll notice that when this breaks through and then eventually kind of starts pulling on this area it's because of the current constraint system that's doing that so I'm not going to get into that today I'm going to focus more on the exporting of this for you so to do that I'm just going to jump over here which is where I've got my geometry ready to be exported and just like I did before what I can do is I can jump to my art context I can drop down a vertex animations texture node I want to point it to the object that I want to export which in this case is my wood wall pretty much the same before personal preference I like to change this to OS instead of hip name and I think that's pretty much everything I want to do and it's rename this wall webinar demo okay so with all of that done what this is going to do is going to generate oh yeah one other thing I need to do change the method from soft to rigid and that's going to now export the mesh apposition texture as well as a rotation texture because we actually need something that's going to rotate each chunk as opposed to rotating each vertex which is a little bit more concise so with all of that being said and done I can at this point hit render it'll go through and it will kind of cache one of the frames figure out the information that it needs and then and then set that up so hopefully this is pointing at the right thing yeah we'll give that a couple of seconds so when this is done there's something else that I want to point out is we've actually exposed the attributes that each one of these exports is looking for so if you don't want to modify this let's say that you have some crazy weird awesome setup that you want to do where you don't specifically want to use the attributes that are kind of defaults then you can change that so if you scroll to the bottom you'll notice that we actually exposed that specifically for rigidbody in this case it's Pier a stand Orient if it was for soft you would see that we use P and N and so if you have a different attribute then you can use that and it'll call that attribute when it's writes it to the texture so jumping back here this is exactly the same as the soft you'll see that we've actually got a B box max one and nothing and the we have to is because we're now dealing with the centroid of the objects as well as the overall object it's a little bit finicky but that's what we need in order to give the rigidbody stuff to work so jumping back to my engine side of things what I would do at this point then is import that mesh so we bring in a static mesh of that wall and by the way make sure that you have UVs on your object if you don't haveyou these you're going to run into problems because we're using a second UV set to handle how we move the stuff around and also like I said before make sure useful precision movies is turned on and just like before I can copy and paste this this texture so I can grab all of this crazy stuff over here drop it into a shader and then create a material instance from that and all of that being said will then give me something that looks like this so it really is a pretty straightforward setup for forgetting some pretty complex animations into your game engine and then it's up to you to decide how you want to manage your your memory and your CPU and your GPU stuff based on whether you want to use these textures or whether you want to use scaled informations yeah I think I'm going to stop there so just a very quick overview of some of the stuff that that where there is available and hopefully it's helpful Chris do I want to pass back to you Louise oh there's one more thing I almost forgot I do want to mention to you so a little bit of a punt here some of you might know the different type of licenses and some of you might not so it's kind of just go through this very quickly I want to point out that there's Cora fix an engine and for a lot of game development work you can actually get away with core and the reason for that is all of the tools you've seen today all of the game dev tools will run in core so if we've done anything to wrap up the ugly director in the our body solver that'll core and the reason I point this out is you'll notice that a fix is where you get all the good stuff if you want to make all your custom setups that's where pyro fluids rigid bodies and particles comes in but you can get away with using call for a lot of this and then the game dev tools and then the other thing that we have is Houdini engine which is kind of like your batch license it's what you use if you want to run a few Deenie as a plugin in unreal or unity or your custom game engine you can use it for running on a render farm if you want to bet geometry or create renders so that's kind of what that guy does and then we've got a couple of slightly more custom niche offerings for you so the first one is Houdini in D and this is really cool if you're an indie artist or a home user and you just want to have an idea of what is possible with Houdini without any of the limitations of the free version and wonder if this this the slide is loved today but basically you're limited in your your render resolution so you can't go above 1080p and it's it saves it adds a slightly different file but otherwise it pretty much has all of the Houdini effects features so it's a really great option if you're a small company making less than I think it's a hundred thousand a year then I would say check out the Houdini and the option and two that I want to also point out something which is relatively new is you can actually get this through Steam so if you have a steam account jump on there and you can actually buy and install Houdini and be directly from there and the cool thing with that is it means it manages the license so you can I think use two machines with the same license not concurrently but it allows you to to kind of keep all that stuff in one place so this is this is like I say pretty new check it out it's it's pretty cool and with that Kristin do you want to jump in I was gonna say it's actually 4k by 4k now thank you yeah I thought it was 4k okay so yeah it's 4k now that that is the limit and the other the cool thing with Houdini Indy is you get an engine licensed as well yet one license which you can use with unreal or unity or something else and that's an indie license so it's a slightly different offering to the full engine license and that it's tied to an Indy license and then lastly if you really don't wanna spend any money but you just want to play around with your Deenie we have a Houdini apprentice so you can download this on the website it's absolutely free it is going to give you all of the features that Houdini offers the limitations are exporting so you can't export your fixes if you do a render it's going to give your watermark but otherwise it allows you to to learn and grow your skills before you're ready to make that leap so hopefully that helps give you an idea of what's available in just a correction a clarification on the price the price is now 269 for one year but if you buy two years then it's $4.99 399 brings it down to $1.99 per year if you commit to two years thanks Chris cool QA so let's start at the top here we'll go chronologically so is the workflow pretty much the same for unreal I think you must have been looking at unity at the time maybe almost for the FBX exporting of the skin converter and yeah it's the same it's the FBX is the FBX and if you bring it into and real that's the same do we get reality capture for Indy yes reality capture works even an apprentice you'll just need the reality capture license which they have an Indy Christ as well yeah does the game resume cameras pipeline automatically reduce the as thing as jumping around reduce the meshes and generate projected textures ready for output in a single step or must they generate the texture over that node for baking it generates everything in a single pipe on the green whereas node it spits out the textures and the mesh itself does matte box note include osm of cities yeah I showed that I think that was just before I actually reveal that right car terrain tools Ken terrain tools be used with this erosion sim for example absolutely so the others will drop down to where you can choose if you want polygons or height field so if you keep it in height fields you can just let it rip through a regular pipeline so you can do I feel the stored in that resolution or erode it do you consider redshift as an option for baking we are looking into other Baker's we haven't considered redshift and we're looking at substance X normal and marmoset as kind of supplements to mantra' when we do a Baker 2.0 but redshift we haven't yet in a convenient way to download tiles with the matte box nodes that they can be snapped together set up no yet that's next on the list so we're trying to figure out if we want to do you select an area and it just zooms in to where all the thousand want or an easy way to kind of hop around the next aisle over in the next aisle down so if you have any feedback and maybe this is related another questionable matte box can you specify bigger areas with come on yet yeah can you use other maps and normals or something to relight and imposter yeah so I think I touched from that briefly but if you are using a principal shader then you get all of the same exports you would get from that which means you can create a base color texture your normals texture and then you can bring that in to your your shader in your engine and then you can relight in the engine great this question is about the the brimstone game a while ago you guys working on the lava racing game where you said you would share the insights and nuts and bolts is this still on so there are some videos I mean you've done some presentations Luise for sure at GDC so that would that would be a good segue to mention that that all of the talks and webinars that we are able to record or are featured on talks and webinars on side effects comm under things under learn yeah it's under under the learn tab there's one called talks and webinars so this one today wouldn't there would be there for example all of the GDC stuff all of the SIGGRAPH stuff is all there so the next question by Brian the most valuable thing we have been able to provide studio artists has been creating HD A's that allow them directly modify their geometry as it exists in another tool like Maya I have recently had some success with the game to have static fracture export tools that create geometry for runtime destruction but are currently exporting and importing FBX files between Houdini on the tools and Bernardini and I assume the results of notes like that can be somehow set up an HD a the out the laud create tool looks like it would be similarly powerful if it could be done on geometry directly in another tool like Houdini engine or with it so the led create tool you can actually use it in unreal unity or II I'm looking at the the Maya one since it is a bit of a different workflow needs to generate new a new object you can do everything that the tool has aside from the baking because right now the Dini engine does not support the funding of shaders from application you're working into Houdini for the baking site but the geometry you can do with it right next question from one format box can we run erosion sim on it for the ret director how can we modify the force from the object so the the force you can there's there's two things you can do the one is you can basically just change the the magnitude of the force so you can either use an SDF or an object and and it will use the direction of that to to control the direction of the force or you can have a global force so if you just want to have like wind or something else heading in a certain direction there's an option on the already director to turn that on so like I said earlier the idea here is that this will give you basic forces and basic controls if you want to do more custom stuff you'd probably want to be doing it with your own situps great trim is requesting a webinar on some of these tools for non game purposes so there was a bunch of questions on this on the chat of course anyone can use these tools it's not just game people so feel free we will do a webinar on non game sort of centric uses of the game tools we had that planned sometime in the next few weeks we'll take your feedback topaz we're all game guys so we have no idea how you guys are using these on then we have general ideas but if you guys have suggestions or any things you want apply definitely let us know yeah the name came from these guys having background in games and and having a focus on game workflows but it but we also recognize that that a kind of pigeon holds them into a into a segment on game versus film TV and advertising but certainly they can be used a either either side all sides is there a topology limit to vertex animation textures the short answer would be ask your neighborhood friendly tech artists because it's going to really depend on your project there's there's not necessarily a limits but there is a limit in your texture size so if let's say you're doing 4k is your max texture size then that's going to limit the number of vertices that you can include and also the number of lines of animation you have so if you have so many lines of animation that it needs to use two or three lines per frame then that's also going to kind of create a limits and so yeah that's that's kind of up to you Louise did you want to add anything to that no yeah that it's a factor of how many points you have versus how many frames you have generally speaking it starts to fall apart precision and wise around 6k textures so usually like 4k is a safe upper limit so it's 4k by 4k do the math and then you divide polygons by frames yeah you can always of course split your mesh into multiple pieces that you can then combine in your engine again so limits like Mike said that's really up to your project it's going to come down to the fact that a lot of these textures are non power of two and the reason I mentioned that is because you eat unreal won't stream non power of two textures there are ways to get around it by padding the texture but that's something else to keep in mind so when you're loading these textures into memory for your level they're staying there they're not going anywhere and that's why take artists generally come and tap you on the shoulder and say excuse me so another thing to keep in mind okay next question from Matthew the cluster functionality has been removed from Voronoi and aged 17 something more efficient than created to replace this yes so there there is an IBD cluster node I believe now which is which is one of the options I would suggest if you're gonna have a look at the documentation at the our body material fracture node there's a bunch of links in there to all of the other new nodes that support that so that would probably be your best bet great rebus is wondering what was that script language that we used to generate blueprint that is you script oh but am i is that right no that doesn't sound right III D I think is what it used to be called yeah basically if you copy anything out of unreal and paste it face into the old format and it still kind of works great is it possible to turn in a vertex animation texture into an HD a for Houdini engine for Maya yes that's a difficult question to answer or am I wrong there all together yeah well you can because it will just take a geometry and then we'll dump out the textures and the FBX so if you have like an Alembic cache you can definitely take an Alembic Ashin and feed that into in theory we haven't tried it yeah but it should great could you use Houdini engine to send an animated character to Maya and animate animate there for instance nah you can send geometry from Houdini you can send it like a geometry cache to where you can send multiple frames of an animation but you can't send the rig over to through the current Maya plugin and all the engines in general don't support skeletal meshes so that's something that we want to build for next versions so any kind of rigging is pretty limited on the engine side at this point and there was its follow-up comment idea yeah you can export it as an FBX so that's the pipeline that we're gonna kind of be pushing for in the next few months but we'll go through the exit right well Houdini Indians team be available for Linux and Mac in the future I don't know I'd say TBD yeah next question are there any obvious differences pluses and minus on using vertex animation or skinned mesh animation which should I keep in mind when using my technique when deciding to do flooding simulation Mike or gopher pool okay so first of all with the skinning converter it creates a bone based animation for you right meaning that you could for example add like I said a secondary physics simulation in real time on top of what you already exported out plus you can even make it collidable with the character because you can have colliders on those bones however the more small details you have so for example small wrinkles in cloth the more bones you will need so the more expensive it gets to export something like that out and that is where the physics animation textures solution comes in because that solution is very lightweight and has basically gives you the identical result for every single photo X throughout the shader and I think to add that based on the question talking about flooding if you're doing any fluid kind of work where the topology is changing every frame then the the skinning generator isn't applicable it needs to have a constant apology in order to to bind the bones to it great hunties nice to see everyone again some questions on LOD create is there any way to select areas of geometry to keep more detail in your car example you dropped to 40 percent and the headlight turned into triangle could I keep the headlights round until the final LOD yes you can what I showed are just a simple setting so to quickly give you something but every single tab like for example in this case the mesh decimation tab also has an advanced drop-down and other there you can use custom attributes to focus the decimation on specific regions or ignore certain regions at all super question - can you talk more about the UV processing our team is having problems getting decent UVs large islands same direction instead of tons of tiny pieces trying to do procedurally generated large floating land masses and not manually you being them at all yeah so we can do a whole webinar on UV so I don't know if we can hit too much on the webinar but do check out the new UV flatten and UV layout so there is a lot more features there to the point that we're gonna start building some tools for like strip texturing which might be what you're kind of referring to to where you wanted to try to do kind of little strips that match to a piece of geometry and then check out the auto UV node the auto UV no generally there's a merged small islands feature and that's a stop by itself that kind of does that to where it kind of consolidates Islands back together to give you larger islands with more distortion at some point I was gonna say it sounds like we need to follow up on a u ving webinar and then a couple people have already said yes yes more what is the typical map size for vit textures how many frames are they usually in what size map for that what when do you use via T versus RBD I think we kind of answered that earlier yeah I think we've covered that okay should I expect native Houdini curve inputs and unreal to be as reliable as world outliner curve inputs a found world that lot of curves across the editor of to often to use ideally you're using the world outliner curves and they shouldn't crash the editor continues because the nice thing about keeping them outside of the native Houdini one is they can feed it into multiple assets and hi Chelsea so the idea there is if you have one Road you can actually run it you can do a collision pass on it you can do terraforming and they kind of separate from the Houdini asset so if you keep it as part of the Houdini asset it makes it harder for you to kind of chain these operations together but we'll take a look at those crashes you guys responsible for the unity Houdini plugin if so do you plan on supporting the new unity 20 18.3 terrain layer system to paint terrain if so when we're not but sealant is so he's part of our extended team I will he just gave a presentation at unite last week so he might chat a little bit about on that I'm not sure I do know that we're very interested in the terrain system because we have a lot of terrain tools so as information becomes available we'll share that with you guys yeah can stop terrain tool will be multi-threaded it's a bit slow for bigger areas and can it be made age 17 compatible to be made multi-threaded I'll look into that as for Houdini 17 compatible if there are tools that happen or that broke during the conversion of upgrade of 16 5 to 17 please do reporting to us because we can't run through all the tools ourselves so we rely on to use us providing us with that information yeah will this video be available yes it will Ryan's asking we saw the example of the skinning converter working on with quaff I assumed the workflow will work with our BT as well yes for that for our begin workflows and we have a tool called our begitu FBX which essentially generates a bone for a piece of your simulation so that's a separate tool but yes it can do that great and success we've gotten through the questions we've made it to the end without tripping over them so that's good one day we had a few people saying that they're brand new to Houdini and where do I get started so I would start with side effects comm slash learn there are some game tool working learning paths there so check that out we've we've commissioned some some tutorials by andreas glad who did some great work Kenny Lammers who did some great work for unity so check out lots how that stuff on side-effects com+ the community is is constantly creating stuff under the tutorials section so feel free to eat that stuff up but also create stuff and share it with community through side effects calm it'd be great I know it also just like to say that we would love to see what you do with the game that tool set not just send us bugs but also show us cool stuff we'd love to see it yeah I mean I'd love to see a great presentation on at GDC with these tools in use so if you have a production sort of production ready something that you used it in a game then then let me know you can reach me at MC at side effects comm MC its side effects calm thanks guys oh go ahead because I'm gonna jump in one question that came up quite a bit earlier was whether or not the lot tools would work with skin meshes so I thought it might be worth just answering that on the video yeah Paul right now the LED crate tool only supports our static meshes and since we first want to improve the workflow within Houdini on rigs and animations before we tackle that Thanks Android just asked he'd love to know when we can look forward to more features in the GL tf2 pipe specifically animations that's probably gonna be a Houdini core feature that's the Joe TF is technically the game's team but it's not part of the game dev tools so that would be a future Houdini release cool thanks very much guys all three of you great work on the on the webinar and if you have any follow-up questions feel free to ping those guys on either discord or on on the forum thanks everyone
Info
Channel: Houdini
Views: 15,414
Rating: 4.9731545 out of 5
Keywords: game development, gamedev, game art, procedural environments, procedural, houdini, tech art
Id: 3lvldnLa6xI
Channel Id: undefined
Length: 114min 57sec (6897 seconds)
Published: Wed Oct 31 2018
Related Videos
Note
Please note that this website is currently a work in progress! Lots of interesting data and statistics to come.