ASSET DOCUMENTATION π β‘

Modular Terrain Tiles v1.0
If you liked this, I’d really appreciate you leaving a review!
DOCUMENTATION
1. Description
This asset is a pack of 42 unique modular terrain tiles designed to make building terrain and game maps easier and visual impressive.
The tiles have been built to connect seamlessly through the sharing of border vertex positions and normals.
The kit includes tiles that span two vertical height levels (AβB) as well as tiles that span three vertical height levels (AβBβC), allowing for both simple elevation steps and taller cliff transitions.
Also included is a custom built shader that uses tile specific splatmaps to define where textures appear on each tile. Materials can therefore be changed easily by replacing the textures in the βmasterβ material without breaking modularity.
1.1 Supported Workflows
URP and HDRP workflows are supported. Folders containing both pipeline assets will be installed automatically. The folder containing not required pipeline data can be safely deleted.
Due to its depreciation, the Built-in Render Pipeline is not supported.
Unity Version
Built and tested in Unity 2022.3.4f1 (LTS)
Not yet fully tested in Unity 6
2. Usage
The tiles are 20m x 20m x 10m(h) and can be laid out by setting the grid size accordingly and turning on grid snapping.
Place tiles by dragging one of the 15 parent tile prefabs from the prefab/biome folder into the Hierarchy.
Rotate, snap and mirror using the helper script.
You can replace the tile with another variant via the Tile Variant Switcher script.
Orientation
Y = Up
1 Unity Unit = 1 Metre
2.1
Tile Placement Helper
- Rotate and mirror tiles around their centre point
- Snap tiles precisely to the grid (grid increment must match tile size)
Tile Variant Switcher
- Swap tile prefabs via a dropdown menu
- Randomises variants on placement
- Useful for introducing visual variety or placing functional tiles such as ramps
Note: Prefabs are placed empty, then a tile variant is instanced upon placement.
The tile placement helper supports multi object editing provided all the objects selected have that component attached.
2.2 Tile Rename Patcher
Some tiles have inconsistent naming conventions where the first letter of the pattern (eg AABB) does not correspond to the same vertex on each tile type. Although not a problem in most cases, this could cause issues for auto placers that read the game object name strings.
There is a patcher included and can be accessed via the main menu bar:
βTools/NotNormalGames/MTT/Apply Naming Fixβ.
This will rename the tiles to ensure the first letter of the name, eg βAβ in ABBC, always corresponds to the bottom right vertex of each tile and continues clockwise.
Note that scene references will be updated automatically by Unity, but string references in scripts will require a manual correction.
LOD
All cliff pieces have 3 LOD levels defined.
LOD distances can be altered within the LOD group component in the inspector.
Colliders
All tiles have simplified mesh colliders applied.
Mesh Density
Tri-count approximations are as follows:
LOD0 3k – 4k
LOD1 700-900
LOD2 300-450
Some tiles exceed stated tri counts where silhouette or readability requires it.
Cliff tiles use a shader that has the following structure:
- Tile variant-specific maps drive texturing through splatmaps, normal and AO maps.
- A worldspace triplaner shared material is overlaid across all tiles to help blend tiles together.
The materials using this shader can be edited in numerous ways (see 4.1), such as replacing cliff/debris/ground textures, or altering shader properties.. Any changes made at master level will automatically be inherited by child materials. There is a dedicated child material for each LOD level, allowing for performance toggles per LOD level. For example, turning off triplaner normal maps for LOD1, and mask maps and normal maps for LOD2,
Tile specific maps (AO, splat and normal maps) are packed into texture arrays and assigned through an index, stored in vertex colours per mesh. As such all tiles of the same LOD level share a material and are static batched for performance.
4.1 Material Parameters
General
- Triplaner blending samples β default 4. Higher values give higher fidelity textures but have a performance cost.
- Smoothness Master β when TriplanerMask Toggle is On this adjusts the smoothness value from cliff mask map. When TriplanerMask Toggle Off provides a smoothness value between 0 and 1 for the cliff material. Array Data β Texture arrays assigned here.
- Tile Maps β AO contrast β per tile AO map contrast
- Unique Tile Normal Strength β Per tile normal map strength.
- Debris Edge Fade β Controls level or debris at the edges to blend with ground texture or display as hard edge Rock Texture
- Base Colour β Set cliff rock albedo map.
- Rock Tint β Tint cliff rock albedo
- Cliff Variation From AO β Adds subtle lightening of base colour to give variation and depth to cliffs
- Rock Normal β Set cliff rock normal map.
- RockMaskMap β Set packed unity standard mask map (metallic/AO/detail/smoothness).
- AO Rock Falloff β Amount of AO detail coverage
- AO Rock Contrast β Intensity of AO
- Rock Normal Strength β Set rock normal strength
- Rock Tiling β Change tiling of rock texture Ground Texture
- Base colour β Set ground albedo map
- Ground Tint β Tint ground albedo
- Ground Normal β Set ground normal map.
- Ground Normal Strength β Set ground normal strength
- Ground Tiling β Change tiling of ground textures Debris
- Base Colour β Set debris (around cliff base) albedo map
- Debris Tint β Tint debris albedo.
- Debris Normal β Set debris normal map
- Debris Normal Strength β Set debris normal strength
- Debris Tiling β Change tiling of debris textures Dirt/Streaks
- Amount β Set the level of streaks
- Colour β Set the colour of streaks
- Wetness β Set the smoothness of the streaks to appear like water running down the cliff face Performance
- TriplanerNormalToggle β Set keyword On/Off to include or remove triplaner shared normal map across all cliff tiles
- TriplanerMaskToggle β Set keyword On/Off to include or remove triplaner shared mask map across all cliff tiles
If you wish to paint custom splatmaps this can be done through third party plugins, but the unique normal and AO maps will be lost unless a custom solution is built. Each tile has a UV unwrap in UV2 suitable for low resolution splat map painting (tested down to 64×64 which works as expected).
There are three texture sets included (Desert, snow and jungle) with the following maps for each biome:
Cliff β Albedo / Mask/ Normal
Ground β Albedo / Normal
Debris β Albedo / Normal
Texture placement is driven by a tile specific RGBA splat map.
The fourth channel used by the splat map is for streaks on the cliff face which can be made to add wetness.
