Rawbot : sky Factory breakdown

The “final product” in motion

All of this have been made in around one month and a half, week-ends and some nights included… I had to deal with some extra problems not related to this work, very stressful ones, who grabbed me around a week in total. And I had also to update myself on technical stuff because the last 4 years, I worked mainly on mobile games.

Because I’m a “project driven” kind of person, I wanted to have something as cool as possible, but I always focuses myself on the big picture; the finished product.

The project:
Based on a personal board game project, the sky factory is one of the environment from the board game translated in real-time 3D with unreal engine 4 for my graduation work. In this time span, I also created the character and his animations.
My graduation was focused on art, so there is no code nor gameplay work on this post…
Since I’m not a programmer and because I had no time to learn blueprint, I decided to make a kind of basic TPS to show off the character and the environment as best as possible.

The pipeline:
A month is really short for this kind of project, so I had to work as quickly as possible.
I wanted something cartoonish for the shapes and “realistic” for the textures, so I decided to use UE4 that just became free, because I had some experiences with UE3 and UDK (shaders and asset management) and I was confident about how fast I will implement all the basic features I wanted.
I had some fears about the character animations because I’m not a “super skilled” animator, so after some researches about that, I decided to work with 3ds max CAT.
For the rest I worked with 3dsmax, Photoshop, and 3DCoat.

If I had more time, I would have learn krita and blender as well.

The choosen one between a small  selection of concepts.

The choosen one between a small selection of my concepts.

The character:
Based on some sketches and concepts I did earlier, I started to work on the character to get rid of the shadowy animation process.
I started to block out the character and I tried to add many details in the modeling.
For 2 main reasons:

  1. Normal map; if I needed some normal map, it will be easy to bake them directly from the model turbo smoothed. Indeed, I tried to work with the polygroup features as much as possible because when you turbosmooth your mesh, you can turn on a polygroup option which constraint the turbosmooth and respect the overall shape of the mesh. Be warned that this is not the best way to make an hard surface modeling! But somethimes it saves lives.
  2. 3d printing; since the project is linked to a boardgame, it was a good opportunity to 3d print the character and a low poly won’t be as nice as a detailed model. (another article about that may come later)

Of course It turned out that I had too much details on the final model, so I had to decrease the polycount before “shipping”.

For the animation process, I followed this tutorial which was made with UDK, but it still work for UE4.

The exporting process itself is different. I found other bits of information about exporting a character animation and rig, over here.

When the character was ready and exported, there is some more work to make it walk “TPS style” in UE4. I used an already outdated tutorial, but this one should give all the infos as well.

When this scary phase was ok, I should have started to work on the character texturing, but I felt confident enough to skip this work to the end of the project

envirs selection

A selection of my environnements concepts

The environment:
The same way I had some for the character, I had some environment sketches and concepts but nothing too precise about the level design, so I started to block out the level, trying to focus on shapes and feel.

Shapes: I wanted contrasts. Big huge shapes and small ones next to each other.
Feel: I wanted something bigger than life, and a “you are a cat” feel.

For the bigger than life feel, I tried to work on verticality, like skyscrapers. The background will help me a lot as well for that: it will be easy to fill the background with big complexes shapes without showing all the details. For the “cat” feel, I tried to put holes and bridges to explore the level.

The initial block out... at the end cutted by 2!

The initial block out… at the end cutted by 2!

At this point, I knew I might cut features or details I originally wanted. And at the end I was right; almost half of the cool stuff I had in mind was impossible to implement in time. But with that in mind I was able to choose on what to work, to have at least the basics right.
To save production time, I also played with a composition technique called “white space”, or “empty spaces” a lot. In short: you can fill a picture with “something”, but also with “nothing”. The art of this technique is to use emptiness wisely!

All the pieces from the main part of the level together

All the pieces from the main part of the level together.

Environment modeling:
As usual, the environment is a mix of puzzle pieces and unique meshes. Here is a breakdown of all the pieces:

puzzle breakdown

When I was happy with it, I started to texture all the pieces.

All the level textures.

All the level textures.

Environment Texturing:
A few years ago I saw the crazy work of Tor Frick on polycount about using only “one texture” to make a whole level. This inspired me a lot along all the years and I tried some stuff to get it right, but I never had the chance to use this technique for a whole level like he did. This project was finaly the perfect opportunity to try it!
The basic idea is to use the uv’s of the models to share some parts of the texture around the level. With a good shader work, it will be possible to change the colors of the diffuse, and make some variations on the metalness.
But that might be not enough, so in top of that, using the vertex color for a shader blending should add more variations on the textures.

shader wips

Shader WIP.

If you want a more in depth explanation of those techniques, I encourage you to buy the Tor Frick DVD from eat 3D. Most of it is easily adaptable on 3dsmax, Maya, UE4 or Unity.


Environment lighting:
I wanted something bright and colorful, so I simply used 2 directional lights; One for the static meshes and one for the character. Nothing crazy-hard to implement at all and because of the Reflection Capture Actors, even the animated meshes will have indirect lighting from the metalness of the PBR shaders.

A cloud.

A cloud.

Environment FX:
Here and there, mainly on the shadows or where they may create some contrast, I put some simple meshes with a foggy shader. Because they might be cut by other geometry, the shader has to have a smooth trasition between two geometry (depth fade node).

Some clouds in the level editor

Some clouds in the level editor


The character Textures.

The character Textures.

The character texturing:
So, after some tweaks on the geometry, I did the UV unwarping. I wanted the character to be not that symmetrical so I fully unwarp it on the UV.
I wanted some quick normal map, so making scatches on Zbrush will take too much time for the baking process. Instead I used 3DCoat to paint the normal map, the diffuse and scratches all in the same time.

The 3dcoat texture before some tweaks.

The 3dcoat texture and normal map before some tweaks.

Post FX:
I did not tweak the post FX that much, I just added a shadow frame on top of everything to increase the contrast of what might be seen when you play the level.

And that’s it!

If I had more time, I will have fix some stuff here and there, like some collision meshes or lighting resolution.

But If I had even more time, I will have add more details:
-More animations for the character to make him jump in a funny way.
-Cartoonish FX on the character movements.
-Decals that tells a story.
-More environment FX to bring life to the level
-Some more assets to populate the floor that is lacking of volumes.
-More cables everywhere.
-Some robotic birds flying around.

I hope you enjoyed your read, feel free to ask questions and add a comment (even for my misspelling :).
I’m in the process of rebuilding my portfolio, but you can always find me on linked in, Facebook, or Twitter!

See you soon!

Olivier Bogarts