Shade 3D for Unity!
A free Blender alternative for FBX & Y-Up users!


Update: 5th Feb 2014 added a Shade3D tutorial: 3D Modeling, Bone, Skin and Animating.

Game assets are a very important part of any game development!
The easier you can make it the better right?
Well, that means good modeling features and a scriptable pipeline/workflow!
Shade 3D for Unity, has these and does the basics very well and for free!

Why is FBX important?
FBX has been a GameDev industry standard since Maya/AutoDesk bought it and developed it further.
The format includes everything! simple (relatively) and the SDK is free.
Unfortunately for Blender users, the FBX exporter isn’t 100% and some game engines (like gameplay3D) have tight coupling to FBX.

racer.jpg
Above is a screen shot of the racer demo from gameplay3D, it’s has 631 objects (117K polygons!).
Click the image to see it larger.

My background is in software development, I’m not a modeler and the last thing I am is an artist!
So my use is more for programmer art and blocking out.
But I still need the features artist need plus technical scripting.

I started with Fragmotion, it simple interface and ease of use appealed to me to use.
It’s scriptable and is a complete suite (modeling/texturing/animation), so I bought it!
But the FBX support is old and only supports single objects!!
Also it’s modeling features are very out of date and limited.

After looking at 10’s of modelers, I came to the realisation that Blender is a huge necessary evil!
I got okay at Blender, learnt some of the keys and started to like it.
I found rigging and animation overly complicated!
Blender’s unreliable FBX exporter and it’s lack of simple Y support is why I switched to Shade 3D for Unity!

So I’ve been using Shade 3D for Unity for a week now, below are my current understanding of the application.
It’s free for commercial use and not mandatory to be used with Unity 3D.

It’s a ‘near’ full suite, including:
* 3D modeling
* Skinning
* Rigging
* Animation
* Room editor (unexpected, but useful for level design)
* 3D Text (again unexpected, but useful for logo design)

