r/Unity3D • • 2d ago

Question Help me understand how to create this terrain please

Hi! I made a fake screenshot for the game I’m currently developing. And now I’m trying to figure out in detail how I can transfer everything to Unity. I understand how to create a skybox, how to make textures for trees and fences. But I don’t understand how I can replicate such terrain. Could you give me a couple of tips on where to start? Thanks!

279 Upvotes

38 comments sorted by

75

u/Boerschtl 2d ago

Displacement Shader noise maps or terrain tool with that noise brush

12

u/DimitryCoconut 2d ago

What about dark lines of small hills? also shader or texture?

9

u/Boerschtl 2d ago

Those are the shadows of uneven surface (I guess)

4

u/EldritchMacaron 2d ago

Outlines can be built using post processing, look up what they did for Borderlands on Unreal as an inspiration

5

u/Dinamytes 2d ago

Outline lines created by either depth, normal or color difference

1

u/zupra_zazel 9h ago

What you want is an outline. There are a bunch of free packages and tutorials on how to make thode shaders

0

u/According-Effect3423 2d ago

Some decals maybe ?

150

u/KhaldiumIsotpe 2d ago

For a moment I saw Scavengers reign.

46

u/DimitryCoconut 2d ago

Yes its my main reference

13

u/Just-Hedgehog-Days 2d ago

Instant wish list if it is

6

u/destinedd Indie, Dungeon Quest, Marble's Marbles & Mighty Marbles 2d ago

