Zachary Soares talks on how he can use voxels in game development and in VR.
Zachary Soares talked about his work with voxels. He discussed the production process, the way you can most effectively spend your time with this technology and how you can use it in VR.
Hey! My name is Zachary Soares, I’m a 23 y/o French Canadian who’s studied in the field of Urban planning/Design. I had to mention my degree since that’s where it all started…for games, that is. I started in the summer of 2013, right before Cube World had released its Alpha build. Previously i was already looking into game development as a hobby since i found it to be fun, and had future plans to build city simulations. My first involvement in the field was the 2013 Global Game Jam, where I made some horrible pixelart for an excruciatingly hard platformer. We were all rookie devs, but it was a blast to be a part of it. I knew pixelart wasn’t much for me since i had already learned 3d art through my degree, designing buildings and city scapes…so I tried looking for that happy medium, Voxels: 3d pixelart.
I choose voxels because of it’s initial low barrier to entry. As I mentioned, I started my involvement with voxels through Cube World. I made over 500 mods since the summer of its initial release. This was a good way for me to practice my skill and adapt to a common style. I did try voxels with unity and other engines but found it to be futile since, at the time, voxels were very intensive on game engines. The only way I could develop for games was through voxel engines, which were scarce. I chose this technology because it was different and fun. Like any art form, I figured there’d be a future at some point. Minecraft having released and Cube World gaining hype, I was sure an upsurge in voxel development was gonna occur in the near future, so I capitalized on the skill. What’s great about voxels is that it produces 0 textures on assets and are actually very lightweight when using the right engine. You can produce elegant vector-like 3d assets or even pixel-like 3d objects, though the latter produces high poly counts. The range in which voxels can be used is huge and most of its usability is still unexplored. The extent to which traditional 3d engines use voxels is via particle systems, which sadly can’t be used too heavily yet.
In actuality Voxel art takes less time to produce, with the obvious factor depending on the size/scale of the assets. Depending on the creators approach to creating, a simple table can take from 5 minutes to 2 hours to make (content ready) whereas 3d models generally require more time since they require steps like UV mapping and texturing. Vector colored Low poly assets do take less time generally but, as mentioned a moment ago, this is all relative to scale. For me, nowadays, it takes roughly 1-2 hours to design a full new character model with a unique style, and once Ive established teh style it takes less time to make subsequent assets because I use the initial model as a base.
Many things are different but much of it is the same as well. A scene can be setup in the tools I use, either in Qubicle or through Maya. If I plan on designing everything to a grid I can setup entire game scenes and assets in Qubicle. I keep all assets separate in matrices that way I can avoid editing massive segments. Splitting up the assets also makes it easier to create optimized assets. Once the assets are complete I can send them directly to Unity or Unreal (or whichever random engine the developer uses) for implementation and usability. If the assets require animation I pass them through Maya16, setup a rig and then export the rig with animation, no different from traditional 3d modeling. The only major difference is whether or not I plan on doing skin rigs or non-skinned rigs. With voxels you can do rigid body rigging between an object and the joint as to avoid complicating your work, and with enough of this you can make interesting/slick animations. This is how most voxel games are animated, like Trove. The skinning (with weight painting) can be applied but it generally isn’t necessary if you have enough joints for animating.
Lighting systems are no different from traditional 3D if you use a basic engine but if you plan on using voxel engines you often need to program your own lighting system, either as regular light systems or make those which base themselves off a grid…it’s odd to explain….requires openGL experience and so on.
All my stuff is created in a tool called Qubicle by Minddesk.com. I generally create all my assets there and then transfer them to Maya16 for animating. I also use MagicaVoxel Viewer for rendering my scenes if I want to make nice poster content or portfolio images. Magica has little use to me on an editing side of things.
Voxels and VR
Voxels do indeed work for VR though there’re 2 avenues to that. Either you build your own voxel engine with a raytracing system so you can make flat shaded voxel scenes or just have high poly voxel assets run smoothly. Or you can do what I do normally, use a traditional voxel engine but limit your voxel designs to minimal bends. With every bend in an asset, you risk increasing the poly count exponentially. Remember, every voxel face is = to 2 polygons. This limitation applies not only to VR but to all games you create with voxels. You can do high poly, curved assets but you’ll need a hell of an optimization method or a voxel engine. Many voxel devs at the moment use their own custom engine. I hope at one point one of them happily provides their engine to the public because right now people are heavily limited to hardware specs, something voxels use a lot of.
Thr animation process is rather simple and straightforward, I’d say. You export from Qubicle the assets you’d like animated. Often exported as an fbx asset, then dragged into Maya. Once that’s brought in I go ahead and setup teh skeleton rig on teh asset. The sad part is, all voxel animations require custom rigs. I don’t recommend using provided rigs since those are generally designed to work with traditional 3d models. You locate the bones to the points of origin on each asset then do rigid body rigging on each joint/object. Once you’ve linked it you’re then ready to animate.
Every Tool used is different. Often most voxel engines have their own tools so i’m left with learning how to animate with almost each game i make. If you plan on doing framed based animations, akin to pixelart then all that’s required is to export separate matrices of assets and doing a mesh swap per frame, like pixelart but 3d.
Put simply, voxels are volumetric pixels so they hold the same exact property as pixels, in the way that 1 pixel holds 1 color. In this case, 1 voxel holds 1 color, so games which texture 1 cube wouldn’t exactly be considered voxel art (minecraft) since the voxel loses its use once you apply a texture. To do so you need to turn that cube into a polygon and boom, no longer a voxel. Anyways, back to the point. A voxel holds 1 color so when designing assets or scens you need to take into account that all edges/corners will be the 1 color you apply. So converting a pixelart piece to voxels isn’t so direct, especially when taking perspective into account.
I’ve made tutorials on youtube outlining how to convert pixel assets to voxels, it’s pretty handy since most people will start doing voxel art in that exact way, from pixels.
Zachary Soares, Artist