Dry Biome

Environment Breakdown

Florian Obchette

gabanner
70

Florian Obchette

Vegetation Artist

Introduction

Hi, my name is Florian Obchette, I'm a 21 years old junior vegetation and material artist at Ubisoft Ivory Tower on The Crew Motorfest, and formerly a junior vegetation artist at Kylotonn on WRC Generations.

I started as a self-taught artist back in 2019 and stopped my studies at the end of 2020 when I joined the CG Academy in Belgium for a one-year training in-game art. It allowed me to reinforce what I had learned before with professionals from the industry.

After that, I returned to a small studio in Belgium for 2-3 months and then found a job at Kylotonn where I worked for six months. Afterward, I joined Ubisoft Ivory Tower in Lyon where I still am as of the writing of this article.

Reference & Inspiration

After some reflection, my first thought was to look for a fairly flat environment without having large trees lining the horizon. So I made a selection of low plants that I wanted to create with quick biological research to better understand and apprehend the species.

I also did some research for the colors and compositions of the plants that I will assemble and their overall silhouette, to be able to create diversity easily when I paint my vegetation in Unreal Engine.

I always pay attention to their scale too, because bad scaling can quickly hinder the overall feeling of the image.

Generally, I don’t do the first block out of my scenes like most artists do, I prefer to take time to first create a functional and correct plant ecosystem and then think about what would be logical to put in this environment to create a composition. My first focus was on the vegetation and not on the composition of the final scene!

Blockout

Once I have my reference for the vegetation, I take a first step on the shapes that I will approach and therefore start to draw in Photoshop in 2048x2048px to see which shapes I will explore.

1-1

Once my atlas is ready, I send it to Substance Designer to create my alpha and tweak my color map using a Distance node to get a read of the outlines of the background color on the vegetation.

2-1

My next step will be to cut out my atlas in Blender and quickly assemble it to see if what I’ve drawn with the level of shapes/scales will work, it’s a way to make sure that what I did before is correct.

3-1

If my first drawing works, the rest will follow without any problems.

Modeling – Vegetation

Flowers

My first step is to create my color atlas with trims and color gradients. I really put very few details in my colors in order to have a clean look and not overload color information for nothing.
Gradients are fine for some small plants, when you bake your atlas on a plane you lose a lot of detail anyway.

4-1

For the flowers, the first step was to create the petals, the trunk and the pistil. I make fairly simple shapes and don’t put a lot of detail for the reasons mentioned above and also not to explode the polycount.

5-1

Once the flowers are fully assembled, I place curves that I separate throughout, and I come and draw the curves using the draw curves tool so that it follows the diagram of my drawings. I assemble my highpoly this way, my process is very close to the one of Patrick Gladys.

6-1

Once assembled, the highpoly is ready to be baked, so I export a plane as my lowpoly, which I will be using to bake and finally create the atlas for the lowpoly.

7-2

For the baking, I project information from the highpoly onto a plane which is the lowpoly geometry and I retrieve the color thanks to a texture transfer.
Then this is how I create my lowpoly plants, the rest is simply about cutting the texture in a plane and assembling all parts in Blender.

8-1

Aloe Vera

The creation of the aloe vera was speedy, it only took me 40 minutes this process.
First I modeled in Blender the highpoly base meshes and unwrapped them directly.

9

The second step was to decimate the highpoly to quickly have a functional lowpoly, and as I unwrapped it before on the highpoly the UVs are correct.

10-1

Third step is baking, nothing complicated. Here are my settings:

11-1

I used the color ID randoms in hue to randomize in my color, the luminance of each part to detach, and I therefore textured the whole thing in Substance Designer.

12-1

The final step was to place the lowpoly using a curve to assemble it.

Tree

The challenge was to think of making a bark that tears off of the tree trunk without having a headache. I packed the bark in my tileable textures to have only one ID for the trunk, and in unreal I set the shaders in masked mode to get the transparency of my barks and in two-sided.

