Voxel art in Blender 2.79 - mhulse/3d-wiki GitHub Wiki

Here’s how I did it …

Grid settings

Before starting, there’s some setup work to be done …

Grid snapping

Make sure these settings are enabled:

  1. Snap during transform
  2. Snap to: Increment
  3. Disable absolute grid alignment (you may need to toggle this setting depending on situation) … I have found that you want to use absolute grid alignment when alighting a single line of verts/edges/faces and disable it when moving objects.

IMPORTANT: Make sure the center point of 3D object is precisely on grid. I have found that it works best to always set object’s origin points to the 0,0,0 coordinate and only move/scale/rotate objects in edit mode only:

NOTE: You may need to force-fit an object to the grid; I have found that a good trick is to go into object mode, select your object, set it’s origin point to be on a corner point of the grid from where you want the scale origin, and then open the properties panel (T key), and in the dimensions input, do the math to scale the object to fit the grid. For example, grid unit size of 0.03125, then multiple * 8, becomes 0.25; now the object is 8 grid units high:

When done scaling, reset your object’s origin point back to 0,0,0.

Grid size

In Blender, as a default, I set my grid “scale” to 0.5 unit, and my default cube to 0.5 radius, as this matches Unity’s unit/default scale/unit/cube size.

For voxel/pixel-like art in Blender, I want to create a grid that has 16 grid units per 0.5 cube size.

Create a 0.5 unit cube; select a 3D object, hit TAB to enter edit mode, and:

  • Click the N key; this will toggle the “Show Properties region” menu
  • Scroll down to the “Display” section and change “Lines” to 256, “Scale” to 0.0625 and “Subdivisions” to 1:
    • 0.5 / 8 = 0.0625; note that blender rounds this number down to 0.062
  • Scroll down to “Edge Info” and check “Length”

Now, when you create a 0.5 radius cube, the grid units will be 1/16 increments, thus cubic snapping will be easy in perspective and orthographic views.

Note in the above image, there are 16 grid units per square cube dimension.

Unity player reference object

In Unity, the default character controller size is 1w x 1.8h x 1d (Unity units). This is important to know, as you can keep the character size near this number and not have to worry about scaling up or down when making a game in Unity.

In Blender, create a new cube at 0.5 radius (after creating the object, you can press T to show properties for the object you just created; edit the “Radius” value to be 0.5).

Next, go into edit mode and extrude the top face:

  • In face select mode, select the top face and press the E key
  • Press the numeric 1 key; this will extrude the face by 1 unit
  • Return back to object mode
  • Move reference object off to side

You should end up with a 2-unit tall reference object that looks like:

Note: Scene shader is set to “Wireframe” (click Z key and choose “Wireframe”).

Voxel template object

Create a new cube mesh object; upon it’s creation, set the size to 0.03125. This will create a cube that is 0.0625 square:

Move this object off to the side for use later (see below).

Voxel-like character

For this tutorial, I’m going to create a really basic voxel-like character.

Voxel starting point

Select the voxel template object and CMD + C to copy and paste in place.

In object mode, move your 1/16 voxel template object to a good starting location; in this case, I’m starting with the feet.

Mirroring

This is optional, but could save you time depending on complexity of character.

Once you have moved your object to a desired location, use CTRL + A and reset the object’s location.

Next, apply the “Mirror” modifier and set it to mirror along the Y axis.

Basic character structure

Using extrude (E), build a simple character mesh:

Apply mirror and cleanup

Once you’re happy with the basic end result, apply the mirror modifiers:

Select all of the character’s body parts and use CTRL + J to make them one object:

Go into edit mode and clean up any interior faces: Select face and use X key to delete “face”.

TODO

  • Add frills to mesh to make more unique
  • Texture map
  • Add rigging (use IK)
  • Animations/poses
  • Export FBX to Unity
  • Setup simple platform game using character
  • Bonus! Pixel art tiles

Links

⚠️ **GitHub.com Fallback** ⚠️