📱

Get Our Mobile App

Take your business learning on the go!

Download on the App StoreGet it on Google Play

VRoid to VRChat [Advanced Tutorial] All Blender Fixes & More!

The Virtual Reality Show27:18

Transcription

If you want a fully working Vroid model that's compatible with full body tracking and three-point tracking, getting rid of the pee-pee dance, fixing up the full body issues, moving here facial expressions, and more, then you have come to the right place. This is my complete guide to the perfect VR Chat Vroid model. We're going to use some simple Blender beginner skills to jump right into it today, and by the end, you're going to have the Vroid of your dreams. All right, so I'm going to speed through everything we need, as you should mostly have all of it installed.

So you'll need your Blender; I use 2.92. Unity 2019.4.29. You're going to make sure that you have the VRM importer add-on for Blender, have the Cats plug-in for Blender, and then the SDK3. Make sure you're using a recent version, um, because there are some bug fixes. So if you haven't downloaded it literally like this week, you probably should get a new version, or it might mess you up. Then, of course, you will be adding in hair physics for your Vroid, so make sure you cop Dynamic Bone—definitely the best $20 you'll spend in your life.

Now let's start by proportioning your model to fit your actual, um, IRL sizes. So what I did is I actually have this model that I already imported into VR Chat, and I noticed that the proportions were pretty, uh, inaccurate to what I actually am. So, um, as you can see in this photo, this is how, when I'm calibrating, um, the balls, or where my trackers are, and they come up right into my shins. This one's about the waist, and the hands, um, are slightly long. So what I'm going to do is I'm going to reproportion my Vroid in the Vroid program to just fit these proportions. So what I've been doing is I'm going to full body; I'm just going to make myself slightly shorter because I just want the avatar to be a bit shorter overall. So I'm actually going to do this to about 0.5. Now, as much as I love you having long legs, we're gonna bring this a lot shorter to match my more, um, IRL leg length. Then I'm just going to shrink down those arms by a bit here, and now the avatar should match my IRL proportions and not be so anime exaggerated like they've been.

All right, and now, as always, I'm going to click Delete Transparent Meshes, and with that out of the way, everything should be pretty good to export. If there's any other optimization you want to do straight in the Vroid program, go for it; otherwise, the model should be good to go. I also recommend having a specific folder for each of your VRM models, so even if I did like another VRM, um, I would put the folder in here instead of having all the files together, because in Blender, it's gonna jump all your textures out, and if you have all the textures for different models in the same folder, things are gonna get pretty jumbled up and messy, so we don't want that. So just keep everything organized.

Great, and now we can open up Blender and start a new project file. I'm gonna go ahead and press A to select everything in the scene and then delete. And now, hopefully, you already have the plugins installed, uh, but if you don't, then I'll just quickly go over that again. You go to Preferences, Install, find the zip folders, and then make sure they are check marked in your preferences here. Um, from there, we can do File, we're gonna do Import, and then come down to VRM, and then locate the model that we just exported. Great, so now our model is imported and looks all gray. So, of course, what we can come do to fix up the model is open this little arrow, go to the Cats plug-in, and fix model while it's selected. Great, so now it went ahead and applied all our textures, fixed up the model for us. So the basic things we want to do is go to the eye tracking; it should automatically fill everything in for us, so just hit Create Eye Tracking, and then the visemes for VR Chat; we're just going to hit Create Visemes; it should fill in the AUNI for you automatically. Perfect. So now we have the eye tracking for VR Chat and the lip tracking for VR Chat all finished up.

So now we can go on to the actual, um, full body fixes. So I'm gonna take this part a little slower, seeing as you probably have never done anything like this before, um, so what we're gonna be doing is two things. So the first thing we're going to do is fix the saggy shoulders that Vroids will have, um, in full body tracking that we do not want. We don't want those shoulders to just weigh down completely. And the other thing we're going to do is for half body, how a lot of times the models will have the pee-pee dance; we want to fix the pee-pee dance and make those legs straight because naturally Vroid legs are kind of angled inwards, especially the male models; that's very prominent on the male models, but we're obviously doing this on my female one, um, so we'll be just fixing that up.

