Designing Assets in Unity with ProBuilder

Introduction

In this tutorial, we will be exploring how to model and build objects in Unity using ProBuilder. This tutorial has two sections – in the first, we will be building a simple, low poly, car. In the second section, we will be utilizing something called “Bezier Curves” to make a race track. The things we are making are not complex or intricate, but the concepts that you will learn can be applied to more complex and intricate projects.

What is ProBuilder?

We will be using two components in Unity, ProBuilder and ProGrids. ProBuilder is a tool that gives Unity the ability to edit the shape of primitive objects. This allows us to make more complex gameobjects. And ProGrids is a tool (similar to the Snap Settings in Edit -> Snap Settings) that will snap whatever it is we are doing, whether it be editing, scaling or rotating, to a grid. This allows for a very uniform look on our gameobjects. This tutorial is mainly going to focus on ProBuilder.

Did you come across any errors in this tutorial? Please let us know by completing this form and we’ll look into it!

FREE COURSES
Python Blog Image

FINAL DAYS: Unlock coding courses in Unity, Godot, Unreal, Python and more.

Requirements

This tutorial assumes that you have hardly any knowledge about modeling gameobjects, however, prior knowledge of Unity (like creating and manipulating primitive objects) is definetely going to help.

Importing ProBuilder and ProGrids

Create a new Unity project and go to the Asset Store. Search “ProBuilder”, it should be the one of the first items.

screenshot1

Download and import this. Next, search “ProGrids”, this one should also be one of the first items.

screenshot2

Download and import this one as well. If everything imported correctly you should see ProBuilder and ProGrids appear in the “Tools” drop down. Let’s go ahead and create a new folder called “Scenes” and then create a new scene called “CarAndTrack”.

screenshot3

Familiarizing ourselves with ProBuilder

Go to Tools -> ProBuilder -> ProBuilder Window.

screenshot4

Place this new tab some where convenient, I put mine here.

screenshot5

ProBuilder has two different ways of looking at its window, Icons and Text. You can switch between the two by right-clicking in the window and selecting which one you want, I usually stick with text since it is more descriptive that an image.

screenshot6

In your scene view you’ll notice a new bar on the top part of this tab that has four different buttons.

screenshot7

These are our different ways of interacting and editing our objects. You will change this multiple times throughout your project. Right now it is set to the “Object” mode. This allows us to move, rotate, and scale an object with out changing the structure of the object. The other options allow you to manipulate either the vertices, edges, or faces of an object. If you aren’t sure what a face or vertex is don’t worry, you should understand what they are as you move through this tutorial. Let’s take a look now at ProGrids. You’ll notice a new side bar has been created in the scene view. The ones settings we are going to be mainly using are theses right here:

screenshot8

The top one enables or disable ProGrids, we will be using this one mostly. The last few are mainly which grid is displayed in the scene view, I prefer the Y plane over the others since it is mainly what I am used to. Feel free to change these last ones to be however you’d like. Now that we have had a brief look at how ProBuilder and ProGrids work, let’s start creating!

Building the body of our Car

With ProGrids enabled, click “New Shape” in the ProBuilder window.

screenshot9

This will bring up a new window in which we can specify what shape we want built. The car we are going to make will very “blocky” so we will use the Cube shape. Leave everything set to default and click “Build Cube”.

screenshot10

If you have any experience modeling 3D objects then go ahead and start “blocking” out a car shape, with wheel wells and windshields. If you aren’t too familiar with building objects from primitives, follow along, you’ll get the hang of it pretty quickly. With our cube selected, I am going to go to face select mode and select one of the faces that lie on the X axis. Then I am going to drag this face out one grid space (with ProGrids enabled) so that it looks like this.

screenshot11

I am then going to grab one of the faces that lie on the Z axis and drag it out one grid space as well.

screenshot12

Then I am going to extrude this face one grid space by clicking “Extrude Faces” in the ProBuilder window.

screenshot13

We can snap this to the grid by dragging it forward. I am now going to make the windshield by going to edge select mode and grabbing the top edges of this newly extruded face and dragging it upwards.

screenshot14

It looks a little steep so I am going to drag it backwards along the Z axis.

screenshot15

To finish it up I am going to grab the bottom edges and make them match with the top ones.

screenshot16

Next, let’s extrude the back face to make the roof and the back window.

screenshot17

screenshot18

Here I am going to disable ProGrids for a moment so that I can edit this in freehand. I am going to make the back window not as steep as the windshield.

 

screenshot19

While ProGrids is off, I am going to make the hood shorter, like this.

screenshot20

Let’s continue building now. Extrude the back face to form the trunk, I chose to make this a good deal shorter than the hood.

screenshot21

Alright! The body is done, let’s add some wheels!

Building the wheels.

The wheels are just going to be simple cylinders scaled to look like wheels. With this in mind we need to make the wheel wells on our car body. A good place to put them would be on these vertices:

screenshot22

[Advanced concept art, requires years of experience]

Before we do that though we need to do something that will make since in a moment. Grab the faces on one side of side of the car (preferably in the negative X axis)

screenshot23

