"Game" Development Tools | Luiz Kruel | SIGGRAPH 2019

Video Statistics and Information

Video
Captions Word Cloud
Reddit Comments
Captions
[Music] [Music] thanks everybody for coming happy SIGGRAPH my name is Louis cruel and I'm a tech artist at side effects and I'm gonna give you guys some updates on the game development toolset and some of the stuff that we're building around game dev and and a little bit more how many of you are familiar with the game dev toolset awesome cool so for those that are not here and I'm not familiar with it the primer is basically it's a bunch of tools there's a over 150 of them at this point that are developed for helping learning the the help with the learning curve of Houdini and basically help you get started with Houdini do kind of production focused examples and basically get data out of Houdini or do common operations that like Aria was saying usually we go talk to a customer and they'll be like hey I did this really cool thing this should just be built into Houdini and usually we'll take it look through it and then kind of modify it a little bit and bring it in and then there's a team of three of us so it's myself Mike Linden there's a lot of the effects in general work and then Paul amber Susan but also there's a lot of the work so I am representing their work and it's a pleasure working with them but it is it's a team effort so just so you guys are aware again that development process is something I wanted to touch on so it all starts with the customer interaction so here at SIGGRAPH I'm getting a ton of ideas from just running into people and having meetings that goes into prototype and then that prototype goes back to the customer they give me feedback we do a first release that gets back to the customer we'll start fixing it we'll put it out in the wild and it's really a collaborative workflow so we do daily builds yeah so the cool thing is that it's a very open kind of agile development process to where we're working with the customers getting feedback putting it out to the while for everybody some of it we label as a beta towards just it's it's pretty raw some of it gets hardened by the community so a lot of these tools are basically being used in production right now and with multiple ship titles behind them so it is it's it's an awesome study set of tools so like I said we actually been gathering some numbers so there's over 150 tools over 6,000 users at this point a hundred thousand nodes dropped here's some stats on the countries so it is kind of world wide and this is around one year of collection so we started collecting data August of last year so the funny thing is that it's it's I'll touch into this later so it is a game development tool set but clearly it's not just for game dev so clearly film and advertising and industrial studios are using it so we'll touch that in a little bit later but it's it's widely adopted it's getting rigorous testing it's going we're really proud of it so in this tool updates I want to talk a little bit about our GBC projects and some of the things that came out of it and then I have some cool new announcements to share that we're really excited for it so if you haven't seen at GDC we did two projects one based in unity one based in unreal they were to kind of show the breadth of the power of Houdini to where the unity one was a mobile game that actually ran on my phone and the thought there was to take a Photoshop file and then convert that to a fully playable level we have the whole workflows up online and then our unreal level you might have seen a lot of this image all around SIGGRAPH they're gonna be up in real-time live I was a collaboration with quick so we've done a few videos on it already so check it out there's a lot of behind the scenes stuff we're really proud of it part of rebirth and we work really closely with quick so on that one and the cool thing about having these projects is that it forces us to kind of do a little mini production cycle so we do after judy sees down what kind of harvest the projects for new tools and from the unity project we actually got eight different tools you can see here and there's a five different tools from the clicks of project so say like the the sci-fi piano generator was used to generate the mega structure on rebirth and that's the same HDA that we use there now everybody can use and play with it and ideally evolve it so the cool thing is that we we got feedback from quick so on it but now it's there for everybody and if anyone has feedback we'll we'll take it and build it and so this is the second year that we've done a kind of full-on GDC project and now a little pattern is start to emerge for us on the year to where it kind of starts up at GDC and then we'll kind of do a harvesting process in May April will do some customer visits and some trips and May to July will have SIGGRAPH as the other big event of the year and then at the moment we're back we're gonna start back into project development node so if you guys have ideas and things like these are kind of general themes and I'm trying to solve we have some ideas of what we want to do for a next GDC but now you can kind of expect some of the development to kind of culminate and work on this cycle we found that it works pretty well for us to where we have time to kind of go heads down and really build something that it's kind of production ready and to be able to kind of come back up and talk to everybody and do customer visits so some of the recent work that might have kind of slipped through the cracks so this one is a kind of cool tool that we built for the unity project it's we call the curve branches and it's essentially a fake little elf system so we needed to build a little bushes and for the demo and l-systems are too hard for my brain so ah hey there you go yeah so I wanted something that was a little more intuitive so you can basically make a curve and kind of grow it and and do different things to it but the cool thing is that this is kind of recursive so if I make one kind of set of curves that you can make your base of your flower but then you can do another node that basically chains on that and that makes the kind of recursive and then you can kind of keep chaining these together to as many levels of equations as you want in this case three is generally enough here you can see you can get pretty deep and there's like all sorts of variations and you can have controls on how you want this to work you can then mesh those and kind of get them but it's one of those it's really cool tool that I feel kind of slipped through the cracks to her we didn't really talk about and in just that idea of kind of building recursion with nodes themselves now I was kind of neat another tool that wasn't necessarily done for the rebirth project but was done immediately after for quick so is this cable generator and the idea here is you draw a zigzag line and everybody has built cable generators so we felt like we just needed to build one so with the little zigzag of the curves you can kind of control the belly of the cable drop instead of a fully simulated version we can do something that's a little more procedural and then because you're doing in 2d doesn't mean that you have to be in 2d you can always go back to your original curve and start pulling it apart and like I said because of that zigzag control it's a very nice artist friendly way instead of having to control slack and some were kind of physical means you can really easily tune it and we do have a vellum solver in there if you do wanted to detangle it so it's kind of built in so I'm gonna do that in a little bit and then there's like a lot of controls yeah so we can do a a quick little detangle just to get something to look a little bit better this was actually built for and used by Victor Bowman and this is a little dark but the cabling here on the scene that he posted on his earth station was the use case for this tool and again I've this is a clear example of having a customer needing something coming to us we build it have a type little loop with them and then put it out to the wild and now we have a tan a wider loop to where we're talking to multiple customers and a lot of the times people just use the tools to kind of start with it so they'll say I need a capable generator that's not what I want I want something different but there's some cool ideas there so I want to take that as my starting point instead of starting from a blank slate another tool that I think we've talked about a little bit but it's too cool to not mention it's the Alice vision integration so we've had a reality capture integration for a little bit which is a photogrammetry software but again a lot of the film clients that are based on Linux couldn't use it because reality capture doesn't have a Linux integration so Alice vision does and we have a full pipeline so you just give it a bunch of photos and it will calculate the models for you you can also break out the individual photogrammetry steps and as the different notes or you can kind of do it this way where you just have a single node and I'll see if I can skip through cuz Paul talks a little bit and yeah so basically the thought is that from within Houdini you can generate the the full photogrammetry model and get it back out and this runs on Linux which is it's awesome another tool that Paul did and he did a webcast on this on La hug is our new Baker so we've had I think three Baker's at this point so we had the original games Baker then we wrapped that up into a stop into a simple Baker but both of those were inherently mantra bakes which had a lot of kind of initial startup cost of dealing with it so we actually wrote a new one called the Maps Baker which is in cops and it can bake a for k-map in nine seconds so it's extremely fast and it matches parity pretty close to one to one with Metro so we're kind of used at the calibrator so we bake curvature normal Maps all of the maps you would expect and it's it's super super fast so please use it and let us know if you have issues but do note the transition to this one if you guys using the simple Baker or the other ones just because this one is a lot faster and it's the one that we want to maintain so in this one we're actually doing all the math ourselves so all of the kind of ray tracing into the other mesh and sampling the geometry and baking it out of the texture so we have full control so even if you want a different algorithm to doing the bakes we have full control of that now because we're not going through a renderer another one which is kind of one of those embarrassing they should have been in Houdini all along this is a double punch in the this demo because we have a spiral stop that is something that we should have had so now we have a spiral stop that you can build spirals and curves and we have a path to former so if you want to sweep things along a curve and just the form those we have that as well so here I'm just doing some expressions to kind of make sure my box is placed properly and then there's the path to form shop that does what you expect so it's kind of a super simple basic setup but another one that everybody needs it it's not in there by default we're hoping that by having it in the game dev tools it will eventually make itself into it we've had a couple of tools that kind of made that graduation process where they started in game dev and are now in proper Houdini but even if it doesn't it's there for you guys to play with another one that is a pretty big one is the Bill generators so this continues our effort into the kind of city building environment workflows it is a modular set to where it worked instead of doing the traditional just extrusion and procedural all procedural geometry it actually works with modules which is more of a traditional game pipe load want which allows you to do more custom stuff it can spit out a full static mesh geometry or just raw geo or it can spit out the cloud data for you so we can basically get the instances of all of the points and then bring that into a game engine the reason I showed this one is that actually we have really solid documentation for it online which was done by Matt Estella who gave an awesome presentation earlier it's gonna give another one so we actually hired Matt to do a lot of our documentation for the game dev tools so he does cg wiki if you guys haven't seen it it's the one of the best resources for Houdini learning and he does his signature gifts on our documentation too which is it's we're really excited to have so some just to talk a little bit about how the game team kind of interacts with R&D proper we have been working closely with them for a while so there has been a bunch of contributions that we've done to the Nene proper even though it's kind of detached from the game dev tool set so the hair cards for Houdini 65 were part of the game dev tool shaft I just went straight into Houdini and they actually bypassed the game dev pipeline entirely the material and that was false the material fracture mic work closely with R&D team to get that pipeline going and then for 17:5 I've added a few things or work closely with R&D on it so I'll go through them the one that also might have slipped through the cracks is we have now viewport parity with a lot of the major players in the industry so in the top left you can see it's Houdini's viewport on the high quality mode then we have the same asset in unreal marmoset and substance painter so that was just something that we just needed to do and now we have kind of table stakes everything looks the same you can assume that your asset is going to look the same in your game engine as it is it's going to work it's a toad Eenie we did calibrate it to mantra so these are two shots one is rendered for mantra and the other one is a flipbook from the viewport and it's pretty damn close there's some kind of inner reflection and little details but again there's a trend it's a graph of the kind of real-time rendering and we do get the quality like if it's localized and you you know what you're trying to do like for a PBR shader you can get pretty close to 1 to 1 another one we chose a kind of insanely huge feature that no one knows about has this thing calls the packages project so now we have a new way of bootstrapping your environment into Houdini so instead of everybody over fighting over the Houdini environment file to kind of set up your pipeline now there's a thing called the packages folder so essentially if you have in your regular Houdini folder structure where you have your tiel's and your scripts and everything if you add a packages folder and you drop a JSON file into it you can have multiple JSON files that modify your Houdini path so you can have one for game dev tools you can have one for your studio tyke you can have one per project you can have one for your user custom little scripts you can have one for redshift as opposed to the usual problem that everybody's trying to hammer down one single file so this game with 17:5 we really didn't make a lot of fuss about it but from a kind of pipeline handling setup it's it's it's really crucial and it's awesome so you can override the general Houdini path or any system variable there much like you would with Houdini environment and then I kind of helped out with a lot of the FBX improvements this has been in the production builds but I kind of took that over and just helped develop some features I'll just run through them really fast skeletal handling now we can basically round-trip characters through Maya and any game engines we can import and export principled shaders including we can import stingray materials from Maya and we can export out to any game engine the diffuse and normals this is just an old limitation it will still use the FBX shader and then a bunch of little things so little things like not changing the timeline when you're reporting exporting custom material properties I've added Houdini to the FBX file so we know it came from there we cannot export hidden objects and we export animation clips so if you're doing something in AR this is kind of crucial that you can have multiple animation Clips within the same FBX and then finally we can actually export arbitrarily named UV channels so yeah it doesn't have to be UV one two three four with Houdini 16 we've added a texture type when we kind of got rid of the layer workflow but we never updated the FBX exporter to respect that so now if your attribute is tagged as a texture attribute which most of our nodes will do FBX will pick it up and do it so as you guys seen a lot of these tools are just generic improvements they're not necessarily game specific so we have a big announcement to make so the game development toolset is kind of going to eventually transition over to become side effects labs and this is a naming change to kind of show just the growth and the kind of commitment of side effects to this effort so why the name change realistically one of the key one is a lot of these tools are just generic tools so having the game they have named they're kind of misrepresents them for some people so some people don't even look at them because it has that name on it which is a shame but that's the reality so having it just be a generic name it means that it's there what changes realistically nothing we're still game dev team we still have a game that background we're still going to be building game dev tools but one of the things that we're going to start pushing harder is that convergence so a lot of the tools that we build are used by film a lot of the tools that film wants to build games use and now that customer look that I started with now just expand it to the whole industry so these tools now are gonna get the rigor of both industries which is super exciting and we can expect this in the future we haven't really decided it but relatively new future and we'll hook it up into the proper packages program but realistically just be aware that that's coming but yeah that's all I'll say about that so what's labs gonna be responsible for third party integration so we do a lot of these I look into this and I have some cool examples and some awesome announcements and a lot of the regular tools and the agile developments so we're gonna continue the same kind of agile development that we've been doing so on the third-party integrations we actually have 10 of these at this point so we've built the ZBrush integration reality capture Alice vision OSM sketchfab instant meshes face book 3d exporter marmoset map box and the quick switch so those are all done by us and maintained by us so it's it's another one that's like not a lot of people might even know that we have a cozy plugin because they're not kind of within that kind of game that luke the two that we're gonna announce today is we have an integration into quad spinners gaia which does fabulous terrain erosion and the big one is scopz integration into substance ah thank you thank you I'm so really excited to show both of those so for those of you not familiar with Gaia it is a third party software that is a node base basically terrain editing tool and they have some really great nodes and some really great erosion and it was actually used on rebirth for a couple of shots and they didn't get the credit they deserve so I'm calling them out here so it did they do a great job so what the integration looks like is actually pretty native so they work similar to substance and similar to Houdini where there's a node chain that you can encapsulate those into a poor file which is like their own little custom format and you can expose parameters so it's very much like an SDA or an sbar so in Houdini you have your height filled with some noise and you drop a Gaia node in this case it's gonna be a guy erosion node you can run it and this is running a real time for the first one which takes I think this map is the default so this height field is all defaults so it's the default noise and then the fault size and in around 30 seconds we get the erosion generated for the future ones I'm going to let's okay I'll just skip through it so you have all the parameters that you would have exposed inside of Gaia and we can just run it and you got really really really nice erosion and it's really fast too so we did a lot of work to be able to kind of go up and down and dirty node so as you modify your map everything gets dirty properly and then when you regenerate it it what kind of update itself so we're really happy the cool thing is that this theoretically will actually run even inside of unreal so you could have a landscape you can run this with through Houdini engine or unity and kind of get your eroded Maps back up the way it actually works and I'll show this another video is you have that poor file so we load up that tor file and we actually parse all of the parameters dynamically so whatever parameter you exposed in Gaia will come through and be exposed including any kind of file exposure that you did so in this case in my example we just passed in the height but Paul took over from me while hose coming to SIGGRAPH and he kind of added a bunch of more features so now you can kind of pass and receive arbitrary map data from Gaia so in this case he's passing the height and the mask and he's getting a bunch of kinda erosion data from it so here again I think it's gonna take a couple of seconds I think it takes around 30 seconds I think in this case is gonna be 8 and then we get the erosion back we got a mask back and we got a lot of different channels that are just native to the regular version so we can use a height field visualized to kind of suss out all of that data that's inside of our volumes and do what you want so you can send it to scattering you can do anything you want so it is a command line bridge we are probably gonna start bundling some default port graphs so like erosion and a couple of the different filters that are the kind of most famous ones and then we do support you to do your own custom ones and then Gaia the versions that you will be able to use are with the pro and the enterprise which are both perpetual licenses for those prices so we feel that it's a good addition to the toolset and the big one is substance so we have some friends from Adobe here in the room so I'm eternally grateful for their help and so the announcement is it's cops based so the we've had a plug-in with substance before it was in shops which was good but it was strictly material based by moving it into cops it means that it kind of all of Houdini opens up to you so you can generate a height map from substance and then send it to a mesh and you can send it to vertex colors you can send it to a height field you can do whatever you want with it we do support materials so you can send that straight to a material and we're actually building this in collaboration with the Adobe team and the substance team which is awesome so if there's a problem on our side we have the source code for Houdini and we can debug it and if there's a problem there side they have the source code for substance and they can debug it there so working together is actually a lot better and we're getting the results a lot faster so this is what it actually looks like and this is the simplest example I could come up with which is the tradition of substance brick the West McDormand built together and here you can see we have a cop Network we can change parameters it will Rico it will trigger through all through the network so I am actually I'm using it to displace the geometry not through a viewport displacement but actual displacement and I can apply it to materials so in my materials I just have my op references to my cop channels and then in my geometry I just have a box that I added some UVs and I highly subdivided it to be able to displace it and then I have this attribute from map which basically can read in vertex colors from a cop Network and then I just do my traditional displacement and I'm actually doing it as a pointer angle as opposed to the traditional ops way you can tweak your parameters for how much you want to displace and this is just showing that you can kind of feed substance data anywhere to anywhere you can send custom data from Houdini into substance and get it back up so the kind of golden workflow for us is going to be you can model your models you can bake your map with their super fast Baker you can process that substance all in memory then you can load it back into your material and then be modeling so as you're modeling or as you have a procedural model you can actually run the whole pipeline in memory without ever touching the disk to rake and Baker Maps send it to substance get it back hook up into your materials and see the result so having that tired adoration loop is kind of a one-two punch that we feel it's it's incredibly powerful and can't wait to release this and it's coming soon TM but it's got it's coming it's it's it's pretty close so now there's basically three major chunks we need to read in we needed to output substance data into Houdini we needed to take inputs and we needed to change parameters so all of those things work now just a matter of all the nitty gritties and supporting different file formats and different parameters but so I'm pretty comfortable we'll have it hopefully buy it before the launch of the next 2d version the other one that we've had is we've had this integration with instant meshes which is a super powerful quadri measure but it was kind of like a command line integration and this was our number one requested feature which is hey that's really cool but can I you send curves into instant meshes because this is what is one of the most powerful features out of instant meshes is that you can have your topology being generated but you can actually comb your topology and kind of guide where you want those squads to go so now we have an intern in our lay row building this for us and it's a native C++ integration so we took the code for instant meshes and then wrapped it with the htk to actually run it natively in Houdini and you can see we can change parameters and it's a lot faster because before we do have to output these objects and then load them back in again the same problem of having files on disks and now we can basically draw curves with a stroke stop and feed it back in to the C as to the instant mesh shop as a secondary input let's see and the big reveal there and you can see how there it goes so now there's still some work then we're gonna do with cleaning up the singularities which are the kind of triangle little spots we've exposed some parameters to be able to relax those and kind of get those out of the way but instant meshes has a couple of other features that you can kind of smooth those out but now we're really happy that we're starting to get to where we have a quadrant sure we can kind of derive where you want the topology to go and work for it and then the last little thing again to show that community feeding back into the tools 3d straight skeleton has been a problem we've been trying to solve for years and there's a forum post that someone was just like hey guys I figured this out you guys like let's see and then there's like a lot of back-and-forth that people are like oh it doesn't work on my model and it works great over here so eventually you got to a really good solution I've asked the author to be able to add it to the game dev tool sets and this is some of the results that we're getting so for those of you not familiar with the 3d straight skeleton is basically you take a mesh and you start to shrink it into itself to get a skeleton which is the kind of media point of your character and then from here ideally we can convert those curves into bones and get something rigged so in this case ups we have my favorite crab and you can see we're kind of oxidizing it just to not get every single little detail out of it and then we have the kind of straight skeleton Network and we get a really really good curved network out of it so the thought is that you can even just take this and do whatever you want with it or you can use it and start simplifying it or kind of select the points that you want out of this this is a generally useful problem set to solve and we're happy that the community kind of contributed to it so next we're almost out of time so for future work what are we going to be looking at next animation and rigging is there big one that we're gonna be focusing on heavily so if you guys have a vested interest in that do let me know we have some cool stuff that we're cooking up that we're hoping to be able to show soon a lot of viewport interactions so for some of the animation work we want to be in the the viewport we're also starting to look at some modeling stuff so basically leveraging all of the Python States work that has come in the recent years up to Houdini we are gonna play with Houdini runtime so this is going to be an experiment that we do for GDC so if there's some general interest or appetite let us know it's something that we're gonna be playing it is going to be server based so basically have a game talked to a server do some math in the server and then get the data back in so it's not gonna be running on a console or anything but it does the trick and then we're gonna go back to terrain a world building so now we have guy we have a building generator we still need to kind of hammer on that city generation and scattering so that's coming and then virtual production I put it in before I came so it's not I'm like a throwing in a buzz word but we do have plans of basically working in all that conversions and see what we can do to help in that space so if there's an appetite there also come up and let me know and thanks so I got so take any questions we have the cube to throw around I don't know how I'm on time if there's someone after me up from the last one I think I'm the last one so doesn't know I can stay as long as you guys want questions up here in the front is this on there you go if you're back-and-forth with substance similar to how you described it with Gaia where they can sort of communicate with each other like you'll build a network in substance exposed some parameters use those parameters and to Dini go but kind of a round trip between those two things yeah so the further the substance plug-in is even more tightly than with guys so guys just a command line integration with substance it's actually in memory to where we're passing it's like we're it's the proper compile the workflow is you make a substance archive source bar and then you expose whatever parameter you want there and then you can load that in cops and all the parameters got dynamically generated and you can the way we're doing it your multiple inputs are matched by name through image planes so like cops have the notion of you can have your curvature your normal your world normal and all of that data kind of stack together as image planes inside a single cop you pass that single cop into substance it will name match your planes to the inputs that it's expecting and then it will output a cop that has all of the outputs that it has and then you just have to do some work to kind of slice it back out and then feed the height to wherever you want to feed it and all of the different components where you want to do with them hey first of all thank you so much for doing this I mean I'm the guy that's always putting like the hooray response and every time there's like a brand new update because I think it's awesome I was wondering on your cable generator one of the things that I think would be useful is some way to kinda get the cables to like kind of dangle or like kind of move and I know I can kind of do this like you know by integrating them you know into you know you know with the physical properties but I think it doesn't really need to be that complicated it could be like a lot simpler just to kind of give some movements you know like you have like some kind of like you know electrical lines or something in the distance and I was wondering if that's something that you guys might think about implementing this is now is the network rock thank you yeah well no it should be and then the question is do you do that well you probably want to do it within the stop itself because you could do it before like in the curve that's generating it and kind of moving it but that might cause some weirdness of it generating something different per frame so we can either add some motion some yeah whatever rock thank you so much yeah so really really excited about the substance integration that's super cool so could I do something that sort of you know going back and forth where you know I generate I don't know maybe a rock I generate some B DB noise yada yada yada then I generate a material on top of that then i displace with that material then I use that send that back into substance do some other stuff like just really go back and forth a couple of times yeah absolutely as long as it's procedural - it's like the steps are you generated your noise you sent it to substance you brought it back in and then you did something else with that and then you send it back to substance yeah yeah you can awesome there's just there's baking steps in there and the maps Baker has an auto baker so you can just say as whenever it cooks don't even press the button just if something updates bake it automatically sweet that's gonna take nine seconds to cook but yeah totally if you're gonna delete the idea I can then now make a rock generator library that I can let it rip overnight with PDG and I will have textures that match everything and I have the whole process kind of fully there awesome thanks yeah anybody else I was cute right with the sketchfab exporter is it possible to wreak upload meshes or do you have to export out like an FBX and go through the website no it uploads it straight from Scott Raab are you saying like if you uploaded it once if you want to do it again yeah probably not but we could be able to you should be able to do that yeah just yeah because I think if we just say if it's the same name or the same ID or you say like just add a checkbox to say change it yeah that's a good idea of agree yeah thanks thanks thing behind you and kind of a new Houdini user so maybe already have this but is there a way to like render Alps fire and smoke and explosions and flip books real quickly like with emissive and depth and all those kind of passes yeah so we have a tool called texture sheets okay and that's what it does it basically it takes a camera and then it spits out all the channels anyone and lets you repack them however you want to yeah check it out cool mm-hmm all right you got one more thank you yeah that's good and I like all of this stuff it's it's relatively show if there's more let me know like if because these are kind of gates like basically like production gates that's like even custom attributes on material some people are like I don't have that I can't switch my team over because we store data there and I can't like it's it's Houdini is that to me on that point so it doesn't take a lot of effort on our side to make that work for you guys and so just be vocal about it done nto yeah I'll do that one too we vote yeah yeah that's a good one yeah we just did someone was trying to do so and they've made a reader for that just read the object but okay yeah yeah now oh that's a good one take a look at it cool buddy else all right thanks for coming hope you have a good cigarette
Info
Channel: Houdini
Views: 16,752
Rating: 4.9773369 out of 5
Keywords:
Id: 7X-r_XarMLI
Channel Id: undefined
Length: 36min 4sec (2164 seconds)
Published: Tue Aug 06 2019
Related Videos
Note
Please note that this website is currently a work in progress! Lots of interesting data and statistics to come.