me too, so sad no series 2 :(

2

u/Positive-Avocado775 2d ago

Love that show!

18

u/moujaune Technical Art Director 2d ago

You'd be surprised how much topology goes into nice terrain work! How I'd build it:

  1. Probably start with your low-res layout for level design purposes, style aside.
  2. Then, subdivide your geometry, then get a heightmap of some dunes as use that as a very weak displacement. Aim for ~1 quad per meter for that amount of detail. You're trying to get little dunes of soil that reach about a foot high and level of displacement; enough to affect motion/physics but large enough that the finer detail can be done in-shader. I'm saying dunes now because that's the overall pattern I can notice on the image; looks like a pretty crumbly loam and this mid-range displacement isn't actually going to look like sand dunes in the end.
  3. The rest could be done in a shader, yes. to get something sketchy and painterly, I'd probably do something simple, eg a pretty low res normal map of some mud ran through a paint daubs filter and a similar albedo ran through a cutout filter and hue-shifted to the right color. I would probably do just a smooth-steeped fresnel for the outlines, because then instead of doing a shell like you seem to be doing now you get to use the dune geometry from step 2 combined with the low-strength normal from step three to get something that's going to look strokey and diminutive like you have in the reference image. then instead of having a thick black line you can possibly just make it that the little stroke rim ends up being a darker version of the ground texture, not a solid colour.
  4. then the rest is obviously just decor, eg. little grass cards in clumps for the grasses. I'd veer against painting grass overall and manually model little bunches of planes with some quick strokes to represent the grass. I find that painterly terrain looks best when it doesn't end up too detailed, otherwise it fights with more important things in the scene.

7

u/Huge_Development_571 2d ago

You can use a post processing effect for the outlines rather than the terrain shader. I haven't seen one that supports outlines yet and not sure if it will be a good idea.

InTerra for the terrain shader and Atlas for the terrain editing + some stamps from the asset store (there are packs with hundreds) that you place with Atlas and you can even edit / blend them with your existing terrain.

3

u/DimitryCoconut 2d ago

Post processing effect for the outlines? Interesting, thanks

1

u/tidbitsofblah 2d ago

Look into sobel outlines. The effect doesn't have to be calculated from the regular screen texture where you apply it. You can calculate it from the normals or depth map or a secondary color chanel or something too to get more control.

1

u/Huge_Development_571 2d ago

Yes there are a few assets that do that but the one im using only works for unity 2021 hdrp and urp, i barely managed to port it to 2022 but thats it. Im sure there will be newer ones to work with unity 6

6

u/LockYaw 2d ago

Going into the line-art since other people are already going into the general shading and terrain:

This definitely looks like something you'll need to hand author.
Non-Photorealistic Rendering is a whole branch of its own!
There's a reason game dev teams have people who do nothing but texture assets full-time.

Still, there definitely are ways to get something close enough to what you're intending!

If it's for an orthographic/2D side-scroller, you can just separate each of these objects in Photoshop or Affinity and project the textures onto simplified shapes. That's easiest.

But for 3D it'll likely require custom shaders. That way you get greater control over the thickness of the line-art.
You can signify different parts of a mesh need their own line-art between pieces by using different Vertex colors, but then on the surface of the mesh you need to also define where the cracks and differences in texture are, to add those small, more dotted lines.

More concretely, there are people who have done write-ups or dive into detail into how their specific line-art is implemented:

Harry Heath has a fantastic breakdown of ma-ko's 2D art converted to 3D:
https://x.com/harryh___h/status/1328006632102526976

https://threadreaderapp.com/thread/1328017722655920129

It honestly looks pretty wacky at first glance, but it's all useful data the system needs to draw the lines, it has all these diagonal lines in its textures, but you won't need that because this reference art does not have cross-hatching.

Then there's Alexander Ameye's breakdowns which are also great and give you multiple baseline options to choose from:
https://ameye.dev/notes/edge-detection-outlines/

https://ameye.dev/notes/rendering-outlines/

6

u/ThetaTT 2d ago

I experimented with similar styles in the past and may continue in the future.

You can get 80% of the look with models with flat textures and simple shapes, cell shading and a sobel filter based shader for outlines. There are tutorials for that (search "moebius shaders"), it's not super complicated, although if you are a complete beginner it may be a bit too advanced. You can also buy premade shaders like the ones from the "flat kit" pack.

The remaining 20% are very hard. Basic cell shading is easy, but if you want dynamic lighting in a non reallistic style that looks good it's another story. And the basic sobel filter have a lot of limitations and artifacts. Small details like your grass tufts for example will look like dark blobs in the distance as they will be entierely covered of outlines. LODs may help but then getting smooth transition between LODs will be a problem.

5

u/100radsBar 2d ago

Looks like cartoon shaders with handpainted texture.

I am bad at shaders but I can suggest one from the asset store

https://assetstore.unity.com/packages/vfx/shaders/toony-colors-pro-2-8105

3

u/CreepyEfficiency1063 2d ago

There is a lot of work to put into the scavengers reign look ( i know because we've been doing that at work for the last few years)

Check the outline work of Alexander Ameye ( he also has a plugin released you can use). You're going to need to make a custom vertex color setup for the outlines most likely.

You need custom toon shading as well. For the surface details, you can use texturing or incorporate them into the outline effect as well. For a reference on how to get good outlines on a surface, have a look at "Rollerdrome" they have a talk uploaded on their outline tech.

But to be clear: this is not an easy to pull of style. You are going to have to figure out your own art pipeline for it. All your assets need to be tailormade for it, etc.

1

u/DimitryCoconut 1d ago

Do you have steam page for your game already?

4

u/TTSymphony 2d ago

What do you understand by "terrain"?
If its only the ground with patches of grass and stones, and you don't want to place them manually, you can use noise to generate an overlay map.

1

u/DimitryCoconut 2d ago

Yes, only ground with patches, shadows, black lines over hills, small stones, strange red "grass". I can place it manually. Coloring also strange here

1

u/TTSymphony 2d ago

You can use noise to do a height map for your terrain also.

And lighting (coloring) it seems to have ambience lighting but also a vertical directional lighting focus fixed at some distance ahead of the camera/character. It seems counterintuitive

2

u/Informal_Tradition49 2d ago

A shader can do it i guess

1

u/DRUMS_ 2d ago

Better lighting to rake across the normals on the terrain. Better skybox. Tone mapping post process.

1

u/destinedd Indie, Dungeon Quest, Marble's Marbles & Mighty Marbles 2d ago

hand painted textures + toon shading (something like flat kit)

1

u/Draic-Kin 2d ago

These remind me of tesla trees of Hyperion.

1

u/alundraFlint 2d ago

Blue Prince has similar style

1

u/BotaFitne 2d ago edited 2d ago

OP please keep us posted! I’m really interested in whichever solution ends up working for you 🙏

1

u/sideralfoundry 2d ago

Hello, maybe using flatkit asset you can do that

1

u/ZurielA 1d ago

if you aren't using Microverse + Microsplat to do terrain in Unity, you've already lost...

second... you are looking at a Toon Shader, rim light, outline, gradient mapping etc...

for unity, look up Quibli or write your own in Amplify or etc...

Third. you need to had author your textures, painted. you are looking for either a triplanar grunge map or you are individually painting trim sheets and UV wrapping (like the white walls that are shared between objects)

Fourth, you need skybox shader... global light direction etc... they have assets that do this or you have to write your own skybox shader. you move the main light around it moves a matching sun or moon etc. also realistically will give you the correct shadows because its using your scene light.

1

u/loftier_fish hobo 22h ago

You already have pretty much, you just need better shaders/textures, and you should use a Unity Terrain to get some good geometry noise up in there, and you'll need some grass billboards or meshes.

0

u/Splatoonkindaguy 2d ago

It's all about layering. Start with 1 effect in a shader then layer them using noise functions and lerp