Not include is:
* UV mapping, but you can import textured objects and you can use material groups (colours/images etc)
* Rendering, but there’s a quick renderer for previews.
* Documentation and other stuff download (I’m guessing free models/images/tutorials??)
* limited import/export formats - FBX in/out supported
* No FBX export support for camera & lights
* No FBX exporting of vertex normals :(
The $99 basic version has most of these, look here to compare, but this list is not 100% correct and I recommend getting the license for basic, standard or pro and downloading a demo.

It has 3 modes for modeling:
1. Primitives (basic objects, Can be converted to Surface/Mesh)
2. Surface (Patch/Sculpt modeling, Can be converted to Mesh)
3. Mesh (vertex/line(edge)/face mode)

The user interface is mostly mouse driven with a all-in-one widget on selected item.
Right click for most commands or clicking on the toolbox/toolbar/panels.

So here are my results, in order of importance to me:

Good

* Excellent FBX support.
It’s very well implemented! I’m guessing it’s using the official Autodesk SDK version 2012 or newer.
This means, you can reliably interchange with Mayer, 3DS Max, unity3D, etc, etc, etc.

* Y-up!
Blender’s Z-up doesn’t work for non static (movable/animated) objects in gameplaye3D, it doesn’t automatically convert it to Y-up.

Performance
I use Linux as my main OS and I run this in a 8gig winXP VirtualBox giving it 1G of RAM and 2 CPU cores.
It runs well on a 4g i5 Dell (no 3D card), with a few stutters on high poly meshes, so it’s very light!
I tried it on wine, it runs but I couldn’t select vertexes :(

* Keyboard shortcuts
Shade3D allows for customisation of all keys, multiplied by Shit/CTRL/Alt combinations, that’s a lot of shortcuts!
But has not the mouse customisation.

* Python Scripting
Again, very flexible with scene and user interface control.
I use this to run an FBX export and run a windows batch file, then I map it a keyboard shortcut!
export.py:

import os
xshade.message_view().clear_message() #clears message 
xshade.scene().save_FBX("FullPathAndFilename.fbx")
os.system("cd PATH")
os.system("run.bat")

* Low learning curve and easy of use!
Unlike Blender, Shade3D only has a few small panels to be familiar with.
Simple, intuitive and still powerful!

* Modeling features
The modeling tools seem basic at first, but powerful once using it.
It’s not overly complex like Blender but not limited like Fragmotion.
Most useful for me are:
Multiple extruding/beveling type (face,lines,vertex <- the last two are impressive).
Multiple selection, Loop for lines, belt for face.

* Detachable panels
Great for multiple monitors, especially for animation!

* Hierarchy node system
ie: Table top is the parent (or root node), table legs are the children (nodes under parent).
If we translate/rotate/scale the table, this also effects the children automatically.
Most modeling packages work this way now.

* External Instancing
This feature is really pro!
You can keep your models in separate files, say a cars, buildings, roads objects.
Then in your main scene/level file you can include them via external reference feature.
This allows you to use your modeler as a level design tool!
When you update your model files (cars, buildings etc), click the update button and all your instances are update!

Not so good

* Lack of tutorials
Shade3D for unity comes with basic application help files which tell you the basics of each panel and what the buttons do etc.
But comes with tutorial or guide!
I found that the Shade 10 documentation includes very detailed tutorials!
Which is very simular to the current version 14.

There are a few on youtube and twitter (#shade3d) but for the best video tutorials, they are found by goggle’ing ‘Shade 3D Live seminar’.
Also www.larry-bolch.com/shade/tutorials.htm is good.

* Default Keyboard shortcuts could be better
Looking at the default layout some keys make sense like S: Snap mode, O: object mode.
Others, not so much, I guess they think the more important ones need to make sense.
But what they think is important and what I think is important are different.
ie: L is Mesh->select->Belt why not use B? why use B for Active view->toggle bounding box?
I never change from bounding box.
Anyway, it forces you to customise if you need the keyboard.

* No translate to world center tool
Because it’s a hierarchal node system, everything is in offsets.
But this isn’t a big deal because a simple script can be created and mapped to a key:

xshade.scene().active_shape().center_position=0,0,0

Update: 17th Nov. 2013
ajf412 asked if there’s “ a way to center the manipulator to object and drop it to the bottom of the object’s lowest Y point.
Yes! To explain the scripting a bit:
xshade.scene(): returns the scene
.active_shape(): returns the current selected object (called shape) from the scene
.center_position: sets (or gets)the center point of the current shape.

To lift it up from zero we use the Y value of the bounding box size of the object divided by 2.
The shape object has a parameter called bounding_box_size, which gets (or sets) a float3, which is an array of 3 floats (X=[0], Y=[1], Z=[2] values).

So to center an object but have the bottom at zero, the script is:

xshade.scene().active_shape().center_position=0, xshade.scene().active_shape().bounding_box_size[1]/2 , 0

To also move the manipulator as well add this line:

xshade.scene().pivot_position=0, 0, 0

To find out more, on the script window there is a Reference button which has a well documented help section called “Shade Python Script Reference“. There is a lot that Shade 3D can do in scripting.

* No Custom attributes (Or at least I couldn’t find any)
Not a big deal, Custom attributes are variables created in the editor and passed to the game engine.
IE: Each zombie model has: startHealth=100, HitDamage=10 etc.
Unity3D can read these via FBX using the AssetPostprocessor class, OnPostprocessGameObjectWithUserProperties method for capturing the data sets.

This can be ‘faked’ by using an empty object under each zombie model ie: name: VAR_startHealth X=100, VAR_HitDamage X=10 etc.


Summary

In summary, for me, the not so good are petty issues that can be overcome easily.
The lack of easy tutorials makes you actually follow the manual and because it’s not complicated, I found I got up to speed quickly.

Shade 3D for unity isn’t a complete suite (that starts at $99).
But for free, it is a flexible, feature rich 3D modeler with a great workflow (reliable FBX & scripting support)!

I’ll add to this as I go.

Comments now disabled.
For comments or questions, please post on twitter @mgarcia.