Mech Tunnel Concept

For over a year I have been struggling with the art direction for the mechanical tunnels of  Crystal Flux.

first concept for mech levels

In early concept I didn't know the robots and their entire city would be made up of cubes that can break apart and rebuild into something different. Making a tunnel that fits with the theme would be challenging. All the tunnels up until the mech theme would be very organic but in this case they needed to seem like an advanced alien civilization hidden deep underground on Earth.

fractal robots can be shot apart but never destroyed

Snowboarding over a cubed landscape similar to Minecraft would look odd so I thought the tunnel could be a transparent tube with a backdrop of cubes.

cubes surrounding transparent tunnel

The biggest problem with this is that it was CPU intensive if I wanted any of the cubes to move; and they are supposed to be robots after all. I basically shelved the idea and made a few bad concepts until someone asked how to do a wave of cubes in Unreal Engine 4.

Visit my tutorial on Wave Cubes to see the basic concept.

It quickly got me thinking that the cubes could "move" though a material shader which could be done on the GPU thousands of times quite easily. With this technique the cubes wouldn't actually move they would just appear to change positions. They can't have collision but this is fine since its supposed to be scenery anyway.

Instead of a flat plane of cubes I would spawn them in 3 directions. (The way I'm doing this for a concept is very slow and will have to be moved to C++ for the game)

a 41x41x121 grid of cubes

Since we aren't dealing with an vector offset to a plane array of cubes, the "World Position Offset" input can be left blank. The Masked material option needs to be checked so we can input our 3d noise into the "Opacity Mask" of the material. I left the threshold at its 0.33 default and adjusted the mask with a 0.2 value. The noise is outputting black and white at 3d locations in space so if it drops below 0.33 the cube will be invisible! Neat!

Opacity Mask replaces World Position offset

After playing with the values all day I finally arrived at the look I'm going for:

The center of the grid must be masked to make it look like a tunnel, otherwise you would just run into the cubes. I still have a long way to go but this is finally something I am excited about and can work toward. The tunnels do curve around in various directions so it worries me that this idea isn't even feasible.

Continue to part 3

Questions and comments always welcome :)