So let's start with the shoulder fix because this is incredibly simple. Um, all we're going to do is make sure that we have the armature selected, so select on there, make sure it's all kind of orangey yellow color, and then you can either press Tab or change to Edit mode here. And from here, we're going to be able to edit the size of the shoulder bone. So I'm going to click on this little circle here, make sure I'm on the move tool, come up here where this little butterfly is, and you can see there's an X, so we want to mirror on the X-axis. So now when we move this bone, it'll move this bone as well, and now we're literally just going to slide this back and make it nice and tiny. This is going to make it when the shoulder bends; it's only bending out of this tiny little area instead of dragging the entire thing down. Just make sure you do not move this little area at all, because if you do, for some reason, it actually causes an issue with the hip where the hip ends up swinging to the side and looking like this. So make sure that when you're doing this little arm fix that, um, you literally just touch this part and nothing more.

All right, so now we're going to straighten out these legs. The first thing we'll want to do is come down to this little foot bone right here, so let's just click on that and change over to Pose mode because we're going to be repositioning the legs. Yes, you get it, um, so we'll come here and then click on this little green bone icon, which are the bone properties, so that we can, uh, fix this little guy. What we're going to do is we're going to come to Relations and then uncheck Inherit Rotation, and I'll show you in a minute, but basically what that means is that the foot, no matter where we rotate the rest of the leg, is going to be planted on the ground. Because if we move the leg around and the bone doesn't have inherent rotation, it's going to kind of rotate itself upwards and kind of be flicked up. So we're going to make sure we have that turned on, and I'll show you how it looks without it in a minute. Okay, so now we're going to grab the thigh bone, and we're going to start straightening this out. Now we're going to do a top-down view of the model, so you can either press 7 on your numpad or you can press this little circle over here, which is gonna just kind of change your view position, um, so let's press that, and we're gonna get this nice top-down view, and you're gonna see that because we selected that bone, there's going to be two circles here. So if we come back down here, um, you're gonna see there's the top circle and the bottom circle, and all we want to do is just align that straight. So I'm gonna press 7 again, and now you're just going to align these bones, baby. So to do this, we're gonna come over to the rotate tool, and then with the rotate tool, I'm just gonna ever so slightly start to even this out, and it's gonna take some finagling; it's quite sensitive to your mouse, but it doesn't have to be absolutely perfect, but let's just get these bones kind of similar, maybe about there, and rotate this direction, come on, there, um, it doesn't have to be perfect, but it looks pretty even right there. So if we come back down, um, you can see that it's a lot more straight now, which is exactly what we want. So now we're going to do the same for the shin bone here. I'm going to click on that and then press 7 on my num, and then you'll see that we have the, um, circle here. So let's go ahead and bring this about there and then bring it down there, and then awesome. If we come down, you'll see that the leg on this side, um, is a lot more straight now, and it's been straightened out. So you can see this one has a slight tilt; in this one, it tilts down, which is exactly what we want. Now what we can do is I'm going to hold Shift and click on the bottom and the top, and then what we're going to do is we're going to apply these changes over to this leg as well. So I'm going to do Ctrl C, and then to mirror the option, we're going to do Ctrl Shift V, and then as you can see, it automatically applies to the other side as well, which is perfect.

Now I wanted to show you on here; we can see that this foot has the Inherit Rotation turned off, but this one does not, so it inherited the rotation of the other bone. So as you can see, it actually kind of flicks upwards; it's rotating upwards, um, like I mentioned before, so you can see why that's a problem. So we want to ground it, so let's come back over to the bone option while it's selected and hit Inherit Rotation off, and that's just going to gently bring it down, which is perfect. And now that we've made all these changes to the positioning of the model, we want to do Apply as Rest Pose, and that's gonna set all the changes that we made into the model, um, and kind of fix up those like tilts to being more straight, so you shouldn't have, um, the PP problem as much anymore. Also, in Pose mode, we're gonna hit number 3 on the numpad or press this little X here, um, to get a side view. Now we're going to click on this shin bone with the rotation tool and ever so slightly just bring that back a little bit to add some bend in the legs, and then, of course, we're going to do Ctrl Copy and then Ctrl Shift V for the other side and Apply as Rest Pose.

Also, another fix that you might want to know is, um, for some models, for some reason, um, depending on just like the proportions of it, you'll see that the feet actually, when you go into VR Chat, are dipping into the ground. So to fix that, if you come into Blender, you'll see that our, um, armature here for where the feet are is actually hovering above the feet, which is, um, incorrect; we do not want it to be like that. So what we're going to do is select the armature, um, change over to Edit mode, and then we're basically going to just re-angle all of this to fit inside of the foot itself. So I'm going to start by taking this with the move tool and you're stretching it down. I'm going to do the same for this big one, line it up with the foot here, then I'm just going to select this whole bone, drag it straight down, and then that should take care of that problem.

