Fantasy Adventure Environment - A stylized asset pack (Built-in/URP)

[Asset store] [Documentation]
[Video] [PC Demo] [Rate/Review]

NEW! Universal Render Pipeline now supported in Unity 2019.3+. Complete with revised water shader. URP grass shader is available separately through the Stylized Grass Shader

An environment asset pack inspired by the current 3D adventure games and of old. This package focuses on providing artistically crafted environment assets.

Stylized vegetation dots the landscape as your hero traverses the world in search of adventure!

== Compatibility ==
All assets are designed for mid-high range PC and Console platforms (PS4/Xbox One). The downloadable demo runs at an average of 98 FPS across 1750+ benchmark reports.

Mobile and Web platforms are not supported. VR on PC has been tested with no issues.

== Features ==
➮ Custom shaders for trees and vegetation, to enable stylized rendering and animations
➮ Beautiful wind animations on trees and vegetation
➮ Foliage bends away from the player (not available in URP)
➮ Grass color blends with terrain (tiled terrain and mesh terrain support, not available in URP)
➮ LOD's and collision meshes for all assets that need them
➮ Tree billboard LODs, for optimal performance in open landscapes
➮ Tailored example environment scene

== Contents ==
▪ 18 types of plants
▪ 3 Spruce trees
▪ 3 Birch trees
▪ 3 Stylized trees
▪ 2 Willow trees
▪ 3 Palm trees
▪ 1 Pine tree
▪ 6 tree bark materials
▪ 6 terrain materials
▪ 7 Cliffs, to augment your terrain (2k textures)
▪ 4 small rock clusters
▪ Matching skybox panorama (up to 8k resolution)
▪ Lens flare texture atlas
▪ Animated localized sunshaft effects
▪ Fog sheet effect
▪ Falling leafs particle effect
▪ Wind trails particle effect
▪ Post Processing Stack profile and color grading texture (for v1 and v2)
▪ Legacy version of the Stylized Water Shader (URP installation features a reimagined version)

== Additional features ==
▪ Shaders support custom SpeedTree models
▪ GPU (indirect) Instancing supported
▪ Vegetation Studio Pro integrated shader controllers
▪ Cliff shader with (Triplanar) global color map and detail normals
▪ Cliff coverage (snow, grass, sand, etc)
▪ Tree shader supports color variation
▪ Shader GUIs with documentation toggles
▪ Editable Amplify Shader Editor or Shader Graph shaders

== Compatible with ==
Vegetation Studio
Vegetation Studio Pro (integrated shader GUIs)


Trello board:


- Tree trunks and branches not moving synchronously when Static Batching is enabled
- PigmentmapGenerator will now work with any uniform terrain size and position


- Custom inspector for CliffAppearance script
- Cliff coverage feature (snow, grass, etc)
- Demo scene to showcase the cliff coverage functionality

- Shaders now work correctly on OSX


- Billboard LODs for all trees. Allows you to have much more trees on screen.

- Tree branches turning black on DirectX 9
- Color bleeding on dead pine branches
- Wrong material on Cliff_E LODs

- Trees now have a capsule collider, so they work as terrain trees. Tree colliders have not been removed, you can use these instead if you wish
- The Trees Substance container has been split up, each tree type has it's own container now.
- Spruce_B is now a little more distinct from its counterparts.


- Grass blending with the terrain color is now 100% accurate, and no longer limited to the first 4 terrain textures.
- Random rotation parameter to GrassAtlas substance

- Polished demo scene some more + performance improvements
- Cliff shader, increased base-intensity of detail normal map
- Cliff prefabs, set collider to "Convex" by default, added an optional Box Collider component
- Seperated the grass substance from the vegetation container
- Dust motes now use the Sunshaft particle shader, so they react better to lighting conditions

- CliffAppearance reverting some values to prefab defaults on play
- Face normals on fern mesh


- Grass billboard texture, for use on the terrain

- Made vegetation meshes compatible with Vegetation Studio shaders
- Checked PigmentmapGenerator compatibilty with MicroSplat, made adjustments accordingly
- Improved usability of PigmentmapGenerator component

- Corrected normal map behaviour in branch substances
- Fixed Palm bark artifacts in substance material

