Jump to content

What's the proper way to import 3rd party created terrain into Gaia?


Recommended Posts

Hello, thanks for reading my post.


My end goal is to be able to create terrain in another program (Atlas Terrain) and import it into Gaia for texturing. 


Here is what I did.


I created my terrain with Atlas Terrain. I then saved the terrain as a prefab and packaged it and its data as a Unity Package and saved it to my desktop.


I started Gaia and created a terrain.


I then deleted the Gaia created terrain, imported my Unity Package that contained my Atlas Terrain and data and nested the Atlas created terrain under the "Gaia Terrains" object.


Finally, I adjusted the x, y, z values of the transform of my Atlas Terrain to match those of the Gaia terrain that I created.


Believe it or not, everything mostly worked. I was able to texture the terrain perfectly using all of Gaia's tools. So, I was pretty happy at first.


But, when I tried to add and remove trees, that is when I realized that something was broken. Well, actually, I can add the trees just fine, but I can't clear them from my terrain. When I try to, I get the error below and Unity crashes. Any help would be GREATLY appreciated. I would really love to be able to seamlessly use both of these tools. Thank you.


MissingComponentException: There is no 'Terrain' attached to the "AtlasTerrain" game object, but a script is trying to access it.
You probably need to add a Terrain to the game object "AtlasTerrain". Or your script needs to check if the component is attached before using it.
Gaia.TerrainHelper.ClearTreesOnSingleTerrain (UnityEngine.Terrain terrain, Gaia.Spawner spawner, Gaia.ClearSpawnFrom clearSpawnFrom) (at Assets/Procedural Worlds/Gaia/Scripts/Utils/TerrainHelper.cs:1245)
Gaia.TerrainHelper+<>c__DisplayClass31_0.<ClearSpawns>b__2 (UnityEngine.Terrain t) (at Assets/Procedural Worlds/Gaia/Scripts/Utils/TerrainHelper.cs:1199)
Gaia.TerrainHelper.ClearSpawns (Gaia.GaiaConstants+SpawnerResourceType resourceType, Gaia.ClearSpawnFor clearSpawnFor, Gaia.ClearSpawnFrom clearSpawnFrom, System.Collections.Generic.List`1[T] terrainNames, Gaia.Spawner spawner) (at Assets/Procedural Worlds/Gaia/Scripts/Utils/TerrainHelper.cs:1232)
Gaia.Spawner.ClearTrees (Gaia.ClearSpawnFor clearSpawnFor, Gaia.ClearSpawnFrom clearSpawnFrom, System.Collections.Generic.List`1[T] terrainNames) (at Assets/Procedural Worlds/Gaia/Scripts/SpawningSystem/Spawner.cs:5663)
Gaia.GaiaSessionManager.ExecuteClearSpawns (Gaia.GaiaOperation op, Gaia.Spawner spawner) (at Assets/Procedural Worlds/Gaia/Scripts/SessionSystem/GaiaSessionManager.cs:5292)
Gaia.GaiaSessionManager.ClearSpawns (Gaia.ClearOperationSettings clearOperationSettings, Gaia.SpawnerSettings spawnerSettings, System.Boolean executeNow, Gaia.Spawner spawner) (at Assets/Procedural Worlds/Gaia/Scripts/SessionSystem/GaiaSessionManager.cs:2454)
Gaia.BiomeControllerEditor.DrawClearControls (System.Boolean helpEnabled) (at Assets/Procedural Worlds/Gaia/Scripts/SpawningSystem/Editor/BiomeControllerEditor.cs:265)
PWCommon5.EditorUtils.Panel (UnityEngine.GUIContent panelLabel, System.String helpKey, System.Action`1[T] contentMethod, UnityEngine.GUIStyle labelStyle, System.Boolean ignoreGuiChange, System.Boolean defaultStatus, System.Boolean showVersionNumber, UnityEngine.GUILayoutOption[] options) (at <5e780e565d3b4b63836c767b4e8e9d7f>:0)
PWCommon5.EditorUtils.Panel (UnityEngine.GUIContent panelLabel, System.String helpKey, System.Action`1[T] contentMethod, System.Boolean ignoreGuiChange, System.Boolean defaultStatus, System.Boolean showVersionNumber, UnityEngine.GUILayoutOption[] options) (at <5e780e565d3b4b63836c767b4e8e9d7f>:0)
PWCommon5.EditorUtils.Panel (System.String nameKey, System.Action`1[T] contentMethod, System.Boolean defaultStatus, UnityEngine.GUILayoutOption[] options) (at <5e780e565d3b4b63836c767b4e8e9d7f>:0)
Gaia.BiomeControllerEditor.OnInspectorGUI () (at Assets/Procedural Worlds/Gaia/Scripts/SpawningSystem/Editor/BiomeControllerEditor.cs:557)
UnityEditor.UIElements.InspectorElement+<>c__DisplayClass62_0.<CreateIMGUIInspectorFromEditor>b__0 () (at <15eb405d1d86410cb79965dfce1611d5>:0)
UnityEngine.GUIUtility:ProcessEvent(Int32, IntPtr, Boolean&)



Link to comment
Share on other sites

The best advice I can give on this topic would be see if you can bring in the atlas terrain as a game object or mesh. 
Then go to the Gaia Manager - Advanced Tab - Tools - Scanner. 
Then drag the object to the (drop area). 

Make sure nothing is above the terrain as it raycasts down.
What this does is create a .exr file. 

Then you will be able to create a terrain through the normal process of Gaia. 
Just make sure to use the Manual with stamper as the operation. 

Then you can click on the stamp browser - go to scanner exports. 
Stamp the terrain and now you have a working terrain through your normal way and its the same as the atlas terrain that you made just in Gaia / Unity fashion. 

Then you are good to proceed the normal process. 

Link to comment
Share on other sites

Thanks for the response Bryan. I actually found the solution messing around yesterday. It's actually quite simple. The only thing I had to do is make sure that I renamed my imported Atlas terrain to the same name as the Gaia generated terrain. I then deleted the Gaia generated terrain and everything worked perfectly. Hopefully my experience can prove useful to others seeking to combine Atlas and Gaia in their workflow.

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Tell a friend

    Love Canopy - Procedural Worlds? Tell a friend!
  • Need help?

    We work with some of the biggest brands in global gaming, automotive, technology, and government to create environments, games, simulations, and product launches for desktop, mobile, and VR.

    Our unique expertise and technology enable us to deliver solutions that look and run better at a fraction of the time and cost of a typical project.

    Check out some of our non-NDA work in the Gallery, and then Contact Us to accelerate your next project!

  • Create New...