[Improved!] Some tips and tricks to uploading meshes properly (Blender)

#1

Hey all.

In this thread I will be going over some tricks to ensure that you always have the right size and appearance when uploading your meshes. I do not go over tips for 3D modelling in itself. I will be using Blender for this tutorial, which is a good bit of free software for 3D Modelling.

This has two parts:

  • Importing to ROBLOX, which goes over editing in your 3D program
  • A brief part over how to make your model the best for anywhere collision needs to be factored in.

PART 1: IMPORTING TO ROBLOX

This part goes over some tricks in your 3D editor of choice.

Section 1: Scaling models to be correct on import.

This section will tell you how to ensure your imports are to-scale and not way too big or small. Click to view!

This is fairly simple and my other tutorial had this as its main focus. If I open up blender’s default workspace, you can see the basic cube there in the middle. If we were to import this cube (Exporting to FBX, importing to roblox) we would notice something rather funny about its size!

If I were to import this cube into roblox, its size would be [200, 200, 200]! Luckily for us, this makes scaling easy: We can see from the grid on the floor that the cube takes up 2 grid spaces. From this, we can assume that one blender unit is the same as 100 studs. Simple enough, right?

In order to fix this when we export (without actually editing the model), we need to change the export settings. When you export as an FBX, pay close mind to the options in the lower left…
image

In order to make one blender unit equal to one stud, we would simply set this value to 0.01 - 1/100th of a blender unit, or 1 stud. This means our cube would be [2, 2, 2] in size when we import it since it takes 2 blender units on the grid.

Section 2: Keeping triangle count low while making things appear smooth.

