A Unity ID allows you to buy and/or subscribe to Unity products and services, shop in the Asset Store and participate
in the Unity community.
Discussion in 'Assets and Asset Store' started by TerraUnity, Nov 27, 2019.
How do you connect/disconnect nodes?
Edit : Figured it out, use filters.
Is this asset suitable for building 'strategic maps' for Strategy games?
Specifically, I'd like to take the map data from all of Europe (eg. 4000km wide), scale it to down to 2km inside Unity, and then place vegetation and texturing on top (at an exaggerated size)
Similar to something like this (ignore the UI):
I know there are other assets like Strategy Map kit, but I'd like to control the terrain generation process stack and not have all of the extra 'cruft' of that asset - as well as creating something that looks more unique.
Based on the reply on Discord: Please note that TW area size is capped at 32x32 km so you can't go higher unless you hack codes in Interactive Map. But your best bet is to have the heightmap of Europe from online resources (which are plenty of them) and use that as the base for TW to place assets on it as you wish.
In latest version of TW, you can create world, change terrain's heightmap to anything you want, turn on LIVE SYNC on WorldTools component and upon changing heightmap via Unity terrain settings menu, all placed layers in scene will adopt themselves to the new heights changes. A tutorial on this is coming soon.
That's via "INPUTS" section at below in node settings.
We have rolled up a new tutorial series to create a military-style FPS game using TerraWorld. We'll go through some basic level designing steps and learn how to load TerraWorld for the first time in Unity and create nodes in the HEGHTMAP graph. We'll have a detailed terrain surface for the environment by the end of this video.
Here is part 1 of the video:
I think i already know the question, but as i can't find it on F.A.Q/this thread, here it goes:
Is there any sort of terraforming in place? Or compatible with any third party terraforming asset?
And really cool tutorial the FPS one. Looking to see the episode 2!
That's absolutely possible since TerraWorld works on top of Unity's built-in terrain system so that all Unity built-in terrain tools and settings and any other 3rd party assets which work with Unity terrains are supported and will be in sync with them.
Using TerraWorld you can manually design the generated terrain and edit or replace it completely by WorldTools component alongside all the editing tools for generated/placed 3D layers in scenes. I'm going to present you simple quick tutorials gathered from our Discord server as follows:
Manually sculpting terrain heights or painting textures on terrain:
First you need to generate your world and then make sure LIVE SYNC option is enabled in WorldTools component on TerraWorld gameobject in scene. In this case, TW will detect terrain changes and update all placed layers based on the new heightmap or texture states. So you can bring up Unity's terrain sculpting tools and change heights using brush so that all layers will update and sync themselves with the new heights in real-time. You can also bring up painting brush and paint textures as you wish and set the Exclusion Percentage of each placed layer if you need to filter specific layers where there is a certain texture on ground.
To replace generated terrain with your own:
Using Unity's terrain settings panel, import your own raw heightmap so that upon importing, all placed layers will be updated and adopted on new terrain heights automatically. So import your own heightmap (e.g. Mars, Moon...) for the world terrain using Unity's built-in terrain tools and you will see that the layers will update and adopt themselves based on new heights.
You can do the same thing with new textures where placement updates.
Filtering placement based on painted textures or other 3D models underneath:
Besides editing brush in WorldTools or on each layer, there is automatic placement filtering which comes in 2 ways:
1 - Texture based filtering: Remove models where specific texture is painted underneath models:
For each GPU layer: . Find that layer in the scene hierarchy . Press EDIT PLACEMENT button from the inspector . Expand TERRAIN LAYERS (TEXTURES) FILTERING section . Define EXCLUSION PERCENTAGE for each texture on terrain Note: 0 means no exclusion happens and placement will remain as it is where 100 means fully exclusion of the placement for that texture
For each Grass layer: Find that layer in the scene hierarchy . Press EDIT PLACEMENT button from the inspector . Expand TERRAIN LAYERS (TEXTURES) FILTERING section . Define EXCLUSION PERCENTAGE for each texture on terrain Note: 0 means no exclusion happens and placement will remain as it is where 100 means fully exclusion of the placement for that texture
To edit placement for all GPU & Grass layers in the world:
Find TerraWorld gameobject in the scene hierarchy. Press EDIT WORLD button from the inspector. Select EDIT GPU LAYERS & EDIT GRASS LAYERS checkboxes. Expand TERRAIN LAYERS (TEXTURES) FILTERING section. Define EXCLUSION PERCENTAGE for each texture on terrain Note: 0 means no exclusion happens and placement will remain as it is where 100 means fully exclusion of the placement for that texture This will update placement for all placed layers in scene based on textures on terrains from one place and in a batch mode for faster world editing
Tutorial video showing it in action:
Continued in the next post...
2- Layer based filtering: Remove models where objects with specific layer(s) are underneath:
If it's a GPU layer, then select that layer in scene hierarchy and from the inspector, set LAYER MASK list to perform filtering:
If it's a Grass layer, then select that layer in scene hierarchy and from the inspector, firstly enable checkbox "CHECK LAYERS" which is disabled by default:
And then set LAYER MASK list to perform filtering:
Tutorial video showing it in action:
FYI, Tutorials on this will be released soon.
No TerraWorld on your desk yet? Grab it now with 50% OFF which is just started on AssetStore's Spring Sale: https://assetstore.unity.com/packages/tools/terrain/terraworld-automated-level-designer-156561
Create Detailed Environment For FPS Game In Unity by TerraWorld - Tutorial Series, Part 2
This tutorial covers basic texturing on generated terrain using satellite image and terrain layers as textures. We'll create a texturing node chain from scratch via COLORS tab in TerraWorld interface and use created area masks extracted from the heightmap. Finally we will replace simple colored terrain layers with MegaScans materials for the final splatmapping on surface.
When will you add SRP support?
I saw the posts where you say that it will appear in the coming days. But these posts are almost a year old.
How are things now? Is there an exact date?
Hi, thanks for asking, actually some of the items in our milestone had time shifting including SRP support but here you can see and estimation on each major release date: https://terraunity.com/milestone/
Join our Discord to get notified about latest changes: https://discord.gg/9J6Jk7B
Hey, just got the TerraWorld asset. Is there any news on the package's compatibility with Unity's Entities? I am referring to this error:
Library\PackageCache\email@example.com\Unity.Entities\Serialization\ManagedObjectBinarySerialization.cs(148,40): error CS0117: 'BinarySerialization' does not contain a definition for 'FromBinary'
I read in a different forum that it was under investigation as of December 2020.
This happens due to a class name conflict for "ToBinary" & "FromBinary" functions in entities package with one of the DLLs included in TerraWorld package and as the class name collision is inside a compiled DLL so the errors does not refer to any lines except entities package codes and so can't be tracked down for resolving.
So hopefully there is a temporary workaround for this which needs a little hack to get this working as follows:
While the Entities package installed in project, find the path of Entities package by expanding the "Packages" directory in Project pane in Unity, right click on Entities folder and select "Show in Explorer"
From your computer's file explorer, copy & paste the Entities cached directory "a folder named firstname.lastname@example.org" into somewhere else on PC
In Unity, go to Package Manager and uninstall Entities package from project
Manually drag & drop the copied entities package into the project so it will act as it is installed via Package Manager
Remove the conflict errors as described here: https://forum.unity.com/threads/ent...ting-in-existing-project.996827/#post-6720385
Note: This is an unsafe hack for bringing in Unity's built-in packages in project in order to bring write access to the scripts and solve the errors and conflicts so any future malfunctions is at your own risk. FYI, we also did it in several projects to sync Unity's packages with our custom projects with no issues at all.
You may also need to check Entities package time to time for newer versions and repeat the above steps to stay in sync with latest entities package updates.
@Kalificus Good news, the conflicts between Unity Entities package and TerraWorld have been resolved by our dev team and now you can use DOTS along with TerraWorld in your projects.
Next version comes with the fix.
I'm having a problem with TerraWorld. Everything works fine, I'm able to generate land, make textures and all that, but I am having a problem with it connecting to the internet. Due to this, I can't download any of the templates.
I noticed the terraunity.com site seems to be down at the moment, so I thought it was due to that. However, I just saw the YouTube video which Gamefromscratch released today which covered TerraWorld, and he seemed to be able to download templates fine.
Every time I try to sync the templates, it keeps saying I am offline and to check my internet connection and try again later, but as you can tell since I am able to send this, I am online. Do I have to do something to get it to work? If it helps I am on Windows and using Unity version 2020.3.8f1.
@Murble Thanks for reaching out. Our website is fine and doesn't seem like it was down when you posted this! Which country are you in? Asking because some Chinese users have issues with certain IPs and websites!
Also check if your network connection is properly setup to send/receive data from Unity which things like proxy, VPN, firewall, anti virus, router settings, inbound/outbound limits... affect this.
Anyways, you can also access content for TerraWorld directly from our website to download demo scenes and template packages from here: https://terraunity.com/community/
For templates: https://terraunity.com/community/forum/templates/
Hmm. I'm in New York and don't have a VPN currently running. I did go and disable NordVPN's LightWeight Firewall to see if that had anything to do with it, but no. I really am guessing then this problem has to do with me being unable to connect to the website, since both those links you put direct me to a site can't be reached page. I ran a diagnostic and did come up with 'Windows can’t find the host name "terraunity.com" using DNS.' I probably could swap my DNS to a public domain one like Google's, but that will cause some sites to not work properly, not to mention that means giving my network data over to Google which I don't mind, but it's weird.
It's strange how this is the only site to do this, and may be a network security setting I have ticked somewhere. So, for the time being, I guess I will make my own templates. At least everything else works as far as I'm concerned.
I imported the asset and noticed that the materials are not working.
I get the following error
Can't use materials with shaders which need tangent geometry on terrain, use shaders in Nature/Terrain instead.
This is happening for all materials from the asset.
I opened up the shader to see if I could figure out something, but it seemed too advanced for my knowledge.
My setup: MacOS Intel version, Unity 2020.3.3f1
Thanks for reporting, that's so weird because we never had a similar issue with our servers since they are US-based and never had any reports about this either. So please check back with it and let us know about the progress. You can follow up on this case through our contact email address or Discord here: https://discord.gg/9J6Jk7B
That warning you see on the material slot in the Terrain settings is just a reminder and happens to all custom terrain shaders in Unity.
FYI, errors mean logs in the Console window and if you encounter one, then take it as a bug and report back to us with the full log. Also regarding shaders, if they don't work then you see the object with flat pink color.
All the materials are actually pink.
Attaching screenshot for reference:
Seems like your project is based on one of the SRPs (HDRP, URP...) and TerraWorld only supports the Standard Rendering Pipeline as it is written at the very first lines of the product description on the store, see the public roadmap here: https://terraunity.com/milestone/
I plan to create planet Earth on a scale of 1:1. I can already read and generate terrain based on ALOS 30m, but I was going to start reading and generating trees now.
1- Can I, via script, make the asset generate land? (in this case, I will generate piece by piece of the planet)
2- Despite not having URP, would I be able to export the data to another urp project, updating the shaders / objects to make it work? (I have tools to replace everything)
No, TerraWorld is editor only solution for now and does not generate worlds in runtime. Take a look at our other product "TerraLand" which focuses on generating terrains as land and runtime streaming features.
Absolutely, if you export generated content from TerraWorld then you can use it in any projects in any render pipelines but it may be an advanced and time consuming process.
Create Detailed Environment For FPS Game In Unity by TerraWorld - Tutorial, Part 3 (TerraFormer)
In this video we'll learn how to utilize TerraWorld's advanced terrain shader "TerraFormer" and use its high-end features to maximize quality and details on our terrain surfaces in the generated world. TerraFormer will take Unity's Standard terrain shading to a whole new level by its modern features as the base for our generating world via a full artistic workflow used in latest high-end games.
hey there, i got this asset recently and testing it out. I looked over the tutorials and such but it was vague with the terrain layer creation. I know I'm jumping a step because i put in the diffuse, normal etc. but i cant get it to work with my own layers. Can some one help me out with that part, other than that the rest of the program is great, I wonder if i can modify the terrain (detail work) once i am done using the asset?
this is the error I get while trying my own layers.
Exception: Unknown Format!
TerraUnity.Edittime.TImage.SaveObject (System.String path) (at Assets/TerraWorld/Core/Common/Scripts/Sources/TImage.cs:125)
TerraUnity.Edittime.TObjects.OnGetAssetPath () (at Assets/TerraWorld/Core/Common/Scripts/Sources/TObjects.cs:43)
TerraUnity.Edittime.TObjects.get_ObjectPath () (at Assets/TerraWorld/Core/Common/Scripts/Sources/TObjects.cs:22)
TerraUnity.Edittime.TObjects.GetObject () (at Assets/TerraWorld/Core/Common/Scripts/Sources/TObjects.cs:57)
TerraUnity.Edittime.TTerrainGenerator.UpdateTerrainImagery (TerraUnity.Edittime.TTerrain tTerrainData, UnityEngine.Terrain terrain) (at Assets/TerraWorld/Core/Common/Scripts/Sources/TTerrainGenerator.cs:600)
TerraUnity.Edittime.TTerrainGenerator.ApplyTerrrain (TerraUnity.Edittime.TTerrain tTerrainData, UnityEngine.Terrain terrain) (at Assets/TerraWorld/Core/Common/Scripts/Sources/TTerrainGenerator.cs:462)
TerraUnity.Edittime.TTerrainGenerator.GenerateTerrain (TerraUnity.Edittime.TTerrain t, System.Int32 index) (at Assets/TerraWorld/Core/Common/Scripts/Sources/TTerrainGenerator.cs:371)
TerraUnity.Edittime.TTerrainGenerator.ApplyOnTerrain (TerraUnity.Edittime.TTerraWorld TW) (at Assets/TerraWorld/Core/Common/Scripts/Sources/TTerrainGenerator.cs:357)
TerraUnity.Edittime.TDebug:LogErrorToUnityUI(Exception) (at Assets/TerraWorld/Core/Common/Scripts/Sources/TDebug.cs:76)
TerraUnity.Edittime.TTerrainGenerator:ApplyOnTerrain(TTerraWorld) (at Assets/TerraWorld/Core/Common/Scripts/Sources/TTerrainGenerator.cs:363)
TerraUnity.Edittime.TTerraWorld:WhenAllDone() (at Assets/TerraWorld/Core/Common/Scripts/Sources/TTerraWorld.cs:386)
TerraUnity.Edittime.TTerraWorld:EachTerrainDone(TTerrain) (at Assets/TerraWorld/Core/Common/Scripts/Sources/TTerraWorld.cs:379)
TerraUnity.Edittime.TTerrain:WhenAllDone() (at Assets/TerraWorld/Core/Common/Scripts/Sources/TTerrain.cs:541)
TerraUnity.Edittime.<RunAllModulesAsync>d__63:MoveNext() (at Assets/TerraWorld/Core/Common/Scripts/Sources/TTerrain.cs:411)
TerraWorld has nothing to do with Unity terrain layers and you should already know the basics of Unity before jumping in. To setup a terrain layer in Unity follow these links:
A lot of people asked: How to create terrain layers from Quixel Megascans, or from any other PBR textures/materials?
Here you go:
First of all, a terrain layer is a built-in Unity asset which is used on terrain as materials for texture painting and blend on terrain surface. To create a terrain layer file in Unity follow these links:
Regarding the Mask Map slot in terrain layer which is the key part in PBR workflow rendering, read the following:
If you look at the above picture, you will see that each channel in the mask holds specific data as follows:
R = Metallic
G = Ambient Occlusion
B = Height
A = Smoothness
Look for TerraWorld included terrain layers in the realistic templates which also have Mask Maps in their terrain layers so that TerraFormer (TerraWorld's terrain shader) can use these map types and data for high-end rendering of surface.
For example, when you turn on Tessellation in the TERRAIN tab, if terrain layer has heightmap data in its B channel of Mask Map in terrain layer, it will displace the terrain surface based on that data.
So you can use any PBR materials on terrain including MegaScans materials/textures or if found online and feed them into Mask Maps' channels so that you can make a mask out of them to use in TerraWorld layers.
The way we make maskmaps in TerraWorld to include channels in the mask map from single map files is by this handy tool on GitHub: https://github.com/andydbc/unity-texture-packer
Note: Unity's built-in terrain rendering does not take Mask Map into account for rendering and it only uses Diffuse and Normal Map textures for legacy rendering but if you use TerraFormer on your terrain, then it will handle a full PBR workflow using Mask Map's data. Watch this tutorial regarding TerraFormer to get started:
Also this video on TerraFormer (TerraWorld's advanced terrain shader)
Very informative video tutorial and live interview with Amir Badamchi, CTO of TERRA:
TerraWorld Pro -- The Whole World In Unity in One Click*
Haven't played Alps Demo yet? Check it out here: https://terraunity.com/terraworlds-official-demo-scene/
How to increase terrain resolution for better texturing, more detailed heights, better terrain deformation under water areas, more precise models placement and generally a more detailed world; you can go into HEIGHTS tab and increase Heightmap Source's resolution as explained below:
Here's how you can manually bring up heightmap resolution to an arbitrary resolution value which is the first station in bringing a more detailed world... When BEST RESOLUTION is enabled, TW tries to get the optimal resolution from the original data on servers, but it may not be enough for further processing, so you can see what it outputs firstly (e.g. outputs 512 resolution heightmap in Terrain settings tab) and then give it an arbitrary number to increase resolution after world generation Also obviously the smaller the area is, the better resolutions and pixels will spread throughout the surface.
To add to this, further processors of "Smooth" & "Hydraulic Erosion" nodes in the heightmap chain play an important role in bringing the source heightmap to a more natural and detailed surface, so firstly increase the heightmap resolution as shown above and play with Smooth and Erosion filter settings to achieve the best looking and highly detailed surfaces down to cementer resolutions.
The technical overview of the whole heightmap process is that it takes the original heightmap from ESRI servers and not NASA and then TW resamples it to user-defined resolution (e.g. converts original 1k data to 4k) so heightmap will end up with millions of vertices to work with, then we add Smooth to take out banding artifacts and unwanted terraces and finally the Erosion brings it into life by using provided pixels in heightmap data. The whole process is shown in this vide tutorial:
If you want to know the global coverage resolution for the ESRI World Elevation service in TW see here: https://www.arcgis.com/home/item.html?id=3af669838f594b378f90c10f98e46a7f
TerraWorld creates water bodies from OpenStreetMap Landcover data to create rivers, lakes, seas and oceans. This is being handled by the Water Generator node in the BIOMES tab.
When Water Generator node is selected, you can change parameters and customize settings as shown in the following image:
The above settings will be taken into account before world generation but if you need to edit generated features afterwards, then watch the following video tutorial which covers this topic:
In addition, you can go ahead and change settings for water general settings like its color, reflection settings and... via VFX tab's WATER section as shown in the following image:
Note: In order to have better terrain deformation under water areas and more precise water mesh generation, read this post: https://forum.unity.com/threads/ter...al-world-locations.784217/page-6#post-7301287
All placed layers in TW generated scenes are under TerraWorld gameobject in scene, expand its children, find the layer you want to edit and press EDIT PLACEMENT button to reveal editing brush tools and other settings in inspector window.
Watch these video tutorials to get started:
In order to use your own art assets (model prefabs, textures, materials...) made by yourself or downloaded online or from AssetStore:
All you need to do is to go to the TW interface tabs, click on nodes and change their resources (e.g. prefab, texture, material...) plus all other needed parameters (e.g. density, input area mask) if you want to customize the placement.
So to have a graph and feed in your own art assets, you have 2 methods:
first is to create the entire graph and nodes by yourself by following our video tutorials and documentations plus getting help from us and our community
or go ahead and select one of the templates from the first tab and start editing its nodes and contents to customize Scatter nodes or any other settings you wish.
These video tutorials (along with latest tutorial series on our YouTube channel) will get you started on this topic:
Would love to see your creations with custom art assets like this on our #member-showcase channel on our Discord
Must See TerraWorld Tutorials: https://www.youtube.com/playlist?list=PLHZjBewgCVWfFqGb8a0FrRrUz_X3HgRo_
Create Detailed Environment For FPS Game In Unity by TerraWorld - Tutorial, Part 4 (Biomes):
Did you know that TerraWorld comes with an advanced grass/plant touch bending feature? It means your character/vehicle/NPC can interact with placed vegetation and grass blades in scene physically.
So to have touch bending on painted vegetation in the world, simply add "BendGrassWhenEnabled" or "BendGrassWhenVisible" component to any moving objects you want to have physics interactions with (Max. is 16 benders):
To quickly test grass touch bending in TerraWorld, add Shooter script to your camera and in Prefab slot, insert TerraBall prefab which comes with the package and go to the game, so each time you press Control on keyboard, it will fire a ball into the scene with setup bender on it:
In order to have live feedback of benders when you are in the editor, simply create an empty gameobject in scene and add component "Grass Bending Editor" to it so all bendings will take place even in the editor:
Here is the bending in action in the editor:
We'll add timed trails later so that bending will remain based on user-defined time and gets back to initial state after that time.
Here is the video in action:
More on Grass Layer in TerraWorld:
Grass Bending on 3rd Person Character:
Dense Grass Rendering:
How to add Grass layer in TerraWorld scenes tutorial:
Dense Grass & Vegetation Scattering Promo:
LAYER BASED PLACEMENT FILTERING FOR ALL PLACED GEOMETRY IN TERRAWORLD
TerraWorld comes with the LAYER BASED FILTERING option in WorldTools where you can setup a layermask to define placement filters on any placed models or surfaces in scene underneath all TerraWorld layers in the world in batch mode. This is in addition to layermask settings for each single layer having own settings for this.
This feature involves casting physics rays to the underlying surfaces to decide on placement based on setup layermask so it can detect any underlying models with physics on it for placement.
For instance, I have placed a mesh terrain surface in world and by using WorldTools' LAYER BASED FILTERING feature, I can define which layers I want to be placed on this surface instead of the main terrain in scene. This makes it possible to have a placement on the mixture of TW created terrain and hand placed models.
The mesh surface has its layer set to "Terra_Geometry" and has a mesh collider on it.
Going to WorldTools component on TerraWorld gameobject's inspector, we head over to the LAYER BASED FILTERING section and from there you can define layermask for all layers from one place.
As you notice, hand placed mesh surface now has all models placed on top of it.
You can exclude certain layer(s) for placement.
Or have the placement only happen on certain layer(s).
I have also done this with a hand placed rock model in scene where I wanted to have the grass and all other layers on it but exclude trees on it:
As you see, I have selected the tree layer under TerraWorld gameobject and set it to exclude "Terra_Geometry" layer for placement to remove tree models on the rock.
So you can do pretty much anything with these layers to do level designing and have fun with your creations
Do you know why TerraWorld can render huge detailed worlds inside Unity?
How to extract land cover data from satellite imagery in Unity by TerraWorld - Tutorial, Part 5
In the continuation of the series of videos related to using TerraWorld to create a highly detailed environment for use in military simulators, we will discuss other parts of the Biomes tab.
It should be noted that this video was made with the updated version of TerraWorld and this version will be available to you soon.
For the first time, we show you how to extract land cover data from satellite images to add vegetation (trees) to the environment.
How to add high density grass to the scenes - Tutorial, Part 6
In this video you will learn how to add high density grass to the created scenes. As you saw in the previous video [Part 05], we added more visual effects to the environment by adding trees to the terrain surface.
In the following, we will learn how to filter and extract Land Cover data from satellite images to add grass cover to the environment.
Do you want placed models (trees, rocks, grass, buildings...) to have interactions (collision, physics...) with your character, vehicle or NPCs?
You only need to drag & drop your character from scene hierarchy to the TARGET field in the Player tab:
And TerraWorld will take care of automatic collisions and interactions around the target(s).
See the following video tutorial which shows how this system works in TW:
Also download and import this demo in your project to get started with PLAYER tab which main character is set as a target and every model around him will become interactable and contribute to physics, also all NPCs use Runtime Navmesh to find their paths in combination to all interactable TerraWorld features:
And don't forget to disable DX11 Tessellation on terrain as it won't contribute to physics and your character may fall through the surface.
How to add and set free 3rd party assets in TerraWorld - Tutorial, Part 7
Finally, TerraWorld in HDRP & URP is here: https://terraunity.com/community/to...from-standard-rendering-pipeline-to-hdrp-urp/
Create Detailed Environment For FPS Game In Unity by TerraWorld - Tutorial, Part 8 (Object Scatter Node):
Drone The Rockies - Prototype Trailer - Made with TerraWorld
Create Detailed Environment For FPS Game In Unity by TerraWorld - Tutorial, Part 9 (Edit World Tool)