Skip to main content

Thing Model Tutorial

This tutorial will demonstrate how to rig a 3D model using Blender so it is ready to be used for a Thing-max in Unity.

note

A Thing-max requires its 3D model to be skinned correctly, sitting on the ground, and have a specific bone joint hierarchy.

Read the 3D Model Requirements page for more information.

Download Blender

This tutorial uses Blender 4.0 which can be downloaded here: https://www.blender.org/download/releases/4-0/

Download the Model

You can use a 3D model of your choice. This tutorial will use a traffic cone downloaded from Turbo Squid which is a great site for free 3D models.

Turbo Squid

caution

Make sure the 3D model is able to imported into Blender. This is usually FBX, OBJ, or BLEND file types.

Import the Model

Open Blender and click the File top dropdown menu. If your 3D model is a BLEND file type then select the Open option. If not, then select the Import option and select the appropriate file type. Find the 3D model file and click the blue button to open or import the file.

Import Model

Position Model on World Origin

A Thing-max requires the 3D model to be sitting on the ground so it needs to be positioned just above the world origin.

Move Cursor to World Origin

Right click in the scene and select Snap > Cursor to World Origin.

World Origin

Enable Move Mode

Click the Move button at the top left to enable movement on the model.

Enable Move

Move Model on World Origin

Use the arrows to position the model on top of the world origin.

Move Model

Apply Transforms

The current position of the 3D model needs to be baked so all the objects in the model keep this default position.

From the top menu dropdown, select the Object > Apply > All Transforms option.

Apply Transforms

note

The movement arrows should move to the world origin after applying the transforms.

Add Armature

A Thing-max requires the 3D model to have a specific bone joint hierarchy so adding an armature is the first step. Then it will require three transforms: Root, Cog, and Bind.

Select the top menu dropdown Add > Armature. This will create an armature object in the scene with 1 bone.

Add Armature

Display Armature in Front

The armature object may be hidden within the object. Select the Armature object in the Outliner window. In the Properties window, open the side menu category Object and enable the In Front property within the Viewport Display section.

In Front

Configure the Root Transform

The Root transform represents the object's pivot where it touches the ground. This should always be the world origin.

Switch to Edit Mode

Using the top left dropdown menu, switch from Object mode to Edit mode.

Edit Mode

Rename the Root Transform

Since the 3D model is now centered at the world origin, simply rename both the parent and child Armature objects to Root in the Outliner window.

Rename Root

Configure the Cog Transform

The Cog transform is an acronym that stands for "center of gravity". This will be the rotation center of the object and varies on the object's shape. Blender has a convenient process to snap to the exact mathematical center of mass.

Rename the Cog Transform

Rename the Bone object to Cog and move it to the center of the object.

Rename Cog

Set Origin to Center of Mass

Switch from Edit mode to Object mode using the top left dropdown menu. Select the 3D model and select the top menu dropdown Object > Set Origin > Origin to Center of Mass (Surface) option.

Center Mass

Set Cursor to Origin

Select the top menu dropdown Object > Snap > Cursor to Selected. The cursor will move to the center of mass.

Snap Cursor

Reset the Origin

Select the top menu dropdown Object > Apply > All Transforms. This will reset the 3D model's origin back to the world origin.

Reset Origin

Move Cog to Cursor

Return to Edit mode. In the Outliner window, select the Cog object. Then select from the top dropdown menu Armature > Snap > Selection to Cursor.

Snap Selection

Fix Cog Transform

It's required that the Cog points straight up. Select the Cog object in the Outliner window and open the Transform properties at the top right of the viewport.

Make sure of the following:

  • The Roll property is 0.
  • The Tail X and Y property match the Head X and Y property.
  • The Tail Z property is greater than the Head Z property.

Cog Transform

Configure the Bind Transform

The Bind transform is a child of the Cog transform and is placed in the same position as its parent. Bind is the bone that attaches all of the object's vertex weights to during skinning.

note

The Bind transform has no animation at runtime which allows the Thing-max to be controlled even if it's influenced by an animation.

Duplicate the Cog

In the Outliner window, select the Cog object. Then select the top menu dropdown Armature > Duplicate.

Duplicate Cog

Rename the Bind Transform

In the Outliner window, rename the duplicate Cog object to Bind. Make sure the Bind and Cog object's have the same head and tail transform properties.

Rename Bind

Parent the Bind to the Cog

The Bind transform needs to be parented to the Cog transform. Start by selecting the Bind object in the Outliner window. Then hold the Ctrl key and select the Cog object. The select the top menu dropdown Armature > Parent > Make. Select the Keep Offset option.

Parent Bind

Confirm the Bone Hierarchy

The bone hierarchy in the Outliner window should look like so:

Bone Hierarchy

Skin the Mesh to the Bind

The last step is to skin the mesh to the Bind transform.

Disable Deform for the Cog

The Cog transform needs to avoid having vertex weights when the mesh is skinned. Switch to Object mode. In the Outliner window, select the Cog object. In the Properties window, open the side menu category Bone and deactivate the Deform option.

Disable Deform

note

The Deform option should be activated for the Bind transform. This is the only bone in the armature that will have vertex weights.

Skin the Mesh to the Armature

In the Outliner window, select the 3D model object. Then hold Ctrl key and select the main parent Root object. Select from the top menu dropdown Object > Parent > Armature Deform > with Automatic Weights.

Skin Mesh

Confirm the Skinning

The 3D model object should now be a parent of the Root armature object. Switch to Pose mode using the top left dropdown. The 3D model should move, rotate, and scale according to any transforms done to the bone transforms.

Confirm Skinning

Export the Model

The 3D model is ready to exported from Blender as an FBX file.

Export as a FBX

In the Outliner window, select the main parent Root object. Then select the top menu dropdown File > Export > FBX (.fbx).

Export FBX

Configure Operator Presets

There are several compatibility options when exporting an FBX file under the Operator Presets section.

Here are the recommended settings to use:

Operator Presets

note

The Geometry category properties are the default values.

Click the Export Button

Choose a folder path where you can easily find the exported file. Give the file a name at the bottom and click the blue Export FBX button to the right of it.

Export Button

Import into Unity

In Unity, right click in the Project window and select the Import New Asset... option. Find and select the exported FBX file.

Enable Bake Axis Conversion

Then select the imported asset and open the Inspector window. In the Model section, enable the Bake Axis Conversion property. Then click the Apply button at the bottom. This will remove arbitrary rotations from the model.

Import Unity

Confirm the Hierarchy

Drag the imported asset into the Hierarchy window. Expand the parent nodes to see if it contains the three bone joints: Root, Cog, and Bind.

Confirm Hierarchy

Conclusion

The Thing model is now complete!

Check out the Thing-max tutorial for more information on how to turn this Thing model into a Thing-max.