- FAE_PigmentMap substance (obsolete)
- Standard Assets third person controller


- Custom material inspectors for the Foliage, Grass and Tree Branch shaders. Features buttons to toggle parameter descriptions.

- Removed the height- and pigment map functionality from the Foliage shader. Made a seperate "Grass" shader instead, which does have these features.
- WindController script, when added, now automatically tries to locate the FAE_WindVectors substance in the project
- PigmentMapGenerator clears the pigment map texture from the Grass shader when it is disabled. This avoids inadvertently using a pigment map from another scene.

- Grass animation not working when PigmentMap is deleted



- New forest floor Substance material for the terrain, featuring needles, moss, roots, rocks and leafs
- Ability to bake the Substance textures for the terrain automatically, to allow for easy itteration

- Refactored TerrainRock material, secondary and tertiary layers have been removed, more color properties have been added
- TerrainSnow material now has a sparkles effect when roughness is set to full




- Groundcover clovers, dead branches and two elephant ear plants
- Terrain sand material

- PigmentmapGenerator now also works with mesh terrains
- Recompiled shaders using Amplify Shader Editor v1.3.4 ("_MaskClipValue" parameter is now called to "_Cutoff", adjusted Shader GUI's accordingly)




- Palm_B and Palm_C tree assets (with LODs, billboards)
- Dead branches to palm trees with separate color controls
- Custom inspector for WindController script
- Option to visualize the wind vectors in the Foliage, Grass and Tree Branch shader GUI's

- Several warnings
- Substance baker target folder not saving correctly



- Collider meshes for Palm_B and Palm_C
- Pigment map generator now has options to flip or rotate the pigment map for mesh terrains
- Support for a custom pigment map

- Tree trunk gradient is now inverted, making the top darker instead of the bottom (ambient occlusion for trunks to be added)
- Made wind vectors less uniform (Wind response for trees will soon be improved)
- Pigment map generator now works with mesh terrains with centered pivots
- Minor UI improvements
- Reduced splatmap size in demo scene

- High trunk weight wind values elongating the trees


- Willow_A tree asset (with LODs, billboard and collider)
- Willow_B tree asset (with LODs, billboard and collider)
- Ambient Occlusion to tree trunks
- ShaderGUI for FAE/Tree Trunk shader
- Current Wind Controller settings information in Shader GUI's when help is toggled
- Option under GameObject menu to create a new Wind Controller object

- Wind response, Ambient Occlusion and Light Transmission for all trees has been improved and fine-tuned per tree type
- Corrected normals on Pine_A LOD meshes
- Corrected UVs of Spruce and Pine tree trunks so the material is less vertically stretched
- Lowered all trees 0.3 units, so the trunk doesn't appear to float on steep terrain surfaces

- Wind strength is now a shader function and thus can be changed during runtime
- Wind weight parameter in shaders is renamed to "MaxWindStrength"

- Light transmission now visible in shorter grass as well
- Improved grass wind color influence (only brightens, rather than darkening and brightening)

@StaggartCreations are you sure about the link ? For moment i have an error 404

Edit: just saw in your profile that the asset is not appearing yet :)

Yeah, should be about 2-3 weeks before it is approved, if it gets approved that is :P

Looking great! I just noticed that you can change the colors of all the cliffs at once using a script to change them all with one color picker. Is it possible to implement this for different hierarchies rather than for the whole scene? For instance, could I change the color of all of the cliffs in my tundra area while not changing the cliffs in my temperate area within one scene? Or would this only be possible by having the tundra and temperate regions in separate scenes?

If you create separate materials for all the rocks, a set for the temperate and one for the tundra, and assign them in the inspector, you'll be able to change them independently. So you'd end up having two objects with the CliffAppearance script attached in your scene, one for temperate and one for tundra rocks.

You could also save this object as a prefab to save the settings, as sort of a preset.


Oh wow, that's pretty cool! Thanks!

I've uploaded a demo build, which functions as more of a benchmarking tool. There's no loading behaviour, so expect a white screen for a minute or two: (154mb)

You'll be able to gauge how well the assets perform in an complete setting. Your PC specs and FPS will be logged in a database, which will allow me to see the demo's performance across other systems. Currently this information will not be publicly available until the front-end is more rigid. In any case, these statistics will help me out :smile:

