Transforming Cannon

10_LightingRendering_13
1

Aleksandr Stepanov

Senior 3D Artist

Introduction

Hi everyone!

My name is Aleksandr, and I am a Senior 3D Artist at Lesta Games. I have been creating 3D content for more than six years and have been working in the gaming industry for the past four years.

01_Introduction_Image01-1
10_LightingRendering_11
10_LightingRendering_06
10_LightingRendering_12
10_LightingRendering_09
10_LightingRendering_08
10_LightingRendering_07
10_LightingRendering_05

Project Ideas

After a rather long break from personal projects, I was inspired by Souls-like games and decided to create a weapon that reflected the influence of FromSoftware’s games.

At the same time, I didn’t want to make a traditional weapon like an axe or sword. I wanted to think outside the box and create something unique.

Bloodborne was a great inspiration for me, as the developers went beyond traditional weaponry and added the ability to transform weapons into different forms.

However, I didn’t want to just copy their pre-existing solution. With that in mind, I began searching for a new concept.

Tools

  • Photoshop (sketching)
  • Blender (modeling and UV)
  • ZBrush (designing and detailing)
  • Substance Painter (baking, texturing)
  • Substance Designer (creating alphas)
  • Marmoset Toolbag (rendering)

Inspiration

I spent a lot of time considering different options for this weapon and what I wanted from it in terms of gameplay. I wanted it to be a powerful weapon that required skill and strength to use.

Recently, in the early stages of my project, I have been experimenting with creating quick sketches in Photoshop instead of trying to create everything at once in 3D.

These sketches might look rough and confusing, but the main focus at this point is not on creating a beautiful image, but rather on forming an idea that I can develop over time.

02_Inspiration_01

Here are some options with similar movements and transformations:

I ended up choosing a combination of a cannon and a hammer for the concept. This choice seemed interesting to me in terms of gameplay, as it allows a player to combine long-range and close-quarters combat, taking enemies by surprise while maintaining the idea of a heavy and unwieldy weapon.

02_Inspiration_02

Early Cannon Concepts

I took the classic Saw Cleaver from Bloodborne as a basis for my design and decided to add a ship’s cannon to it. This allowed for a simple yet impressive “transformation” movement during the transition from a long-range to a melee state.

I wasn’t too concerned that it couldn’t realistically exist because, “Hey, this is the world of FromSoftware games. Anything can happen here. Just go with it!”

References

The reference board was updated as the work progressed. You can see clusters of images related to different aspects of the project. These include finding the shape, initial drawings, and how the weapon functions.

They also include colors, materials, and lighting exploration.

03_References_01

Blockout and Highpoly

When the general idea became clearer, I started blocking out a rough 3D model in Blender.

I then used Photoshop to sketch out some interesting silhouettes to find the perfect one.

04_BlockoutHP_01

At this stage, it’s important to understand the basic dimensions and mechanics of the weapon. I always have a dimensional dummy on hand to help me determine the size I need.

When I decide on the final design, I create a simple animation to understand how the different parts work together and what their sizes should be.

04_BlockoutHP_02

Early Blockout

After identifying all the basic geometric features in the blockout, I brought the model into ZBrush for further detailed work. At this stage, I did not focus on small details and continued to search for interesting shapes and solutions for individual parts.

Recently, I have preferred using ZBrush for this level of detail as it provides greater flexibility in shaping. If needed, I later create the final geometry in Blender from the basic shape created in ZBrush. A

dditionally, at this point, I frequently switch between ZBrush and Blender to better understand how the individual parts interact in animation.

04_BlockoutHP_03

One of the stages of work in ZBrush: here, you can see the outlines of some ideas that were implemented in the final product.

The final result at this point is a highpoly model in ZBrush. During the design process, I decided to focus on a marine theme to emphasize the origin of the cannon and its owner. This is how the tentacles appeared on the retractable barrel of the cannon, an underwater mine shaped like a hammer, and a fishing net. The tentacles were designed to be a relief on the barrel of the cannon, so they do not interfere with its extension or retraction. I also added several levers, which can act as fuses and triggers, and which can initiate the transition from one state to another. In the final version, you can see the springs that ensure the movement of the different parts of the mechanism.

I generally prefer not to create the surface of materials in ZBrush, as I find it more efficient to do so in Substance Painter. This gives me more flexibility when editing, saving me the hassle of re-exporting and re-baking the model if something needs to be changed.

04_BlockoutHP_04
04_BlockoutHP_05
04_BlockoutHP_06
04_BlockoutHP_07
04_BlockoutHP_08
04_BlockoutHP_09

Low-poly and UV

The next stage was creating the low-poly model. This involved a rather tedious technical process.

I followed the path of Decimate -> Retopology in Blender -> UV unwrapping, and so on, for each element of the model.

For some elements, such as strips of fabric, a simple ZRemesh worked well.

For textures, I used a single 4K texture set with a resolution of 2048 pixels per meter, trying to save UV space as much as possible.
However, I didn’t aim to create a super-dense UV texture.

The texture size may seem excessive, but I wanted to ensure it would be large enough to implement all my ideas.

05_LP_01
05_LP_02
05_LP_03

After creating the textures, I returned to Blender and created the torn pieces of the fishing net. I placed them into a pre-defined area of the texture.

05_LP_04

The fishing net was created using curves in Blender. Initially, I considered creating it in Substance Designer, but after further thought, I realized it would be too time-consuming for such a minor element of the model.