and drag them, with ProGrids enabled, to the center so that we only have half of a car.

screenshot24

If it looks a little strewed just move the other faces so that it matches.

screenshot25

screenshot26

We want all of our faces to lie near the origin so, if your’s was like mine, box select all of the faces (by just clicking in empty space and dragging) and drag it so that it lies directly on one side of the origin.

screenshot27

screenshot28

Now let’s start making the wheel wells. This part isn’t as intuitive so follow along as best you can. We need to grab the faces on either side of this vertex (shift click)

screenshot29

and subdivide them. Subdividing a face or edge just basically splits the edge or face into more edges or faces. To subdivide these faces, click “Subdivide Faces” in the ProBuilder window. Then we need to grab the center vertices and drag them into a arch-like shape. Reposition the adjacent vertices so that the match this shape.

screenshot30

Now we can grab these faces and extrude them into the car’s body. Select both faces and click the plus icon on the “Extrude Faces” button, this allows us to specify how far we want these faces to extrude. Set the Distance to be -0.25 and then click “Extrude Faces”. Now all we have to do is delete the bottom faces and we are done with this wheel well.

 

screenshot32Now we can just duplicate this process for the back wheel well.

screenshot33

screenshot34

screenshot35

Now we can just click the plus icon next to Mirror Objects, select X axis, check Duplicate, and click “Mirror”.

screenshot36

This will make a complete and flipped version of our car body that we can drag to one side join to the other one by shift-clicking and pressing Merge Objects.

screenshot38

The last thing we have to do with our car is to add our wheels. These are just cylinders, scaled down on the Y axis, rotated 90 degrees,

screenshot39

and of course, duplicated four times.

screenshot40

Whew! Our car is now done, on to the race track.

Constructing the race track, curves

Making the race track is a little different than making the car. With the race track we will be using curves instead of a mesh. Go to Tools -> ProBuilder -> Editors -> New Bezier Shape.

screenshot41

Let’s select all of our car parts and disable them so that we can see what we are doing.

screenshot42

From here we need to have ProGrids turned on. Click add point and drag it out two units;

screenshot43

don’t forget to make sure the curve is snapped to the grid as well, we’ve done this before by just dragging the entire object in either direction.

screenshot44

Next, click Close Loop, this will gives a rough outline for a track. screenshot45Now place a point (by clicking on the loop) somewhere across from the point we created and dragged one unit. This will make the “track” look like this:

 

screenshot46Next, we need to reposition the gray tabs on this new point so they match (and so that the “track” looks like a track) the opposite point. Tweak the gray tabs so that the track is symmetrical.

screenshot47

So there is our track!

Constructing the race track, meshes

Before we start making this curve looking like a race track, let’s change the “Radius”, “Rows”, and “Columns” to make this track easier to edit. Set “Radius” to 1.1, “Rows” to 20, and “Columns” to 30.

screenshot48

There is just one thing we have to do before we can start editing the actual mesh of the curve and that is to just disable “Editing Bezier Shape”.

 

screenshot49

Now we can start manipulating the faces and vertices of our curve. Grab all of the faces on the inside loop by selecting one face and then clicking “Select Face Loop”.

screenshot50

This part of the track will be the road. Switch over to the scale tool and scale it out on the X axis. Then drag these faces down (ProGrids must be disabled!) so that it forms a ledge like this,

screenshot51

Next, scale it out on the Z axis so that we now have space in the turn for a vehicle.

screenshot52

Now, grab the top edges of the faces we just selected (by selecting one and then clicking Select Edge Loop) and scale them out on the Z axis as well so that our faces on the turn are more angular than before.

screenshot53

Also, I decided to lower these edges in order to make the steepness of the turn less prominent, feel free to do this as well if you like. Obviously, we wanted to make a race track that had a sloped turn so if you would like more slope to your turn, feel free to change the vertices to match the look your going for. The last thing I am going to do to our track is to make it more open, as it is now we have some edges hanging over the track. I am just going to select this loop and scale it back a little bit.

screenshot55

There we go, much better.

Testing out our track

The reason race tracks are sloped is so that the cars wont have to turn as much. Let’s see if our sloped track works with a controllable car. Go to Assets -> Import Package -> Vehicles,

screenshot56

we only need the car so un-check anything related to aircraft.

screenshot57

Drag the Car prefab into the scene. You may have to scale your track (not the car!) in order for the vehicle to fit. Re-position the camera and parent it to the car.

screenshot58

Hit play and start testing. If you encounter problems with the track (such as the turn not being steep enough or too steep) just go back and change the mesh. I didn’t get my track right the first round of testing. After you have tested your track out and you like how it looks and drives, congratulations because you are done!

Conclusion

Obviously this tutorial is nowhere near exhaustive. The main purpose of this tutorial was not to show you how to make a car or a race track, but to get you familiar with ProBuilder and modeling in Unity. It should be very apparent that ProBuilder is a very useful tool, with it we can make complex environments, like the race track (even though it isn’t very “complex”), and then modify the environment immediately to better the gameplay. With this fact in mind, start creating and

Keep making great games!