Quickly Generate Thousands of Unique Characters with "Proxy Swap" in Blender 3.0 (FZRandomizer 2.2)

Video Statistics and Information

Video
Captions Word Cloud
Reddit Comments
Captions
today we're going to generate thousands of unique characters directly inside of blender utilizing an add-on that i created called fz randomizer more specifically we're going to take a close look at an update i made update 2.2 that now includes the feature called proxy swap i just want to kick this video off by giving a big thank you to anyone who has downloaded the fz randomizer and used it so far but i especially want to thank those who have donated to the creation of this plugin so if you're not familiar with my add-on at all i would recommend watching this video up here this is sort of a part one if you're trying to generate lots of random characters this video is going to walk you through the basics of using my plugin and sort of how it's laid out and how it works now a fair warning this plug-in is going to require you to have a little bit of prior knowledge of blender i would say at a beginner to intermediate level so in the previous version of this add-on the generation process works by duplicating mesh it takes your mesh data and every time we make a new unique character it takes all the assets it needs and compiles them together and duplicates them puts them in a folder now you can see where this can start to get increasingly intensive on your machine if you need to generate a hundred a thousand ten thousand now this is really important for projects where you need to take your character and move your character around and move it independently but for something like a pfp project where you need to make thousands of characters and and you really just need to render out an image of them um you're going to want to use proxy swap and proxy swap handles the process a little bit differently rather than duplicating hundreds or thousands of of pieces of mesh for every unique character you need the proxy swap process takes our host collection and creates a proxy version of this and this is basically a one-to-one reflection version of this folder and this is what i call the proxy and to make each character it swaps out the individual parts rather than recreating them so not only does it generate these characters significantly quicker it takes significantly less processing power and also lets you make quicker decisions on the fly and you can generate far more characters this way without slowing down your computer so let's walk through the process here so here's a collection i made a fake collection again called the sad ones all right right up here as you can see we have our host collection now from my if i'm in my properties panel let's we'll go down here click on any piece of mesh data and as you're familiar with the fc randomizer add-on is located right here in the object data properties so first off our host collection this is going to be our main collection as we know right here it's the sad ones so we just want to make sure that the sad ones or whatever the name of your host collection is this is the collection that your whole process is stored in it's going to be reflected down here so you just type this out sad ones or whatever yours is called okay and each of the attributes for my character all the body objects or the head objects they're all located within sub collections so again you have your host collection and you have your sub collection the new feature is indicated right here proxy swap now i have this turned on and we'll see how much quicker this works in just a second so we have five sub collections we have all the body objects um which are these here down here pretty much anything that would indicate what the body is i have the head objects there's just different uh different head styles one one important thing to note here currently the proxy swap does not work with with mat libs if you want to use material libraries you can't use proxy swap at the moment you'll just have to make multiple objects with different materials which i've been finding actually works a little bit better anyway just because you can still access the rarity with them so i have the face objects as well one thing to note here um and you can actually see here with my body object is some of these have this little collection icon and this is what i've been doing whenever i have a complex object or one object i want to select that's actually made up of multiple other objects i'll just make an assets an assets collection down here which is just like a separate collection that's outside of my host collection mind you totally outside it's not being affected by the decision making process and i have a whole assets folder that i can just make complex objects in for example this waiter object here this is one object this is one body object this collection and it's made up of multiple different objects as you can see but once i go and i put it inside my body collection i can just hit shift a and add a collection instance here at the bottom and i can search for it waiter right and this is all one object and you can see you can just put it directly inside that sub collection so when you're working with complex objects and you want to have multiple objects as an object for a sub collection uh try using that collection instance method that works pretty well people were asking about backgrounds it's it can be as simple as just making a plane back here with multiple different backgrounds here and using that as part of the character generation process right now i have backgrounds and i have all these different background objects that i made that can be randomly selected i have a caps collection and this is basically just parts on top of the head these are random parts that can be on top of the head we have a backwards white hat a forward white hat i actually want to make another option here this is just for if i don't want any anything on the head because right now it's going to pick one of these objects within the cap collection it's either going to pick you know one of these hats one of these crowns a halo but there's no option it can pick to have no mesh data or nothing on the head so i'm just going to select any of these here i'll duplicate it and you can see i have a duplicate over here i'll go into edit mode and just select everything and just delete that delete all the vertices out of there i have basically an empty mesh container if i just double click here i can rename this no cap hey and now as you can see i have an object i have an option to select nothing i'll just open up my rarity panel here real quick and as you can see it has a 12 chance of being selected i'm just going to give this a couple more tickets to be selected so as i go up here let's just give it 10 tickets here and again um if you're unfamiliar with how the rarity panel works basically this is just a sort of like a lottery system that's held within within each sub collection to determine what's the what's the rarest object that can be selected this is all covered in that first video again so it's important you watch that to understand how this works i want to make unique characters i will use instances because that does help make the process a little bit quicker and the first thing we do is we always go ahead and calculate our possibilities here we'll get this notification host located the sad ones if it's incorrect say it's the sad one say i misspelled this name if i go ahead and calculate possibilities it will give us this hostname does not exist if you get this that means this is incorrect and you did not it did not find a host collection so keep that in mind you always want to make sure this name is spelled correctly i've seen people even go ahead and double click this up here and copy it and then paste it in there just to be 100 sure it's correct then we calculate our possibilities right here we get a number to the right and this number indicates how many unique possibilities we can potentially make how many total combinations of objects we can make so what that means is however many variants we want to make cannot exceed this number say i try to type that in 12 9 61. if i go over that by even one if i try to generate it will say there's not enough variation for 12 961 unique generations that's because it told you right here man it just told you right here look i don't recommend coming anywhere close to this number if you want to get higher numbers then you have to add more variation to your characters to get this number higher and what does that mean it just means adding more things putting in a little bit more work adding more options more variety for your characters to get this unique possibility up i like to stay around 50 to 60 percent of this number so whatever this number is i'll try to stay below so say i want to make 5 000 generations i think that's a fine number for this say i want to make 10 000 or 15 000 i'd like to get this number up to probably at least over i don't know 30 40 50 000 possibilities all right so i want to do 5 000 unique characters i do have proxy swap selected i'm not going to write to csv just yet but as you'll see this does work as it did before calculator possibilities the same number we located our host so i'm going to go ahead and generate these and just a quick tip so you can see what's happening while you're generating because if you click generate this could take this process could take a little bit of time you might think blender has frozen for a sec but it's actually running background processes that you can't see and one way to sort of help make sure blender is not totally frozen and see it's still doing something is if you take your mouse here and you go up to window and down to toggle system console it'll open this whole thing up now you might not have some of this stuff this is um stuff code i've already run here let me put this out of the way for now whenever i hit generate we can just sort of watch this console window to make sure everything's still happening so i'm going to generate um let's just say i'm going to generate 2 000 just for right now just just for uh for the sake of it we'll generate this in real time so i'll hit generate here and um i'll bring this up and then you'll see this is just running it's selecting the different variations and now it's building the codes out and it did it okay it's already done it just did 2000. that was very quick compared to the last the last version by default we have these spawns turned on because auto spawn is turned on so if you're using proxy swap you just go down and turn off auto spawn and remove your spawns and then you can just turn your variations back on right here now your variants here this is this is the proxy folder as you can see they're all called proxies versus variant one two three four etc the whole way to two thousand right and this way already sets it up like the batch generation does for the old version as you can see it set our timeline to 2000 let me go ahead i'll close this folder and i will just turn off our assets and i'll turn off the original collection and now we just have our unique characters if i go into the viewport here and i just scrub through the timeline as i hit the arrow keys each one is going to correspond to a new unique character this is another example of how i use the assets folder right this is like three objects that were all selected because it's an asset here it's this waiter asset that was then instanced as an object if we look at our variance folder you can see actually how this is working as i arrow key through now the cool thing is each one of these is going to be unique now this looks a little bit goofy because of course this is just a demonstration character you can put a lot of time into your character and get some really cool results one of the cool things of doing it this way is you get to actually do ray tracing so whenever you have two objects that interact with each other like you're going to get the proper reflections off of these objects and proper ambient occlusions world reflections all those great things that come with 3d ray tracing you get with rendering out your variants quite simple answer to render all these out you just have to render out an animation you can just select an output for png images and then render render animation and this will render out all of your variations i'll go ahead and i'll delete our variants here so now we have nothing here i can just turn our collection back on say we want to get this data outside of blender now it's cool that we can render all these out let's do 3500 now and we can use our write to csv document i'll just click this and i will call this we'll call this the sad ones 3500 data so this is going to give us all the data for our sad ones collection note this is going to save as a csv document in the root directory of wherever your project file is saved so be sure you're saving this or you might get an error code thrown i will go ahead and generate these and it's going to generate all my variations and then whenever you see it doing this this is um actually just saving this information to the csv document so now you'll know hey if it's doing all this if you see if you see bpy.data.objects over and over again this is at the point of the script where it's now saving it to the excel chart or the csv document all right and you'll know it's complete whenever you see csv document generated um we'll turn off our host collection again our variants you won't see anything until you jump as an arrow key and we can just go frame by frame and we can see here now let's open up let's just double check to make sure this is correct inside my root folder of this project where i have this saved i'm going to open up the csv document that it generated you can see i named it sad ones 3500 data open it up here's the sad ones 3500 csv and uh all of our data is listed here so it gives you the body the head all the sub collections are going to be up at the top we have backgrounds we have face that will give you the odds oh let's check variant 98 we have the 90s so the body is called the 90s and gold golden skin with a unibrow and blue a blue background all right let's check this out so variant 98 there we have it we got the 90s body we have the golden head we have the blue gradient background and we have a unibrow and it's perfectly reflected here in our csv chart which tells us exactly what number 98 is you get the point here right we have we have our different variants oh i like this one so thanks for staying this long into the video and i hope proxy swap helps you out check out the gumroad link in the description to see where you can download the add-on today go check me out on instagram and send me some of your work over there i love seeing the stuff you guys make until next time take care [Music]
Info
Channel: FruitZeus
Views: 86,397
Rating: undefined out of 5
Keywords: Blender NFT, Blender PFP Project, PFP Project, NFT PFP, How To Make A NFT Blender, How To Generate Characters In Blender, Blender Character Generation, FZRandomizer, FZ Randomizer, fz randomizer, blender random addon, blender addon, blender nft project, 3D nft project
Id: Uwb7rBr51xo
Channel Id: undefined
Length: 14min 38sec (878 seconds)
Published: Wed Mar 02 2022
Related Videos
Note
Please note that this website is currently a work in progress! Lots of interesting data and statistics to come.