Additionally, for longer elements such as rope and wire on the handle, I created texture trims and mapped them to these areas to save texture space.

05_LP_05
05_LP_06

For specific elements, I created separate spaces on the UV map to optimize the UV layout.

Bake

Baking was done in Substance Painter using the Mesh Name option. I prefer not to use Marmoset for this process, as it requires me to move textures between different software and takes up a lot of time.

06_Bake_01
06_Bake_02
06_Bake_03

Texturing Goals

When creating textures, I understood that I didn’t want to create super realistic textures. Instead, I wanted to add a touch of stylization, simplifying and emphasizing certain elements.

For example, I wanted a realistic metal texture, but when it came to the colors of the model, I used the principles of hand-painted textures.

ID Map

When I start working with textures, I usually create an ID map directly in Substance Painter. This allows me to assign ID colors to different parts of the model easily and eliminates the need for re-baking if any changes are made.

To do this, I create folders with layers of different colors corresponding to other materials and then assign these colors to specific parts of the model.

In some cases, such as with the fishing net, I pre-bake the model with a high-poly model, as it saves a lot of time compared to drawing it manually.

07_ID_01

After creating ID colors, I exported the base color channel and reimported it into the project, placing it in the ID Map input.

07_ID_02

Details Map

After creating the ID map, I often create a set of detailed layers responsible for the fine details that I did not include in the high-poly model.

In this case, I created a layer with the height channel enabled to show the joints between different parts of the model. This adds life and depth to the model, making it look more interesting and less flat.

Additionally, I added an anchor for the height map at the top of all layers in the folder to easily reference this detail later when using it.

08_Details_01

For the ornaments, I used a pre-made alpha trim that I had previously processed in Substance Designer. I increased its clarity and added some details to it.

After that, I imported it into Painter and applied it to the model using the Cylindrical projection mode. I masked the trim to ensure that it only applied to the desired areas.

08_Details_02
08_Details_03

Creating Materials

When creating materials, I follow a process that includes several stages: creating the basic material, adding weathering effects, applying color accents, and finishing with post-processing.

In the first stage, I establish the foundation for the material. This involves creating the basic structure and texture. Next, I apply weathering effects to give the material a worn and aged appearance.

After that, I move on to the color accents stage. Here, I choose and apply overlay colors to enhance the overall look of the material. The final stage is post-processing, where I refine and polish the design to achieve a professional finish.

09_materials_011

When creating materials, I try to use as few layers as possible to keep the file editable.

It is also important to assign materials not only based on procedural masks and generators but also by consciously manually coloring individual elements.

This significantly enhances their visual appeal and makes the model more interesting.

09_materials_033

Animation

A few words about animation: I am not a professional animator, but creating your own draft animations can be helpful when making assets to ensure that everything works correctly.

Therefore, throughout the project, I inserted parts of the model into a simple rig I created and checked that everything worked as it should.

I imagined a variety of scenes that could be created with this weapon in my imagination, but they will remain there forever (unless there’s an animator who can bring them to life).

The only animation in the project was a draft animation of the weapon unfolding to give a general idea of its mechanics.

Rendering

I used Marmoset Toolbag to render my project, as it meets all my needs and allows me to achieve excellent results with minimal effort.

This was the first time I had used Omni lights for a lighting setup, and I was pleasantly surprised by how convenient and enjoyable it was to work with.

This was also the first project where I decided to use a bright background for the render.

I used a classic lighting setup with several light sources: the main light, background light, and several accent lights.

To achieve the desired level of glare, I simply adjusted the size of the Omni light until I got the perfect result. Also, when setting up the lights, it’s helpful to switch to black-and-white mode and check for glare and contrast.

10_LightingRendering_01

When working, I usually use a layout of three windows. The main window is where I create the frame, adjust the camera, and evaluate the main features of the image.

In this window, I can see how the light is falling and make other adjustments. In the second window, there is a working camera that shows the entire scene.

This allows me to set the lighting, move the models, and make other changes while the main camera remains stationary. The third window is a duplicate of the first one but on a smaller scale.

It’s easier for me to spot lighting and composition issues in a smaller image compared to the full-screen view.

10_LightingRendering_02

For each frame, I created a separate folder to expose a new model and set up a new camera. This allowed me to quickly switch between frames and make any necessary changes.

In most cases, I did not change the lighting, but for a few frames, I created separate lighting presets that I also labeled and grouped for easy navigation.

10_lightingrender_033

When working with the camera, I like to adjust the curves slightly to achieve greater contrast and set a small sharpening value to enhance the detail in the renderings.

10_LightingRendering_04

At the last minute, I added a shot of the character holding a cannon so that viewers could see its size.

This was thanks to my friends who asked me to include it, as when viewed from outside the scene, questions about the size of this object arose.

10_LightingRendering_05

Conclusion

In conclusion, I would like to say that I am really pleased with the final result. This project has inspired me to do more work and set a new standard for excellence.

However, despite this, I still have some ideas for this project that could make it more interesting. I think it is important, however, to stop when we have done well and not to try to do something extraordinary and end up with nothing.

10_LightingRendering_10

Thank you for your time. I hope you found this article useful and interesting. Thanks to the Games Artists team for the opportunity to share this article with you.

Aleksandr Stepanov
Artstation – https://www.artstation.com/alexandr_sl