Now the last thing about Vroid models that I like to fix up is if it has like, um, skin-tight clothing or their collar bones, um, shown; they definitely protrude by quite a lot, and I like to bring those down a little bit, and it's actually quite simple how to fix that as well. So I'm going to click Object mode on the body, and then I'm going to come over to Sculpt mode, and literally what we're going to do is we're just going to push the collarbone down. So I'm going to come over; there's a whole bunch of different tools here; we're gonna find these yellow ones, and I'm gonna click Grab, which is basically the most basic ones, um, I'm gonna make sure that my, uh, mirroring is on on the X-axis again and just kind of come over here, zoom in real quick, and just drag this down in different points wherever I want the collarbone to be less noticeable, and there you have it. Now it's less protruding and looks a lot cleaner. You can do that for any part of your model as well. So if you did want to make your model, let's say a little thicker, you could always grab different parts of the model, um, like that, basically, except for you'd want to make it, um, you know, have a bigger radius, uh, and just kind of drag out like that. So that is how you can make your model larger, um, if you want to do a different body proportion. Great. So now I'm just going to return back to Object mode, um, and the model should be ready to export. So everything is looking pretty good here; we fixed the shoulders, we straightened out the legs. If you did want to fix like the hip rotation at all, um, you could always come down to this bone, go to Edit mode like we did before, click on this, and you can, um, just kind of move that the way that you want, uh, but typically I'm fine with kind of this natural curve of the spine that the model has, uh, translates pretty well into full body tracking.

Great, so now in Object mode, I'll select the model, and then I'm going to come up here to Export Model. Now that I've located where I want to put my model, I'm just going to name it, and then I'm going to come over here to Path mode and select Copy, and I'm also going to make sure that this little box is checked, and this is going to embed our textures into the model so that we don't have to import them individually. So all we have to do in Unity is just extract them, and it'll work. All right, and now we're going to make a new Unity project with the 2019.4.29 f1 project, um, I'm just going to label that whatever you want it to be. And finally, you're going to want your shader of choice; I'm going to be using Puyo Mutant Shader, seeing as it is the most popular.

Great, so now let's add everything into our project that we're going to need, um, that's going to be the VR Chat SDK3, you're going to want to put in your shader, you're going to want to put in Dynamic Bones, and of course your model. All right, now that we have everything imported, I'm going to do the same as the last tutorial, which hopefully you're familiar with already. If not, I'm just going to skim over it super quickly, so just follow along best you can. We're going to click on the model in the Assets folder, come to Materials, and then Extract Textures into its own folder, and then same with the Materials. Also, I'm going to drag the model into here, and you can see that the textures and materials applied perfectly. I'm going to click back on here, and a quick tip—I'm going to make that everybody, everybody, everybody should pay attention to this—is very important is if you decide to bring in a fixed-up model, so like, let's say I tried this one out in VR Chat and the shoulders are still too saggy for me and I need to go back and fix it, instead of having to redo all your effort on your model, literally all you have to do is drag and drop the model into the Assets folder and then come up here where it says On Demand Remap, then you can change the naming to Model's Name and Model's Material, and then Search Project Wide, and then Search and Remap, and all of the effort you did on your first model will be applied to your next model, so that way you don't have to repeat constantly the exact same steps to make everything again. So please remember that.

Now swing over to Rig, make sure that we're selected on Humanoid, click Apply, now hit Configure, Save, then all the buttons should be lined up correctly other than this one head bone in the jaw where there's a hair joint, so just select that and delete, and then come down, hit Apply, and done. Now come to Textures, make sure you're using the appropriate textures for each of your things; like here, I have the white eyeline and the white scalp, so I'm going to replace those by just deleting and dragging in the new files. Then for the updated textures, do Alpha as Transparency for all the ones that have Alpha. Then go to your Materials; we're going to fix our old textures like the scalp here by clicking on Textures there and dragging it into the new Albedo, which will replace it. Now select our shaders by going from here, going to Puyome, go to Tune, and then click the appropriate one for all the facial features which need to have opacity on the sides; we're just going to do Transparent, and then for all the things that don't need transparency, such as the face, we're going to select Opaque. Also, this weird extra eye thing that they always add in, let's just go to Main, and I am literally going to turn this Alpha all the way down so that it doesn't even show anymore.

