Hey everyone!
I’ve heard a lot of questions from beginners in the art community regarding things like clothing folds and materials, so I thought I’d create this tutorial breaking down a character in a project I’m working on.
I’ll be going through elements like displacement, bump maps, roughness maps and other such factors when creating a render.
Note: For this tutorial, I am using Blender 2.79. I will try to update this at a later date for 2.8 users.
Lets get into it!
1.Exporting from studio to blender
Bring the packages you need into studio (I recommend using the plugin Custom NPC Maker, which is what I’m using in the image below). At first it will spawn with a bunch of stuff we don’t need, including a hat and bandana, so you can delete those and make the skin a normal color. I’m using a hair and lightsaber model, but you can use whatever you want.
For each package, you’ll see three files appear in the folder you save the obj in; the obj, the mtl and the texture.
Each time you export a package or character, the texture(s) of that character will override the texture file shown. This is why you have to copy and paste the texture for each character, renaming it to make it easy to find in future, like so:
This way, the next time you export a character from studio, the source texture files (Mrgreyr151Tex and Mrgreyr152Tex in this case) will be overwritten, but the files you’ve copied and pasted will not.
Once in blender, go to file > import > obj, find your obj file, and insert it. Tap Ctrl + shift + alt + C > Origin to geometry (this makes it so that the origin point for each part of the package is in the centre of the geometry so that when you try to rotate it, it will rotate around the centre, since rotation is always around the origin point). Once this is done, rotate the package to face forward.
If you don't see the package in Blender
It may be that you forgot to tick the ‘Spawn in Centre’ box when using the character import plugin, or you just forgot to place it in the centre. Either way, you’ll find that your character isn’t on your screen, but instead really far out (which was actually the case for me, as you can see).
No problem, just bring it into the centre. Bob’s your uncle, you’ve got a character.
If the texture is more blurry or less defined than you expected
This has been reported before, and unfortunately is a pain to work with for people like me since I depend on decent textures yet have a PC that barely manages to function. As far as I can gather, it has to do with your GPU not being good enough to run Roblox with full sized textures, so it scales down the texture.
If this happens to you, try getting a friend with a decent graphics card (shouldn’t be hard to find one, I think this is just a problem for really low end GPUs) to import the package for you.
I couldn’t replicate it with this package in particular, but below is an example of what I mean with another package (left is better GPU, right is mine - if it’s hard to see the difference, look at the eyes)
2.Posing
You should be at the point where you see a character fully in white. To see the texture on the character, click the white sphere on the bottom of your screen saying ‘solid mode’ to change your viewport into a textured one. The image below shows the view you were in otherwise.
I recommend using a rig to pose your characters, but I learned to pose mine via hard bending (a process by which you bend limbs and pose characters by going into edit mode and rotating/bending relevant vertices). This is messy and a bad habit, so I encourage you not to do it, so this is a step I’ll try to gloss over a little on purpose.
One thing I will say though is when you’re posing, use a reference; it really does help to get a feel of anatomy and how a person or humanoid should look like. For example, in this case, my references were:
With them, I posed it as follows:
Now it looks very plain, but that’s mostly because we haven’t done materials, lighting or really anything outside of posing, so just keep the image of what you want in your mind; we’re not done yet.
Also, I’m using a different head to the package just because I prefer it, but you can use the default head if you want, it makes no difference in terms of this tut.
3.Lighting
This is the point where you decide what lighting you’re going to use. There’s a number of ways you can do this, such as with HDRIs or a three point lighting system. In this case, I used a HDRI and some side lights to produce this:
Keep in mind you may not have the desired lighting effect immediately; play around with settings to find what you want in the environment texture mapping menu.
.
4.Materials
a) Base
Look for three diagonal lines in the top right corner, and drag them to the left. This will create a split screen as shown.
On the right (or left if that’s what you prefer) split screen, go to the cube icon in the bottom left of that screen, then click node editor. You should see this absolute mess:
You don’t need 90% of these nodes, so click on the material output node on the right, press ctrl + I to invert the selection and delete the selected nodes. Shift+A to add a new node, and add a principled shader (add > shader > principled BDSF) and image texture (add > texture > image texture). Find the texture you want for the character for the image texture. Set it up as shown:
Configure the settings of the principled shader while being in the rendered viewport in the other side of the split screen. You can play with values like roughness, specular and metallic to achieve the effect you want. It should look something like this depending on what you configured it to be:
b) Bump
If you want to add some detail, you can use a bump map. Duplicate the image texture node, change it from color data to non-color data, add a bump map node and connect it to the normal input of the principled shader as follows:
Keep in mind bump shouldn’t be overused; it’s not something you generally see on materials unless you’re talking about something like leather. For this reason, turn down the bump map to 0.3-0.5 or so, depending on what you want.
c) Rain drops
Depending on the scene you’re doing, this may or may not be relevant, but this helps a lot for outdoor, overcast scenes where it suits the aesthetic. Add a mix shader in between the principled shader and the material output, then duplicate the setup you’ve already got with the 2 image textures, bump map node and principled shader, and plug this into the second input of the mix shader. This is shown below (with the mix factor set to ~0.8). This means that the resulting material is a combination of two: ~20% of the original setup and ~80% of the new one.
Change the bump map image texture input of the second setup to a seamless raindrop background, like this:
You should get the following result after you alter the texture’s mapping. I’m using a 5x5x5 scale, as shown below.
5.Displacement - Clothing folds
This adds a healthy bit of realism to the piece, and can be applied to non-rthro characters.
Separate the clothes from the skin on the relevant limbs in edit mode by making two copies of that part, then deleting complementary parts of the mesh from each other (i.e. delete the skin in one, delete the clothes in the other) so you have 2 separate meshes.
Assuming you’ve finished posing, copy and paste your character and put him on another layer, because what we’re about to do is irreversible if you go too far and decide to change your mind otherwise.
Group the jacket by selecting each part of the limbs and torso, then press Ctrl + J.
Go into edit mode once this is done, press W and click ‘Remove Doubles’. This removes duplicate vertices that are in the same position as each other.
Why remove doubles now?
Once you subsurf the mesh, you’ll notice the geometry gets really weird when there are doubles, in that there are disconnected vertices, clashing faces, Z fighting, etc. Removing doubles resolves some of these wonky bits, as shown below:
Go to the modifiers tab and add a Subsurface modifier, with about 4 cuts (depending on how much your PC can handle - this is about the maximum for me before I start lagging out, but if you need to, make the ‘view’ cut amount something lower so that you see the geometry with less subdivisions in the viewport, but in the render it has more cuts). Add a displacement modifier, and change the input to an image texture of a displacement map of some cloth. There are a lot of good ones you can find online, such as below (just keep in mind that only the black and white values of the map are what actually matter).
Play around with the mapping until it suits your needs, as shown below.
If your displacement map is acting weird
You might notice that the map you’re using is weirdly symmetrical about the middle.
This is because you may have set the Texture Coordinates to UV, and the roblox texture itself is mirrored about the middle due to its UV map, so the displacement map is too. You can either:
- Change the mapping mode to something like Global, then remap it
- Unwrap the jacket completely and remap from there (Note - this will mess up the mapping of the original character texture, so you should replace that with another texture, like seamless leather)
The strength and mapping of the displacement will vary depending on what displacement map you use, so keep in mind the -0.05 in the strength value and the 1.01x1.34 crop values aren’t absolute.
Repeat this process with the legs, until you’re satisfied with the outcome. I ended up getting this:
6.Finishing touches
a) Rain drops
In case you’re not satisfied with the rain drops you made in the material, you can make physical rain drops that spread around the character. You can do this by creating a sphere (I used an icosphere), subsurfing it (try not to do this too much since the rain drops will be small anyway, and there will be a lot of them), then creating a particle system on the thing you want the rain to be on (in this case, I wanted it on the hair). Make the icosphere into the particle, then change the particle settings until you’re satified. Alter the icosphere’s material into something like glass, so that it looks like a raindrop, as well as altering the geometry of the sphere so that its more elliptical.
All of this is shown below.
You can play with the emission number, hair length and randomness variables until you get an effect that you like.
I achieved this:
They may look giant, but from further out it looks more normal, like this:
b) A scene
This more than likely will require you to have a reference if you don’t know what to add in the background (I recommend using the ones I posted under Step 2 - Posing).
I myself ended up modelling a simple background with a few pipes, a wall with some neon on it and a metal floor, like so:
In case you’re out of ideas on what to add, I recommend Ian Hubert’s Pipe Tutorial, which is honestly really useful for making just a bunch of different pipes. It sounds simple enough but it adds a lot of life to the scene and acts as a good space filler.
c) Roughness maps
I didnt use these when making this scene in particular, but they’re useful for almost anything with something shiny in it. Roughness maps are like displacement maps in that the data that is used is purely non-color, and Blender only relies on the dark and light values in each area of the map. White means that the area corresponding to that part of the map is 0% roughness, and vice versa with black. They allow you to control how light reflects off a surface, like so:
To use a roughness map, add it into your node setup as an image texture, and connect it to the ‘roughness’ input of the principled shader(s).
7.Celebrate now that you’re finished
You made it to the end of the tutorial, congrats! I regret to say it’s not over though, what I’ve shown you is only a snapshot of what Blender (or any rendering software for that matter) can do for you to make your renders more realistic. This should be enough for within the scope of rendering in Roblox (for now), but if you ever want to go beyond rendering purely for the purposes of Roblox, you should learn other skills like modelling, which will be invaluable.
I hope this helped you!