♪ [MUSIC] ♪
Hey, I'm Martin Reimann. I'm the Environment Artist
and Art Director here at Odd Bug Studio.
We've been developing with Unity for the last six years.
We're currently working on our 2D-action RPG,
Previously, we worked on our first game,
which was a 2D VR platformer for the PS VR in Oculus Rift,
which was also developed using Unity.
[SOFT GUITAR MUSIC]
Today, I'm going to talk to you about my development process
of crafting a Scene, focusing mainly
on Unity's new 2D Light system
and our own tools to help us create the environments
in the world of
Let's begin.
Tails of Iron
like the Crimson Keep or the Rat village.
The player can navigate mostly freely from one Scene to the next
via entrances, like doors or tunnels.
I will show you how these Scenes are made
and what goes into making it from concept stage to polish.
Every Scene creation begins with a collider tool,
which Jack, our Level Designer, places as the foundation of the level.
It creates boundaries for the player, gives a general shape of the Scene,
and it is the surface that the player walks on.
This collider line is then used as the guide for me
to sketch out a few compositions and ideas
to create a batch of Assets and start placing them into the Scene.
But before Assets can be placed,
the Scene needs to be set up with our Light and Layer sorting tool
that Matt Taylor, our Light Programmer, made for us.
The objective of this tool is to be able to easily manage
the Sprite Assets sorting ordering and the lighting of the game.
This is crucial to handle for
as we build our levels with great detail
using a large quantity of separate Sprite Assets
to create parallax levels.
We achieve this by dividing the section
into multiple subdivision layer categories
like foreground, midground, and background.
Once we have defined our layers, this tool will then gather
all of the sprite renderers in the Scene section,
which you can then sort from closest to furthest
based on the zed depth of each asset in the Level section.
Once this list has been generated, the tool will then begin
to assign sort values in a linear fashion through the list.
This ensures that no asset that is behind another
will render in the incorrect order.
Once this step is completed, the tool will begin to assign a layer
based on the previously-defined subdivisions in the Scene.
This is used to define which sprite renders
should be affected by which specific 2D Lights.
These two processes combined helped us create
large, detailed parallax levels
with specific lighting scenarios per layer.
Whenever I start a new level in the game,
I create a library of Assets into multiple atlases for that level,
so that I can then pick out and use them in the Scenes.
Having Assets tied to specific levels
greatly helps with optimization.
Atlases are divided into categories like rocks, trees, or small Assets.
So first, I usually start with placing the midground Assets
to basically outline the colliders
and reinforce the surfaces of the Scene.
I then place a few Assets into the foreground and background,
so that I can set up the light tool to work properly.
After that I, continue replacing the big Assets
like trees, rocks, and hills to create a good composition
and then add smaller and smaller details.
With each passive Assets, I push the sword button in the Light tool
and Assets get properly assigned and rendered at the correct depth.
Placing Assets is sometimes like a big 3D puzzle.
It can be challenging trying to find the right shapes
to create the Scenes and composition I have in mind
while making it readable by the player.
I try to make each Scene unique from one another.
This helps in navigating the world as, hopefully, each Scene
becomes memorable with unique landmarks or Assets.
When placing Assets in different depths,
a parallax effect instantly becomes noticeable
as the player and the perspective camera
following him runs through the Scene.
This can be exaggerated by placing the Assets
further apart in the zed or closer to the camera,
allows you to keep Assets closest to the camera darker
or entirely black, as this creates a nice border
near the edges of the screen and reinforces depth.
Another great feature of our Light tool
is that it instantly creates artificial depth
by fading the color of each subdivision layer
as it goes back near the horizon.
With our Light tool, I can adjust the density
and also set the global light color and volume of that fade.
This creates a nice optimized illusion
with fading horizon and atmospheric fog.
This, combined with the latter added lights and particles,
can create drastically different moods in the Scenes.
[SOFT MUSIC]
Once the Scene has been filled with some Assets,
it's time to put in lights to really set the mood
and highlight the important parts of the Scene.
This is why I started using the new Unity 2D Lights
as they fit straight into our custom light tool workflow.
Before we started using the new Unity 2D Lights,
I would use 2D Spotlights and Point Lights
to light the Scenes, which worked at the time
but were not well-optimized for 2D game
with so many layers and parallax.
We adapted the 2D Unity Light system
to fit the purpose of a multilayered parallax 2D game.
Each 2D light will determine its own layer
based on its zed depth in the Scene
using the manually-defined subdivision layers
previously mentioned to determine which layer it belongs to.
Or I can manually set which layer the 2D light will affect.
The 2D lights in each section
will automatically be able to light up sprites correctly
and only affect the sprites, the layer it is inside of.
So that means I can be very specific when placing lights.
For example, I have a stronger Point Light
lighting up the midground as well as the characters
and lights in the background that are a bit more faded
to put a focus on the midground.
That was not possible before with the 3D lights
as they did not recognize the individual layers
and would light up the entire parallax level at once.
There are many different ways I can use this layered light system.
For example, I can create cool silhouette Scenes
where I place a light in the background and assign it
to only affect the background layers.
Then only have very dim lights in the midground and foreground layer.
Or I can have light behind a window or doorway
to create a nice atmosphere.
There are mainly three different light types that I use:
Point Light, Freeform, and Sprite.
The Point Light is the most used
because it's basically a 2D circle that I can quickly place around
to highlight important Assets or create artificial shadows.
The Point Light is great because it's so versatile with its options.
I can use it as a misty glow in the background
by increasing the volume opacity
or use it as a glow from a lamp by tweaking
the falloff intensity of the light.
Another light type that I use is the Freeform light.
That one I mainly use when wanting to put a strong light source
on a specifically-shaped asset, like a window.
I can just trace the shape of the asset,
tweak the falloff, and set the lights
on the exact depth of the asset.
That will make it look like it's emitting light.
The other light type is the Sprite light,
which allows me to set a specific asset
to project as the light itself.
I mainly use this on light beams that have a textured light source.
This can be placed and rotated in the Scene
to show the light coming from different angles.
With a combination of different light types, I can create Scenes
where the characters can pass through the light
and be illuminated in interesting ways.
Once the Scene is nicely lit up, I can start polishing it
by placing particle effects to bring in some movement
and divide out some of the messy looking areas.
First is a simple particle fog.
I just place it in the correct zed depth
and set it to render on the correct layer subdivision.
The fog is great to separate the individual layers visually
to create more depth and divide the layers up.
Placing the fog in the front of the midground
also grounds the characters in the world a bit more.
Finally, it's also nice to have the fog moving slightly
in the direction that the player is meant to go.
Next, I usually add some atmospheric effects,
like dust specks, rain, or falling leaves
depending on the Scene.
It's nice to place those closer to the camera
to create stronger parallax.
The rain effect is a combination of falling water droplets
and a product of animated water splashes placed on the ground.
These particles, like almost every other asset,
is designed its layers, so that it looks right with the parallax.
[SOFT MUSIC]
If the Scene has tall grass, flowers, or trees,
it's nice to give it some life or movement.
So Matt once again made us a great tool
that converts all selected foliage sprite shaders in the Scene
into a special shader that animates them together in the wind.
I can then individually adjust the values of each asset.
The tree leaves are placed in different size leaf chunks
around the treetop as to make the movement more natural.
Finally, the Scene is tied together
with some color processing and a vignette.
I use our custom tool to draw a box over the area of the Scene
that I want the post-processing to affect.
I can just drag it over the entire Scene
or over multiple different ones in the Scene that blend
as the player is walking through.
This, with a combination of the differently colored lights
and fade color can create different atmospheres for the levels.
When a Scene has multiple different states, like day or night,
I create a folder in that Scene with all the lights,
Assets, filters that get turned on or off in the game.
That's pretty much it for how I create Scenes in
I usually go through one, two, or three passes,
polishing the Assets, placement, and everything
until I'm happy with the Scene and everything is readable and nice.
That's everything. Hopefully, you've gained some insight
into Unity's new 2D Light system and how it can be used to create
interesting and atmospheric Scenes within your game.
Unity also has a demo Scene available for download,
which will allow you to get your hands on the new tools.
We always love to hear from you, and if you want more information
on
then please follow us over on Twitter:
Thanks for watching and have a great day.
♪ [MUSIC] ♪