Hello there! My name is Phil (aka Phil_XG) and I’m a 30-something year old Artist, Developer, and Sketchfab Master from the UK.
Despite coming from a Software Engineering background, I’ve always had an artistic side, and at some point in my life these two passions managed to happily collide into the sort of work I find myself doing today.
Most recently this saw me apply my love of all things voxel to Sketchfab’s #3December challenge producing 21 days of festive themed models – and funnily enough – that’s what we’re here to talk about!
Before we dive into a few things, here’s the full collection in all its glory:
This is the first time I’ve taken part in a something-a-day style challenge, but I was very aware that I would need to stay on top of the workload or risk not finishing. Given the time of year, and concerned about falling behind, I decided that I needed to set myself a few ground rules to spare my sanity. Such as:
- Stick to Voxels – It’s what I do at the moment. Voxels make it quick to get an idea going and I have a good established process for going from editor to Sketchfab. No time for re-inventing the wheel!
- Use Sketchfab Features – It seems obvious, but there’s always the temptation to go for the slightly better baked options for some things. To save on time I was going to keep that to an absolute minimum. With the range of great lighting options, post process effects, and new Shadow Catcher feature to take advantage of, I could save myself a ton of time relying on real time Sketchfab goodies!
- Done in a Day – Although the deadline for final completion was more than the 21 models needed, I felt that if I let myself have more time, I’d use it! Artists are horrible perfectionists, so I had to make myself declare things done each day. The only exceptions would be editor tweaks – background colours, lighting balance, etc. – those minor things that always look different the morning after a long night of work.
- Try to Push! – This might seem at odds with sticking to a style I know, but there’s not much point doing something like this if you’re just trying to get it done. Even when sticking to voxels I wanted to try a few things outside of my comfort zone. For this sort of challenge it would mainly be with the ideas I choose to tackle. I swore that if I got to the end with 21 robots I’d have failed!
For the most part I managed to stick to my rules – with only one model receiving any real changes after it was ‘done’. I was pretty pleased with that!
There were a few times I did fall behind on an idea, but I managed to catch back up again, and even finished two models in one day! What madness is this?? Who are you? What have you done with Phil?!
Since this article covers a collection of work rather than a specific piece, it’s hard to talk about the specifics of my ideas without devolving into a boring essay.
When it came to deciding what to make, I just went with the first idea that came into my head for the topic each day. To go with the first thing that pops into your head sounds like madness – but I’ve been working with voxels for a while now – so I have a good idea of what I can and can’t do well with them. Ideas like the Igloo or Snow Fox were ‘obvious’ choices to me and they came out great.
But things didn’t go like that every day – some of my ideas took far too long to get right – and a few of them didn’t quite end up as I’d imagined them. This was mostly when tackling something I hadn’t done before or when I stupidly let an idea get too big. Big ideas are bad with this kind of challenge.
Although each model is different, my general workflow with voxels was the same throughout. Here’s a brief overview:
For each of my models life begins in MagicaVoxel. With my style of voxel work I like to use a lot of non-square / out of grid posing, which is a big consideration at this early stage. I don’t always have the exact final pose in mind, but I do need to think about where I intend to rotate joints or break apart objects to be posed later. One way to look at this is to imagine you’re making a giant model kit! Now where did I leave my superglue…
As part of my planning here I also create mask versions of my model for any effects I have planned, such as emission or transparency. It only takes a couple of clicks with the color replacement tool, and doing it now can save some headaches later on.
Once I’m happy with my ‘kit’ I export my model from MagicaVoxel and get it ready for posing. Things get a little tricky here as I want to maintain all my lovely voxel coloring but reduce the size of the mesh to something more optimal. I also need a version of my model with unique UV’s if I want to use baked effects like Ambient Occlusion. Without going into too much detail, this requires exporting several versions of the ‘kit’ from MagicaVoxel, then doing a little texture baking. Personally I do this with a combination of 3DCoat and MeshLab.
If you want more details on this part, I’ve previously written a Voxel Workflow tutorial that dives into everything. Make sure to check that out if you’re curious – it sounds more difficult than it is, but the end results are definitely worth the effort.
3. Posing / Extras
Once my model is exported and ready, I do something strange… I take it into Unity. While this doesn’t seem like an obvious place to pose a simple non-animated model, I have a lot of familiarity with Unity and like to use the object hierarchy to create a simple rig to my ‘kit’ models. The way Unity handles local position / rotation makes this super fast and it just uses simple parenting. If you’ve ever tried to pose a character without any rigging at all, you’ll know the benefit of this step.
Being in Unity also offers me the advantage of using some programming features to speed some tasks up – in this collection that included placing objects randomly with scripts, creating effects using particle emitters, and even using the physics engine to drop objects into place. Powerful stuff if you know what you’re doing!
The only downside to doing this in Unity is the need to split my mesh up into the individual ‘kit’ parts before bringing it in. This can be a bit tedious if there are a lot of small pieces, but it works well for my process, so it’s a small price to pay.
4. Ambient Occlusion
Once I have my final pose worked out, I export my model from Unity into 3DCoat to bake some Ambient Occlusion.
But I know what you’re thinking – why not use Sketchfabs post process effects to give my models AO? The problem with realtime effects is you either use them to create a very soft effect or very defined effect. Getting a happy medium can be quite the challenge!
So my solution to this problem is to actually use both – baked and realtime. Soft baked AO from 3DCoat added to the base texture to give good volume and shape. Then a small radius realtime AO pass to give deeper shadowing.
Once I have my final posed model and finished textures, I zip everything up and fire off my upload to Sketchfab for the finishing touches.
As mentioned in my plan, I decided to make the most of the Sketchfab editor features to speed things along, and I used a near identical setup for each scene. After spending a little time getting the setup right on the first model, I used the same settings as a base across all my collection and adjusted things from there.
The basic setup I used was:
- HDR Environment lighting for my ambient lighting.
- Single directional light as my Main Light.
- Shadow Catcher from Main Light source – no need to bake a ground plane 21 times!
- Flat color background – these work really well with stylised models like voxels.
- SSAO and Color Balance post processes – to help make things pop.
- Bloom post process – when glowing materials need to stand out. Doesn’t work well on bright scenes!
Most of my collection uses this exact setup, which not only saved me a bunch of time tweaking, but also gave a nice consistency to my models across the set.
A Few Favourites
As with any body of work I’m sure everyone has their own favourites, but for me these are a few of the pieces that I was the most happy with for various reasons:
My first pick was inspired by the treasure goblins from Diablo – I really liked the idea of making a slightly sinister helper that hands out something nice for the holidays. This lead me to create my very own Candy Elf.
One of the reasons I love this model is because it gave me an opportunity to try out a few new techniques. The first of these was using more fixed joints in my robots to save time on posing. Although this requires a bit more planning in your design stage, using fixed positions for the hands, wrists and knees lead me to create a really fun and exaggerated marching pose.
Secondly I wanted to try the use of programming features in Unity to assist with modelling randomness. So with that in mind, I spawned and physics dropped all of the candy for the Elf’s bag! It was a HUGE time saver compared to how I would usually go about manually placing ‘random’ things, and gave me the great added touch of candy spilling out onto the ground. I ran my script a few times and exported the best of the bunch.
Since both of my new ideas worked well, I was super happy with the end result – and I would probably say this is my favourite model in the collection.
Like the rest of the world, whenever someone mentions “reindeer” my mind automatically jumps to Rudolph – it can’t be helped. While I was tempted to try and model a real voxel Reindeer, I got fixated on the idea of a mechanical glowing red nose and I knew what I had to do!
For me the best part of this model is the pose, which can often be a challenge with voxels. Making square forms work well in non-square poses can be tricky, but I saw a chance to try posing this model without physical connections and had to try it out. If anyone is wondering how they all stay in sync when flying… well it’s magnets… or bluetooth… or wi-fi… or some other Santa magic!
My last pick is my sweater model. I wanted the end result to be something simple, cheesy, and full of Christmas – and I think that’s what I got. Even the cheap foam antlers came out great.
This was probably one the fastest pieces I made for the collection, but was also super enjoyable to make – I even found myself humming random Christmas songs while working. It was only when I came to the end that I realised the sweater design was super close to something my brother was wearing last year. Oops, I guess there’s no accounting for cheesy taste!
While this type of challenge isn’t for everyone, I had a great time taking part in my first #3December. I made a bunch of cool models, learned a few new tricks, and got to see tons of inspiring work by the other participants. It was an Xmas miracle! Ho ho ho!