Now I do recommend that you test out your model as working in VR Chat before you add your hair, Dynamic Bones, or the facial expressions, that way you don't have to redo your work in case something was off. So let's start by adding Dynamic Bones to the hair. So we're going to go to our Sample Scene, select on our body, and then drop down all of this until we find our head. From there, you're going to see all of these lovely hair joints. So what we can do is we can go through these one by one and add hair joints to every single piece of this. So what we can do is go through each of these one by one; it will take just a little while and add Dynamic Bones to each of these. So you can click on it and then add your components; we're going to add our Dynamic Bone component. From here, you can change a lot of the movement settings; personally, I think that the default ones work great as is, so what I'm going to do is just copy this hair joint, bring it up to the root, and that's just going to apply it to the hair. Now what you can do is if you did make any of these settings changes, um, we can come to this little drop-down menu here and then do Copy Component, and we are just going to go right up to the next hair joint, come up to this little button, and then do Paste Component as New, and that's just going to add all of the same settings to the new hair strand. All you have to do is replace the root with the new hair, and then we can go through all of these one by one and add in the correct hair joints. So then just repeat that for all of the hairs.

Great, so I finally finished all of the hair joints, um, so what we can do to test this is go back, click on the model, and press this play button where we can test the actual movements. Now click on Scene, make sure we have the model selected here, and then we can drag the model around with the move tool just to see the hair actually moving, which is, uh, fantastic; it looks pretty good. Obviously, it might clip and stuff a little bit actually in-game, which is why you kind of have to play around with the settings a few times to figure out what works for you, but like I said, honestly, just the default, um, settings work perfectly well for me, so that's what I keep it to. Now if you do want the chest to move, you can also do the exact same thing with the Dynamic Bones; you can do Breast L and Breast R; don't do the second bones, just do these main ones and add Dynamic Bone to that as well, and now you can see the jiggle physics are working great. So now I'm just going to close this up, and we can move on to the facial expressions. So how we're going to do facial expressions is we're going to make animations for the different expressions that we want and then assign them to hand gestures. So let's start by creating the facial animation. So click on your model and

Then you're going to do ctrl+D to duplicate it. Because we never want to do any animations on your main model, in case something does get stuck or screwed up, it won't affect your main model. So go to your main one, and then you can just click this little check mark to hide it. And then only your duplicated one will show. Now come up to Window, and you're going to add our animation window. So go ahead and click on that. And then, personally, I'm going to drag the little menu down here so it adds on to stay more organized.

Now what we need to do is open up the model here and locate Body, because Body includes, um, you know, the face and the body and all the meshes and our blend shapes, which actually are the different facial expressions. So if you click on Blend Shapes, you're going to see every single different facial expression that we can possibly make here. So, for example, all the ones we added with cats, with a different mouse movements, and then, of course, all the different things like if we want the joint mouse, we can do that, or we can come down to All, which is what I'm personally going to be working with, um, where we can do things like Happy.

Now all you have to do is create an animation clip, and we're going to make a new folder for animations. And I'm just literally going to call it Animations. Click into there, and then name this one whatever you want it to be. So I'm going to do Via Smile. Now we can just hit the record button, and our model is going to jump down to this little animation pose. And then any animation we want to make, we can literally do by just clicking, um, dragging this facial expression. So for fun, I'm just gonna drag this up all the way, and now we have a smiley animation. And to end the animation, all we're going to do is we're going to select both of those, press Copy, and then jump to the next second over, and then press Paste. And that'll make it so the animation is one frame long, which is all that we need for a simple facial expression. So we'll click off the record button, and it should be set.

Now we're going to repeat this for all the facial expressions that you want to use on your model. So I'm going to go ahead and create a new clip. This one I'm going to do Via Joy, and then I will hit Record again, and I'm going to do Joy, bring it all the way back there, Copy, one frame over, Paste, stop recording, and repeat. Great. So now we have all the facial expressions created. So we can come back to Project. What we're going to do is locate our Gesture Controller, which is going to be hidden in the VRChat SDK. So come here, we're going to go to Examples, 3, Animation Controllers, and then you can shift through these by looking up at the names, and we're gonna find the ones with the hands. So if you double click on it, it's gonna open up this little menu, and you can click on the left hand and the right hand to see the different animations it can make. So what we're going to do is you're actually going to duplicate this, so ctrl+D, and then I'm going to rename this to Fia Gestures. I'm going to click and drag this into my Assets folder where I can easily access it.

Now, from here, we're going to be able to easily change what gesture makes the different facial expressions. So for me, I like to do thumbs up as smiles. So I'm gonna go into my Animations, make sure I'm clicked on a thumbs up, and then up here where we have the Motion, we are going to select the motion that we want the V-Ray to make. So I am going to do Fia Smile and drag that up here. And we're just going to repeat that for all the different facial expressions that we want on each of these. All right, I put these all on the left hand. Personally, you can put them on the right hand as well, but I like to just control it with one hand at any given time. Also, make sure that when you're adding in your motions that you have Right Defaults checked on, otherwise your animations will just get stuck, and they won't turn off. So then as you make different facial expressions, they'll all just kind of blend together, and you won't be able to undo them.

