TREESLAND
WATERLAND
SANDLAND
MOUNTAINLAND
GRASSLAND
TREESLAND
Trees in UE5 boil down to three things: good
assets, smart placement (manual or procedural), and performance-friendly
materials/settings. Here’s a tight, production-ready recipe.
1) Get/prepare tree assets
- Sources: Megascans/Bridge,
Marketplace packs, SpeedTree (best for custom species/LODs), or your own.
- Materials: Use a master
foliage material with:
- Two-Sided
foliage shading
(Subsurface Profile for leaves).
- Dithered
opacity
(masked leaves; avoid full translucency).
- Wind via
SimpleGrassWind (quick) or Pivot Painter (best: branch/leaf-level
motion).
- RVT (Runtime Virtual
Texture) support so trunks/roots blend into ground.
- LODs: Ensure multiple
LODs + optional billboard card for far distance. Keep overdraw low (trim
alpha planes).
2) Fast path: paint with the Foliage tool
- Open
Modes → Foliage; add your tree Static Meshes.
- Set
Density, Align to Normal, Random Yaw, Scale range
(e.g., 0.9–1.2).
- Use
Brush with broad falloff; paint clusters, then Erase near
paths/rocks.
- Use
Select tool inside Foliage to nudge/sparsify heavy patches.
Good for art-directed shots and quick block-outs.
3) Procedural at scale (recommended)
A) PCG (Procedural Content Generation)
- Create
a PCG Graph:
- Inputs: Landscape
(height/slope), Landscape Layer weights (e.g., “Forest,” “Rock”), Spline
masks (roads/rivers) as exclusions.
- Sampling: Blue-noise or
Poisson for even, natural spacing; set Minimum Distance per
species.
- Filters:
- Height
range (e.g., 200–1200 m).
- Slope
< ~30° for trees; >30° for rocks only.
- Distance-to-water
< X m for riparian species.
- Spawn: Output to Hierarchical
Instanced Static Mesh (HISM) for performance.
- Chain
multiple species with different rules (conifers on colder/higher bands,
deciduous mid-slope, shrubs at treeline).
B) Procedural Foliage Spawner (legacy but solid)
- Add
Procedural Foliage Volume + Spawner.
- Per-species:
set Collision Radius, Shade Tolerance, Ground Slope, Num
Steps (growth iterations).
- Press
Resimulate to grow believable clumps/canopies automatically.
4) Wind & life
- Place
a Wind Directional Source actor; tune Strength/Speed.
- Pivot
Painter
trees: hook wind textures in the material for trunk→branch→leaf hierarchy
sways.
- Add
subtle leaf flutter (high-frequency sine) and branch sway
(low-frequency).
- Optional
gameplay: Interactive Foliage (WPO bend on overlap) for close-up
brush-throughs.
5) Performance checklist (crucial)
- Use
HISM instancing (Foliage tool/PCG does this automatically).
- Sensible
Cull Distances: near = keep, mid = LOD down, far = cull/billboard.
- Keep
shader complexity low (packed maps, minimal texture samples).
- Limit
shadow casters: only hero trees cast long-range; others receive
shadows only beyond a distance.
- Use
Virtual Shadow Maps and Distance Field AO as needed.
- For
rocks/cliffs use Nanite; for trees, prefer classic LODs +
billboards (leaves are alpha-masked).
6) World integration
- RVT: write landscape
albedo/normal into RVT; sample RVT in tree base material to color-match
trunk base → seamless grounding.
- PCG post-pass: scatter deadfall,
stumps, mushrooms, undergrowth by slope/occlusion for realism.
- Biome
painting:
paint landscape layers (“Forest,” “Meadow”) and read them in PCG to
control where species appear.
7) Quick starter settings (baseline)
- Foliage
brush Density: start low, build up in passes.
- PCG
min spacing: large trees 800–1500 cm; small trees 400–800 cm; shrubs
150–300 cm.
- Slope
filter: trees ≤ 28–35°; tweak per biome.
WATERLAND
Here’s the fastest path to believable lakes,
rivers, and oceans in UE5.
1) Turn on the Water system
- Edit
→ Plugins → Water (enable) + Landmass (recommended for clean
banks).
- Restart
→ In your level, add Water Zone (auto-adds WaterMesh).
2) Drop water bodies
- Place
Actors → Water:
- WaterBodyOcean: infinite ocean
plane; great for coastlines.
- WaterBodyLake: closed spline for
ponds/lakes.
- WaterBodyRiver: spline with
width/falloff; flows downhill and carves banks (with Landmass on).
- WaterBodyCustom: for nonstandard
shapes.
- Use
the Spline points to shape path/shorelines; adjust Width, Depth,
Velocity, Falloff per point for natural variation.
3) Shape the terrain to fit
- With
Landmass enabled, rivers/lakes push/pull the landscape
automatically.
- For
manual control: Landscape Sculpt → Flatten the bed, Smooth
slopes, then a light Erosion pass to form deltas/inlets.
4) Waves, flow, and surface look
- In
each WaterBody’s Details:
- Water
Material:
start with UE’s default (supports foam/refraction). For
clarity/murkiness, tweak Absorption/Scattering colors.
- WaterWaves: choose Gerstner
sets for oceans (wind + wave amplitude/length/steepness). Smaller
wavelengths for lakes; low steepness for calm water.
- River
Flow:
set Velocity per spline point; add Flow Map if you need
detailed currents around bends/rocks.
- Foam: enable/boost near
Shoreline Foam; widen Foam Fade Distance for surfy coasts.
5) Underwater rendering
- Each
WaterBody creates an Underwater Post Process volume:
- Tune
Fog Color/Density, Caustics strength, and Refraction.
- Add
light shafts via Volumetric Fog + SkyAtmosphere for
god-rays.
- For
gameplay visibility, use a depth-based color ramp (clear shallow → murky
deep).
6) Shoreline integration (it sells the shot)
- Paint
a wet sand/shore landscape layer (dark, low roughness) within ~2–4
m of waterline; drive a wetness mask from distance-to-water
(Runtime Virtual Texture helps).
- Scatter
pebbles/reeds via PCG using Height < waterline + 50 cm
and Low slope filters.
- Place
decals (foam/scum, puddles) along the edge. Megascans has great shoreline
decals.
7) Reflections & lighting
- Lumen handles GI/specular
well; for hero mirrors (calm lakes), add a Planar Reflection actor
(use sparingly).
- Set
wind-aligned sun angles for readable normals; sunrise/sunset rakes look
best on waves.
- For
night scenes, add a subtle Moonlight Directional Light + Sky
Light capture.
8) Buoyancy, boats, and interaction
- Add
Buoyancy Component (or Water plugin sample) to boats/props; define Pontoons
for realistic roll/pitch.
- Niagara: splash emitters on
entry/exit; ribbon wakes following boat path (velocity-based spawn).
- Simple
Waterline mechanic: line trace to water surface, apply drag and
vertical dampening to actors.
9) Performance tips
- Keep
Water Mesh Tesselation sensible; reduce far Tessellation Factor.
- Lower
Planar Reflection resolution or turn off when off-screen.
- Use
Distance Field AO moderately; water absorbs shadows quickly.
- In
big worlds, rely on World Partition; keep water materials under ~80
instructions if possible.
10) Quick presets (copyable targets)
- Calm
Lake:
Wave Amp 1–3 cm, Length 0.5–1.2 m, Steepness 0.1–0.2; Foam off; Planar
Reflection on near camera only.
- Mountain
River:
Width 600–1200 cm; Velocity 300–800 cm/s; Depth 150–250 cm; Foam on bends;
Niagara foam streaks.
- Windy
Ocean:
Amp 30–60 cm, Length 10–25 m, Steepness 0.3–0.5; Multiple Gerstner sets
with different directions; Shoreline foam width 200–400 cm.
Common gotchas
- Black
water:
check Translucency settings & Scene Color for absorption;
ensure Sky Light recaptured.
- Z-fighting
shorelines:
raise/lower bed a few cm or add a thin shore mesh strip.
- Laggy
reflections:
disable/limit planar reflections; rely on Lumen/SSR.
SANDLAND
Here’s a production-ready recipe for believable sand
in UE5 (beaches, dunes, deserts).
1) Landscape material: dry, damp, wet
- Make
a master Landscape Material using LandscapeLayerBlend for:
- Sand_Dry
(bright, rough, loose grains)
- Sand_Damp
(darker, slightly smoother)
- Sand_Wet
(darkest, lowest roughness, a hint of specular)
- Break
up tiling with three scales per layer:
- Micro: fine grain normal
(0.02–0.06 m UV)
- Meso: ripples/rills
(0.2–0.6 m UV)
- Macro: dune
streaking/noise (10–50 m UV)
- Blend
normals via FlattenNormal and height via HeightLerp (use
each layer’s packed height map).
- Drive
roughness: higher for dry, lower for wet. Add a shallow Fresnel to
hint at grazing sparkle.
2) Shoreline wetness (auto)
- If
using UE Water: sample distance to waterline (via Runtime
Virtual Texture or custom distance field) to lerp Dry→Damp→Wet across
~2–4 m.
- Add
puddles with a low-frequency noise that only appears within the wet
band (height mask + roughness drop).
3) Dunes & forms (macro shapes)
- Sculpt
with Landscape Sculpt/Noise; then use Erosion lightly to
suggest slip faces.
- For
super detailed crests without heavy geometry:
- Use
POM (Parallax Occlusion Mapping) for ripple depth on close shots.
- For
real silhouette variance, convert local dune hero areas to Virtual
Heightfield Mesh (VHM) with a 16-bit heightmap; enable Nanite
on rocks/props nearby (not on VHM).
4) Directional ripples (wind-aligned)
- Create
a tangent-space ripple normal and rotate it by wind:
- Get
Wind Directional Source → material parameter (angle in radians).
- Build
a 2×2 rotation matrix to rotate UVs so ripples align with wind.
- Add
a secondary ripple rotated ±15–30° and blended at 0.3 strength to
break uniformity.
5) Footprints, trails, tire marks (interaction)
Cheap decals (fast):
- Use
Deferred Decal materials (DBuffer) to darken/roughen and
normal-indent footprints. Spawn on step/trace hits.
Dynamic deformation (higher fidelity):
- Write
to a Render Target height/normal map around the player and feed it
into the sand material (additive height). Fade over time for wind
“healing.”
- For
vehicles, spawn a spline-decal ribbon (Niagara) with scrolling
normal/roughness.
6) Wind FX (selling the scene)
- Niagara
blowing sand:
- GPU
sprites; sample landscape slope/height to keep low to ground.
- Spawn
rate scaled by wind speed; lifetime short (0.5–2 s), size tiny
(2–6 cm).
- Sheet
drift
over crests: mesh-based ribbon or world-space panner that only appears on
convex areas (use Curvature from distance fields or derivative of
height).
7) PCG scatter (micro-details)
- Use
PCG with slope/height masks:
- Debris: shells, pebbles
(low slope <10°, near water).
- Dune
grass/brush:
spawn in concave zones behind ridges (use wind shadow mask =
opposite-facing normals).
- Cull
aggressively and use HISM. Grass cards: masked, two-sided,
pivot-painter wind.
8) Lighting & color
- Sand
color shifts strongly with sun angle. Keep Directional Light
slightly warm; Sky Light captured after material work.
- For
noon glare, slightly increase specular on Wet layer; for sunset,
push subtle AO (Distance Field AO) to keep ripple contrast.
9) Performance guardrails
- Keep
the master sand material under ~80 node instr. Share textures across
layers (reuse the same normal with different intensities).
- Prefer
macro tiling over massive texture sizes; use VT (Virtual
Textures) for landscape.
- Limit
POM to near-camera via if (PixelDepth < threshold) or switch
with a Static Bool per material instance.
10) Quick presets (copy & tweak)
- Beach
near waterline
- Wet
width: 250 cm; Roughness 0.15; Specular 0.25
- Ripple
normal intensity: 0.35; Macro noise UV: 0.02
- Coastal
dunes
- Dry
dominance; Meso ripples UV: 0.35; Macro streaking UV: 0.005
- Wind-aligned
rotation: match Wind Source yaw; Secondary ripple strength: 0.25
- Desert
erg
- Dry
only; Macro dune noise UV: 0.002–0.006
- POM
steps: 24 (near), 8 (mid), 0 (far via switch)
- Niagara
sand drift density scaled by wind (0–1 → 0–500 sp/s)
Common gotchas
- Tiling: Always combine
micro/meso/macro and add per-instance color variance with a Rand
per-component node.
- Flat
look:
Ripple normals too strong or roughness too high—dial back normals,
introduce small specular.
- Footprints
shimmering:
Decal MIPs—clamp max MIP or increase decal size slightly; ensure DBuffer
is enabled.
MOUNTAINLAND
Here’s a clear, UE5-native workflow to make
believable mountains—fast and editable.
Quick-start (manual sculpting)
- Open
Modes → Landscape → Create (pick a reasonable size: 63×63 or
127×127 components for big worlds).
- In
Sculpt mode:
- Sculpt: block out the
main ridgelines.
- Flatten: establish
plateaus/saddles.
- Noise: add large-scale
breakup.
- Erosion: run a few light
passes to carve gullies.
- Smooth: only where needed
to remove stair-stepping.
- Use
Alpha Brushes (stamps) for peak silhouettes. Import a grayscale
alpha (cliff profiles, ridges) and stamp in with low Strength and broad
Falloff.
- Adjust
Landscape Z Scale (Details → Scale Z) to get the right elevation
exaggeration.
Non-destructive setup (highly recommended)
- Enable
Edit Layers (Landscape → Manage → Enable Edit Layers). Put “Base
Terrain,” “Ridges,” and “Erosion Pass” on separate layers so you can tweak
later without destroying earlier work.
Procedural options (faster & repeatable)
- Import
a heightmap:
16-bit PNG/RAW from Gaea/WorldMachine/Houdini or real-world DEM. In
Landscape tool choose Import from File, set correct Z scale
(meters).
- Landmass
Plugin:
Enable it, then add Landmass Blueprint Brush actors
(splines/volumes) to cut valleys or raise mountains parametric-style.
Great for roads through mountains and crisp cliffs.
- Landscape
Patch
actors: Add patches that apply noise/erosion to specific areas—stack them
like modifiers.
- PCG
(Procedural Content Generation): Use the Landscape as input to scatter
cliffs, boulders, trees by slope/height masks. It sells the
mountain scale instantly.
Materials that sell the height
- Create
a Landscape Material with a LandscapeLayerBlend (e.g., Rock,
Scree, Grass, Snow).
- Auto-blend
by slope/height:
- Use
VertexNormalWS → Mask (Z) for slope; lerp Rock on steep faces,
Grass on gentle slopes.
- Use
a HeightLerp (per-layer height textures) to reduce tiling.
- Add
Macro Variation (very low-frequency noise UVs) so distant views
don’t tile.
- Use
Runtime Virtual Texturing (RVT) to blend cliffs/meshes into the
ground—no harsh seams.
- For
hero cliffs, place Nanite rock meshes (Megascans) and blend their base
into the landscape via RVT.
Lighting & atmosphere
- Directional
Light + SkyAtmosphere + Volumetric Fog for depth.
- Set
correct World to Meters (Project Settings) and keep mountains in
kilometer scale.
- Use
Lumen for GI; adjust Sun angle to rake light across ridges
(early/late angles look best).
Detailing pass
- Carve
cirques and drainage lines with the Sculpt tool’s small
radius + low strength.
- Paint
scree at the base of cliffs; place decals for stratification and
stains.
- Scatter
boulders and debris via PCG biased to high-slope/convex
areas; trees on concave, mid-slope zones.
Performance checklist
- Enable
Nanite on large rock meshes.
- Keep
Landscape component size reasonable; use World Partition + HLODs
for huge worlds.
- Prefer
Virtual Textures for big landscape materials.
- Use
Virtual Shadow Maps for crisp mountain shadows at distance.
Common gotchas
- Over-smoothing
kills character—use it sparingly.
- Tiling
textures: fight with macro details, triplanar on cliffs, and RVT blending.
- Wrong
Z scale when importing heightmaps leads to flat “pancake”
mountains—double-check units.
GRASSLAND
Here are the main (and best) ways to get
convincing, performant grass in Unreal Engine 5—start with #1, then layer
others as needed.
1) Auto-spawned grass from your landscape
material (recommended)
- Make
(or open) your Landscape Material.
- Add
a LandscapeGrassOutput node.
- Create
one or more Grass Type assets (Content Browser → Add → Foliage →
Grass). In each Grass Type:
- Set
Mesh (a grass card/cluster static mesh).
- Tune
Density (instances per 10k uu²), Placement Jitter, Align
to Surface, Min/Max Scale.
- Set
Cull Distance (Start/End) for performance.
- Back
in the material, add LandscapeLayerSample nodes for the layers you
paint (e.g., Grass, Dirt, Rock).
- In
LandscapeGrassOutput, add an element per layer and assign the
matching Grass Type (so grass only appears where that layer is
painted).
- Paint
the “Grass” layer with the Landscape tool. Instances appear automatically
and stream efficiently.
Tips
- Use
SimpleGrassWind node (into World Position Offset) for subtle sway
(add a Material Parameter Collection so you can tweak wind speed
globally).
- Use
different Grass Types for near/mid/far with lower density and larger scale
as distance increases.
- If
you use Runtime Virtual Texturing (RVT) for the landscape, sample
it in the grass material to color-match and reduce tiling.
2) Hand-painting with the Foliage Tool (fast art
control)
- Open
Foliage mode. Add your grass meshes.
- Paint
on the landscape/meshes; tweak Density, Radius, Scale
X/Y/Z, Align to Normal, Cull Distance in the Foliage
panel.
- Use
multiple grass meshes (small tufts, broad clumps, flowers) with varied
densities for natural variation.
When to use: for local art direction (paths,
clearings, flowerbeds) on top of #1.
3) Procedural Foliage Spawner (rules-based)
- Create
a Procedural Foliage Spawner and one or more Foliage Types with
rules (growth radius, shade tolerance, slope/height limits).
- Add
a Procedural Foliage Volume in your level, assign the spawner,
click Resimulate.
Great for large worlds with biome-like distribution and slope/altitude constraints.
4) PCG (Procedural Content Generation) Graphs
(UE5+)
- Make
a PCG Graph that samples the landscape surface (and optionally
weightmaps/splatmaps), scatters points, then Spawn Static Mesh
nodes for grass clusters.
- You
get non-destructive, per-biome rules, filtering by slope/height/landscape
layer, and easy global re-seeding.
Best for open worlds and data-driven placement.
Grass mesh & material essentials
- Mesh:
use small clustered cards with varied normals; keep triangle count
low; create 2–4 LODs (or use Nanite if your foliage
meshes/materials are compatible in your UE version—avoid World Position
Offset on Nanite meshes).
- Material:
Masked, Two-Sided Foliage shading model, Dithered
Temporal AA for edges, SimpleGrassWind into WPO, Subsurface
Color slightly brighter than Base Color.
- Vertex
color: drive per-blade wind intensity and random hue/roughness variation.
Performance checklist
- Cull
distances:
aggressive for tiny tufts (e.g., start 3,000–5,000, end 8,000–12,000).
- Density: start low; scale
with player height and camera FOV.
- Shadowing: consider Capsule
or Virtual Shadow Maps selectively; disable dynamic shadows for far
LODs.
- HLOD
/ Instance Bucketing: keep instances batched; avoid too many unique
materials.
- Distance
fade:
blend to landscape detail normals or a low-cost “imposter” layer in the
distance.
- Test
in Stat Unit / Stat GPU and ProfileGPU; adjust densities per
platform.
Common gotchas
- No
grass showing? Check that the painted layer name matches the LandscapeGrassOutput
entry and that your Landscape Material is actually assigned to the
landscape.
- Too
much tiling/green wall? Add color variation via vertex color masks or
PerInstanceRandom, and use multiple meshes/material instances.
- Wind
looks rubbery? Reduce WPO amplitude, increase frequency slightly, and vary
per-vertex strength.
No comments:
Post a Comment