Voxel art in Blender 2.79 - mhulse/3d-wiki GitHub Wiki
Here’s how I did it …
Before starting, there’s some setup work to be done …
Make sure these settings are enabled:
- Snap during transform
- Snap to: Increment
- 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.
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” to0.0625
and “Subdivisions” to1
:
-
0.5
/8
=0.0625
; note that blender rounds this number down to0.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.
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”).
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).
For this tutorial, I’m going to create a really basic voxel-like character.
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.
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.
Using extrude (E), build a simple character mesh:
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”.
- 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