Now let's go back to Scene, and we're going to hide this duplicated model and go back to our original. Now all that is left to do is do our Avatar Descriptor and make sure that everything else is ready to go. So go to Add Component, Avatar Descriptor, and then the same as you've probably done before, we're gonna press Edit, move our little ball down to right between the eyes for the Viewpoint. We're going to do Auto Detect for the Lip Sync, which should fill in everything for you. I look, we're going to Auto Detect that, and then for the Bones, remember we're not going to use the V-roid bone, which is the i_l i_r. It is the left eye, right eye. Now because we duplicated the model, we're going to have two sets of these, and typically it should be the original model on the top, and then the secondary model on the bottom. So click on that, and then same thing for this one, right eye. And then for Rotation States, I'm going to do negative 15. Personally, you can do whatever number it feels right to you, and then do the same for these side looks.

Now for the eye blinking, we're going to go back to Blend Shapes, and we are going to locate the Body mesh. So click on this, uh, drop down here, and then select Body, since that's where all our blend shapes are located. And then we want the blend shape that does the eye close movement, so just like that. For these, we can just set it to None. And then the fun thing that we're going to add on here this time is the Playable Layers. So press Customize, and then come down to your FX Layer, and all we have to do is click on this and then drag in our gestures that we created with the hand motions, and that should automatically, um, set all that for us. And great, our model should be good to go now. So I'm going to come to VRChat SDK, show Control Panel while the model is selected, and then I'm going to come here and try and fix all my errors. So Auto Fix for all of these ones. And then quick note, if your model does say Polygons and it's like in the billions, that's because you're not using the more recent version of the VRChat SDK, and the way that you can fix that is by clicking on your model, um, coming over to the Model tab, and then making sure Read Write Enable is on. But pressing the Auto Fix fixed that for us automatically.

So you'll notice that the optimization on this model is very poor, and that is because of all the dynamic bones we added. Anytime you add dynamic bones, the model's not going to be as optimized. If you want to get your model down to like medium performance, then the most you can use is actually 16. So what you can do is remove a whole bunch of dynamic bones. If you're trying to be a little bit more optimized, like get it down to poor, um, you can do 32. So an easy way to do that is just make it so that all the secondary bones here don't have it, and you can just kind of do all the main ones or go through and figure out which bones don't really need movement at all or that you're okay with getting rid of and just change everything like that. So I recommend using as little dynamic bones as humanly possible or none at all and then atlasing your textures in Blender using Cats. Another tip is to make a casual version of your model and an optimized version of your model. We can duplicate our model like we did before and then detach the model ID that VRChat assigns to your model when it's uploaded, so you can have a second version and then remove all your dynamic bones. So you have one that shows up as better performance in the game. But with all of that out of the way, um, you can go ahead and upload your model for offline testing to make sure that everything looks okay, um, and then when the model is ready, you can do Build and Publish for Windows.

All right, so this is an older model of mine, um, here in three-point body tracking. So as you can see, if I've been down, um, the legs crossed and the peepee dance. So we're gonna switch that over to the new revised model. And as you can see, when I bend down, there is no more pp-tan. So it looks a lot more normal. And now that we see how it looks in three-point tracking, let's change back into full body. As you can see, when I calibrate, um, my placement of my controllers in trackers is a lot closer to how my body actually is. My shoulders do not sag whatsoever. You can take a look and see that they look, um, perfectly straight. So that's all fixed up, um, the feet and toes are perfectly level on the ground, um, collarbones all fixed up, and of course, we have the hair movement. So if I move up and down or side to side, you can see that that's going. Finally, we have the facial expression. So I got my smile like this, my shocked face, and then my kind of annoyed one. So everything is super expressive now, um, it turned out fantastic, um, so this is a complete V-Ray model with all the fixes. Yeah, I really hope that you enjoyed this tutorial video and that it was helpful for you. If it was, then please give it a like and subscribe to the channel for more V-Ray content. Comment down below what kind of video you would like to see me make next, and if you do have any more issues or questions, you can always join my Discord link in the description to ask for help. People that are always willing to help each other out. Anyways, that wraps up this video. Thanks so much for watching, and I'll see you in the next video. Bye. Special thanks to this month's Patreon members and virtual VIPs: Do Tech Clue, Clay, Mr. Cheerio, Scoremaller. [Music] [Music]