I decided to tackle the branches easily like my other plants and to make a straight branch to then place it using curves, which made it easier for me to put groups of barks by hand that I duplicated. This process took me 3 hours for the variations of my trees and the materials.

14-1

Some things are repeated in the process, but I followed some steps. To optimize my trees and not see only geometry for the thin branches in order to save performance, I made myself another atlas comprising the dead branches that I had modeled to create the base of my trees.

I baked the units in Substance Designer in order to retrieve the normal colors of my materials for a perfect blending between them as they were exactly the same color.

15-1

ZBrush

For the pebbles, I sculpted a base in Zbrush and baked and textured them in Substance Designer.

16-1

Once finished, I set up an area in my Blender scene to simulate rocks falling on the ground. This made a pile of stones, which I exported as a .FBX file. Later on, I scattered them by hand in Unreal Engine.

To do so, while in Blender I first spawned a plane which I used as a ground collision so that the stones do not fall infinitely into the void and can assemble together. I added a physics property in Rigid Body and put his type in passive so it doesn’t fall.

17-1

I also did the same thing on the other side of a pebble to apply the rigid body to it, except that I was going to apply it in Assets so that they are subject to gravity.
I also modified the friction parameter so that it doesn’t slide like an ice cube on the ground so that it gathers and stacks correctly.

18-1

To save time you can select all your pebbles and at last, the pebble with the right parameters and you can go to object => rigid body => copy from active so that it copies the rigid body data on all the other pebbles selected.

19-1

And here is the result once the simulation has played.

20-1

Please pay attention to the pivot point on your meshes because it’s the gravity center and its dimensions. Do not hesitate to reset them because it influences the weight of your meshes and therefore the consistency of the simulation.

So to do the equivalent of an Xform you can do a CTRL + A and All transform to reset them to 0. But be careful your pivot point will reset to the center of the world, so don’t forget afterwards to reset your pivot point to them by selecting all and right-clicking => set origin => origin to geometry and then have fun!

Material

For the tileable materials, I proceeded in a fairly simple way as it was not my main focus. I took a heightmap from Quixel Megascans that I modified and then created all of the necessary maps such as the Base color, Roughness, normals and AO in Substance Designer.

I still took a little time to have a good blending between my pebbles and my soil even if in the end we couldn’t really see it.
I baked my stacks of pebbles in Substance Designer with a repeating pattern to use it in textures.

21-1

Here is my graph for the dirt ground.

22

The only trick I used in it was to bake in a color map from meshes and convert it to grayscale then to use a gradient map using the colorimetry of my rocks to create slight color variations without using floods thread.

23

Unreal Engine 5

For my project I used fairly basic lighting, Lumens helps a lot to have cohesive lighting without having to take the lead with tweaks or various tricks that existed in Unreal Engine 4 in order to fake certain things to improve the rendering. It’s a big time saver for a better result.

Feedback

I thank all my friends with whom I discussed, played and shared my projects and with whom I had excellent feedback. They gave me a different vision of my creation.

For an artist it’s essential to be well surrounded, these friends will help you overcome the hard times, and also to motivate you to revive your creativity. It will allow you to have a new perception of things because the more time we spend on our artwork, the more our eyes get used to potential errors we no longer see.

I have one piece of advice for everyone, don’t stay alone when working and ask for help and feedback if necessary!

S/O to my guys for feedback, Léo Gontier, Erwan Gaudichon, Timothy Dubois, Antoine Déjean, Daniel Robichon and Mohamed El Bouhy.

Conclusion

From now on I will move towards creating a handmade vegetation tutorial in Blender. I will take the time to deliver something educational, logical and easy to follow for someone with an intermediate level and possibly go on a new 3D environment in the future.

Thanks to the GamesArtist team for allowing me to share some tips and tricks with you!

My ArtStation: https://www.artstation.com/florianobchette
My LinkedIn: https://www.linkedin.com/in/florianobch/
My Twitter : https://twitter.com/floodsuu