Disclosure: This website contains affiliate links, which means we may receive a commission if you click a link and purchase something through our website. Purchasing assets through our links won’t cost you any extra money and will help fund the hosting and development of this site.
Digger is a simple yet powerful tool to create natural caves and overhangs on your Unity terrains directly from the Unity editor.
Forum | Doc | Discord
More and more AAA games add gentle overhangs and caves to their environment to make it more realistic, more interesting and more diversified.
A common way to do this is to create 3D models with an external modeling tool, and then place them manually over the terrain and blend them with it. This is tedious, unpractical and inefficient unless you have an army of 3D artists and level designers... and even in that case, you'd probably want them to focus on more valuable work.
This is where Digger comes to action. No more external tool required, no more loss of time, no more headache. It lets you create caves and overhangs on your terrain directly within the scene view, in a few clicks.
It will make you feel like you have a voxel terrain in your hands, without the downsides. It actually keeps the new, fast and reliable Unity's terrain system and creates seamless cave/overhangs meshes just where you need. Internally, Digger uses voxels and Marching Cubes to create meshes, but instead of replacing the entire terrain with a voxel terrain, it creates a mix of them and gives you the best of both worlds.
With this tool, you will be able to:
- Dig in your Unity terrain just like if it was a smooth voxel terrain.
- Create overhangs (the opposite of digging).
- Apply different textures on the overhangs, in the caves, etc.
However, you won't be able to:
- Dig in real-time and at runtime.
- Generate caves procedurally.
If you need these features, you should get a full voxel-based terrain solution, like Ultimate Terrains.
« Wait! I heard that Unity 2019 will have caves built-in, so why should I buy this? »
As things stand, Unity plans to give a clean way to cut holes in the terrain, that's all. A hole is not a cave, it's just about cutting a piece of terrain so you can, for example create the entrance of a tunnel. Actually, when this feature will be available, Digger may become even more powerful as it should be an excellent companion for terrain holes feature.
Full feature list:
- Easy to setup
- Dig/add mater on terrain
- Paint texture on cave meshes
- Reset back to terrain (locally)
- Set higher resolution for Digger generated meshes
- 'Sync & Refresh' button to recompute everything (useful if terrain textures or terrain heights changed)
- 'Clear' button to remove all modifications made with the tool
- Automatic collision solver
- Create LOD groups (for caves/overhangs meshes) automatically
- Remove grass and details automatically
- Persists modifications on the fly
- Multi-terrains support
- Add triplanar mapping to standard terrain shader
- Includes a triplanar mapping shader for meshes that is equivalent to the terrain shader
- Supports CTS, but without the possibility to change textures of meshes. Texture can only be the same as terrain texture above. This should become possible in a future version of CTS.
- NEW: now compatible with WebGL
- Doesn't work properly with terrain lightmapping
- Until Unity releases the official terrain holes feature, Digger has to create bigger meshes to handle collision. Most of the time, you should not care about this, but if you cover your entire terrain with caves and overhangs, there will be an impact on performance. If this is what you want to do, you should get a full voxel-based terrain solution, like Ultimate Terrains.
- HDRP/LWRP support (waiting for triplanar mapping in HDRP/LWRP terrain shaders)
Features that will have to wait for the official Unity's terrain hole feature:
- Lightmap support in caves (light passing through terrain holes), depending on feasibility
Digger requires Unity 2018.3 (or a more recent version) as it's built on the new terrain system. It also requires Burst, Collections and Mathematics packages.