Once you've completed a benchmark, you can enter an email address to enter a giveaway for an Asset Store voucher, 3 people can win out of the pool. This will be handed out after the package has been released.

On the beach you will find the first iteration of a new asset, which will be added in a later update.

Yes, I'm deliberately trying to get people to run the benchmark hahaha.


Just ran the demo and it all looks great! But the free-roam button at the end of the benchmark doesn't seem to work. I found out that pressing c does let you take control of Ethan though.

I ran the benchmark, worked pretty good.
I really like the way it all comes together.
The water seemed a little off however, on the banks when nearby it seems to be clipping the foam texture.

Also the free-roam button worked fine for me.

I found out there were two unnecessary polygons on the birch tree branch meshes. Removing these reduced the polycount of the birch trees by about ~30% without any visual change in silhouette or density. Oops.

Birch_A from 1.539 to 1.107
Birch_B from 661 to 469
Birch_C from 961 to 745

Full list of polycounts per asset can be found in the documentation:

After the package has been approved I will do an update, doing so now will probably put the package at the start of the queue :p

Thanks to everyone who ran the benchmark! Performance is pretty good overall (at least on dedicated GPU's), but could be better. I noticed the terrain was eating up +2000 drawcalls, which ate about 20 FPS in the editor alone, so I've fixed it.

Edit: Updated the benchmark build. Quality settings will now also toggle certain post effects. Runs much much faster now!


Just ran the benchmark on my Surface Pro 4 (I'm on vacation and don't have access to my desktop) and all I can say is wow! I was able to get an average of over 30 fps on this machine and it's only using Intel integrated graphics! (I was of course on the lowest settings however and at 1620x800 resolution) I didn't notice any major problems on the demo at all, and have to say that the optimization is great! I really think that by splitting the areas up and reducing drawcalls through occlusion works really well! I'm excited to run another benchmark on my desktop when I get home, awesome job Staggart!

1 Like

Can I haz video playthrough instead?

Noticed a significant increase in performance scores since I updated the benchmark, mostly doubled, so great! I'll make these results public once I find the time to make the front-end more sturdy.

Appended a section to the demo scene for the new pine trees, for now it's only one variant, but I'll be sure to add two more.

Polycount (and LODs): 962, 596, 436

Impression shot:

I've also added some new color options to the branch substances. So you can set up a color gradient on the branches, here's a giffy:


Darn, the package was rejected because Ethan was included. You will have to import the package separately to use the third person controller in the demo scene.

I will resubmit it today, along with all the updates and new assets.

- Branch substances now feature gradient options
- Pine_A tree
- Palm_A tree

- Added sections to demo scene for Pine and Palm trees to flurish
- Reduced polycount of birch trees by ~30% through branch mesh optimization
- Adjusted normals of spruce trees for better compatibility with other shaders
- Branch substances are no longer fixed to 1024px
- SnowCover slider on tree branch substances is now more accurate
- Recompiled shaders with Amplify Shader Editor v1.2.0.001
- Sunshaft effects now also receive fog

- Color grading texture, blacks taking on a red glow

Asset is released now :)



Beat me to it! :smile: Thankfully the re-submission only took a few days.

Please consider rating/reviewing the package once you're familiar with it. After three ratings an average will be displayed, which will help its store presence ;)

1 Like

You might come across this funky bug where the tree trunks move at a different speed from the branches

I've managed to fix it and will push it in an update today.

Quick reminder, you can still run the PC demo/benchmark for a chance to win a voucher key on September 1th:

The aforementioned update is now available, approval was super speedy :smile:

- Tree trunks and branches not moving synchronously when Static Batching is enabled
- PigmentmapGenerator will now work with any uniform terrain size and position

Also started prototyping a method for rendering tree billboards. That way I can add imposters to the tree LODs, which should allow you to place much more of them at a much smaller performance cost.

One problem I can forsee is that if you change the color properties of the branch, the billboard won't match. So I'll have to see if I can include the scripts to re-render the billboard yourself.

Will be adding a variant of the cliff shader which features snow coverage functionality. I want to add a control map feature, so it's possible to have the effect increase as the rocks move into, for instance, a snowy biome.