tl;dr use as many materials as you need, get good uv maps, use PBR baking tools. Write programs to automate steps you do often.
This is not a tutorial to learn Blender. My aim is to show people how I reduce chaos and double work by having good preparation and working smart with a focus on VRChat avatars.
A lot of people use Substance Painter for texturing. Nothing wrong with that and most of the times it is the way to go. It just doesn’t work well with my workflow. Multiple programs is annoying for fast iterations on whatever you’re working on. I want to jump between different goals a lot: sometimes it’s a bit of modelling, sometimes a bit of texturing, sometimes a bit of weight painting. I don’t want to spend time exporting and importing models all over. Actually, a lot of the procedural things in Substance Painter/Designer are already in Blender in the form of shader nodes and I’d argue it’s even easier to set up in Blender, if you know what you’re doing.
If you have any questions or possible improvements, please message me on Discord!
Project Organization
Depending on the scope of your project it’s useful to have some organization. I see modelling as a pipeline. You start with something very raw and you refine, and refine, until you get something upload worthy. You want to organize your project to minimize the amount of backtracking and streamline any future steps that you already need to do. The keen-minded that are reading this may already use backups by saving under different names; but honestly that’s not enough. What if you want to the change the weight painting on the hair, but in your pipeline that already came before some of the other work on the rest on model. That would mean you have to redo all that. Bwegh!
That’s why you use collections! You can duplicate these, you can move them to other collections, yada yada. Modelling isn’t a linear pipeline, it’s a lot of small pipelines combining together. For example, for a project with an avatar and some outfits you could organize the collections as following:
- Avatar
- Avatar_Reject (the recycling bin)
- Avatar_Draft (rough modelling, many modifiers)
- Avatar_Adjustments (weight painting, mesh changes)
- Avatar_Baking (materials, posing for AO maps)
- Avatar_Export (what you will export)
- Outfits
- OutfitA
- OutfitA_Draft
- OutfitA_Baking
- OutfitA_Export
- OutfitB
- etc…
- OutfitA
From Start to Finish
Drafting
Now you have your workspace laid out it’s time to start! I like to poly-model everything, optionally with the mirror modifier and the subdivision surface modifier. Feel free to add more collections to your own need. Re-use old parts and the most important of them all: compare with your previous iterations. Learn how certain adjustments change the feel, vibe, or anything else.
Materials
While drafting or after it may be useful to set up your materials. It will give you a better image of how the final product will look. Even if you will texture everything under a single material later, having more context always helps.
Topology
Once you got the shape down it’s time to think about the topology. How will the mesh deform under certain movements. This includes doing a rough weight paint to actually see what’s going on, but don’t spend too much time on it now. You will probably have to touch-up the weight painting many times when adding clothing.
UV Mapping
Now you can do the easiest step of them all (yes even easier than exporting if you’re willing to pay for UVPackmaster). Simply mark your seam edges and unwrap and pack, yada yada. Not going to explain that here, there are tons of tutorials online such as UV Seams Explained in 3 Minutes by Royal Skies or UVPackmaster by Markom3D.
Texturing
I do my texturing mostly procedural and paint masks every now and then. I’m not artistic enough the hand paint everything. This means I sometimes need to mess with UV maps. Luckily you can have multiple maps and delete excess later.
Baking
You can squash down all the materials really easy by baking them all down into a single material. I like to use Simplebake since it allows me to bake AO, diffuse, normal, emission, metallic, etc. with one button press. Not sold? Check out this: SimpleBake for Blender by Brandon’s Drawings!
The best part is that you only have to do this once, unless you modify the materials or UV maps. When doing simple mesh edits, you can just set up the materials as you export them, which can be easily automated.
Exporting
If you are exporting to Unity, do not forget to set the FBX scale option to “Scale All”.
Iterative Improvements
After all of that, you should have something upload worthy. But what if you want to change something. Do you modify it before you apply a mirror modifier, or do you just touch up your finished product? What about face tracking shapes? Most of those are mirrored and changing one is often quite annoying.
Well there’s a thing for that called ✨ automatization ✨.
I wrote a tool that takes meshes of a model (hair, head, body, etc.) and combines them. Does a few post-processing steps such as cleaning up seams after joining followed by an export that overrides the existing model in my Unity project.
It might be scary to get into, but if you’re any bit technically inclined you can write an blender addon that does exactly that in a few hours with the help of AI.