(Suggested by Post #7)

This part goes over what normals are, and how you can use them to create a very good illusion of a high quality mesh. Click to view!

First thing I will go over is for those who don’t know what normals are. Skip this if you know what they are.

In 3D modelling, there’s something really cool we can do since we’re not in the real world. Logically, if you hold something in the real world, it will reflect light based on its surface, right? When we’re in a 3D editor, we can actually edit the direction that the light reflects on an object - That’s crazy, isn’t it? Imagine holding a piece of paper upright, but having the light bounce off of it like you were holding it sideways.

By using normals, we can make a model appear smooth. Normals apply to vertices, or, the actual points in 3D space that can be told to make a face. When they are used to make a face, you can think of it like bending way the face reflects light, almost like curving a sheet of paper. Keep in mind that this doesn’t actually change the physical shape. Just the lighting.

So here you can see a shape called an icosphere - It’s a sphere that takes after a primitive type of geometry called an “Icosahedron”. As you can see though, it’s very low poly and is not a good choice for getting the appearance of it being smooth.

Fun fact: Did you know that the default Ball shape on parts uses an icosahedron? That’s an example of how what I’m about to go over can help!

Seeing this there is a single step we can do in blender to automatically make it smooth for us. At the bottom of the window, go into Edit Mode by clicking the “Object Mode” menu option, and changing it to Edit Mode.

Now that you’re in edit mode, ensure your model is selected (It should be by default) - If it’s not, press the A key on your keyboard to select all.

Now, go over to the menu on the left, click the “Shading/UVs” tab, and click the “Smooth” option under “Faces”

image

What this will do is smooth out the normals, causing the model to appear very very smooth. You can see the effect right away. You might be able to see it better if you deselct everything or go back into object mode.

Section 3: Ensuring your mesh can be seen from all angles (For flat / 2D geometry only)

This section goes over how to ensure your normals are correct. Roblox has something called "Backface culling" - This means that if the camera is viewing a surface in the same direction as the normal, the face will appear invisible (When you look at a surface and you can see it, you're looking in some direction that's opposite of the normal).

One of the issues many people run into when uploading meshes - Especially meshes with flat portions - is that they can only view the mesh from one side due to the normals. This is very easy to fix within blender.

To get started, we need to go to our mesh and turn on Edit Mode. For the example, I have a flat plane.

Unfortunately, while blender does show which way the normals are facing (If you look at a face from the back, it will be dark, whereas looking at it from the front will make it bright), we can’t be exactly sure, especially on more complex meshes. In order to assist with this, enter edit mode then press the N key on your keyboard. This will open a little menu. Scroll down and find this: (Zoom in on the image! Part of it is gone)

Click that little square icon with the orange face highlighted, the one that’s in the smaller red circle I drew. You will notice little blue lines on your mesh. These blue lines will be sticking out of the face, in the direction that their normal is. In the case of my plane, I can see it two-sided in blender, but that blue line is only on one side. This means the side without the blue line will be invisible in roblox.

(Suggested by Post #2 - You can also check the “Backface Culling” option in that same menu, and it will make pieces of geometry you’re looking at from the wrong side invisible)

In order to fix this, we need to duplicate that face and turn it around so that there’s actually TWO planes - One for each side.

Luckily for us, Blender has a built in tool to do this for us. Start by selecting the vertices of the plane. You can do this either by right clicking on the vertices to select them, or by pressing the C key and clicking on top of the vertex with a selection brush.

After we have our vertices selected (Again, make sure you’re in edit mode. I feel like one of you is going to get stuck here :stuck_out_tongue:), click “Mesh” on the lower side of the window (If you used the selection brush by hitting C, hit escape so you can use the mouse again), then mouse over Faces and click “Solidify”:

When you click this, you will notice a few more blue lines. What this operation does is adds thickness to any selected faces. We need to change this, however. After you do the solidify option - assuming you didn’t click anything after that - you will see options in the lower left corner of your screen:

image

We’re going to set that Thickness value to 0. This will do exactly what we want, and add a back to our face. Note that this duplicates the face, which means it adds triangles to the mesh.

That’s the result.

PART 2: A tip for collision with meshes in-game.

I’m certain many of you know about the issue where Unions and MeshParts don’t have realistic collision. Fortunately for you, this has a remedy. Unfortunately it only works in a very specific case.

This type of collision is called a “Convex Hull” - It can be set with the CollisionFidelity property in roblox. A convex hull is easily imagined like shrinkwrap - It creates a film around the shape of an object, but doesn’t go into any dents, holes, or pores. If your mesh is convex, which means it has none of the features that I just mentioned, you can set the CollisionFidelity property to Hull and drastically improve accuracy with collision. Take a look at this sphere I uploaded.

Click to view.

Looks good, right? Unfortunately its collision is rather messy with the default collision…

Click to view.

However, since my shape is convex, it’s possible to set the CollisionFidelity to Hull to get an exact shape.

Click to view.

image

(Note: I activated the studio setting to view Decomposition Geometry - This is how union / mesh collisions are viewed. CloneTrooper1019 has a plugin that makes it much easier to enable/disable. Get it here: https://www.roblox.com/library/414923656/Show-Decomposition-Geometry)

Hopefully this is enough to help you all import properly the first time so that you can avoid issues with your meshes. Please reply if I got anything wrong or missed any points.

56 Likes
Which program is better to use for building?
Mirrored half of blender isn't being imported properly on ROBLOX?
#2

Oh my! Didn’t think there was a way to set the scale of exported files! Wonderful tip!

Might as well contribute my own tip. Another way to see the backface culling, which may be good in certain cases, is to click the “Backface Culling” button in the very same menu as the one to view normals using blue lines. Instead of blue lines, it makes any side a normal isn’t facing transparent, like it would be in Roblox.

6 Likes
#3

Yeah I was gonna mention this but I forgot to. Good bit to add.

1 Like
#4

Also make sure you apply the scale when you’re done modeling something by pressing Ctrl+A–>Scale. That way the scale values will reset and won’t cast any ugly shadows in studiio.

4 Likes
#5

Also to upload a mesh to roblox with the texture included, you have to export it from blender render

3 Likes
#6

Thanks for tips! :grinning:

1 Like
#7

a pretty neat tutorial ; i once planned to write a similar far more detailed one but iam lazy and busy as hell ):

Some suggestions and additions :

First off instead of showing us users some “complex” maths ; you could have used the simple sentence which is : 1 square of Blenders floor grid is exactly 1x1 Roblox studs in size "
Which is pretty crucial in order to simply give the Blender mesh the right size .

About the Face normals : instead of only addressing to fix planes ( which are a rather very rarely used mesh ) you could have simply told and teached the common face normals recalculation method .

Because the solidify modifier only adds additional triangles and does not fix most normals shading issues .

tell me if you like me to tell the full and best way to deal with most face normal problems …since iam sadly too busy to make my own tutorial ):

But thank you for making a tutorial anyways (:

#8

This section was specifically directed at planes in a mesh because many users have actually resorted to uploading meshes ripped from games that tend to be low-poly and use plane geometry.

I’ll append that thing about normal smoothing and correction in a bit here, though, because that’s definitely something I need to cover.

1 Like
#9

meshes ripped from games ): i dont like that situation at all :worried:

I truly fear that all those mesh rippers will only lead the Roblox mesh feature into an dead end … i especially fear that for example disney will one day get aware that some ppl even rip meshes out of official licenced Star Wars games );

I slowly dislike ppl which rip meshes :neutral_face:

anyways is someone allowed to share or inform about Discord servers here on the forums ? since i got an utterly usefull discord channel about using Blender for Roblox

#10

Great post, thank you!

I had a problem with collisions as well, and could never figure out how to fix it. In Blender, I had created a typical triangular terrain with some hills and valleys. When I imported it, the collisions were not calculated properly in Roblox - my character would walk over a small valley, for example, but appeared to be walking in air (by 1-2 studs) over the actual mesh below. I tried all the collision modes in Roblox, but nothing would fix it.

2 Likes
#11

Very useful! Thanks!

1 Like
#12

I may edit this post later on to go over how to split up meshes into several parts that you upload separately so that you can make better collision for things that require it, since the collision fix that I gave only works in some scenarios.

#13

I was stumped by backface culling and your guide helped me fix it. Thanks very much!

1 Like
#14

Another quick thing to note if you didn’t already know is, Meshes contain location data, which means they will import with the exact position you exported them in.

For example if you import this gun stock in two separate parts;

The medium stone grey will import relative to the position it is in blender, which is right next to the dark stone grey.

You are given the option to import the mesh with location data;

Just hit Yes when prompted.

1 Like
#15

Honnestly thank you so much. I have been able to make so many things now that the meshes arn’t half invisible. I am not great with blender but it looks 10x better than making it in studio so THANKS!