Search Unity

Map Magic World Generator - a node based procedural and infinite game map tool

Discussion in 'Assets and Asset Store' started by Wright, Mar 10, 2016.

  1. neoshaman

    neoshaman

    Joined:
    Feb 11, 2011
    Posts:
    6,493
    @Der_Kevin
    Great jobs, I'm interested in similar thing

    I'm very interested in that too, I'm not there yet so it won't hurt if I don't have to experiment :D
     
  2. Wright

    Wright

    Joined:
    Feb 26, 2013
    Posts:
    2,277
    Der_Kevin, looks really pretty! Right now I'm working on Voxeland integration and plan to deal with splines and roards a bit later, but anyways thanks for the hint to look at A* pathfinding.

    Maybe I will need it, but not today. In this case I'll know the man to contact :)

    Guess for the first one you can use the Object Output with some empty objects with tags. And the way to continue splaine on the other chunk is really a big question. This topic raised somewhere in the beginning of this thread, and still the answer is misty.



    As far as I know 5.5.0f1 is still in beta - at least it could be downloaded from the beta page. I'm aware of the profiler bug, it will be fixed this weekend and fixed version will be most likely available next week.
     
    pixelsteam, HittmanA and Der_Kevin like this.
  3. Jesus

    Jesus

    Joined:
    Jul 12, 2010
    Posts:
    504
    Hopefully this doesn't nuke mah hosting limits, but here's the video of a run south from the equator for that game I posted earlier. It's a bit out of date (changed lighting since then) and the performance isn't great (actually it's just the drawcalls are still above 3k). Also there's some funny highlighting on the tropical and woodland plants, so ignore that.

    Click to view
     
    Wright and pixelsteam like this.
  4. HittmanA

    HittmanA

    Joined:
    Jul 27, 2016
    Posts:
    45
    Thanks @Wright ! Quick Question: I made a terrain with MMWG and I have the resolution at 1024. Problem is it takes about a full minute to load the terrain when playing the game. Is there a way to improve performance without majorly degrading quality?
     
    pixelsteam likes this.
  5. pixelsteam

    pixelsteam

    Joined:
    May 1, 2009
    Posts:
    924
    Dear Jesus, great work!!! Now if you can do a detailed video on how you did the biomes structure, as I find Wrights video to be VERY confusing.
     
  6. HittmanA

    HittmanA

    Joined:
    Jul 27, 2016
    Posts:
    45
    It is slightly confusing; however, a little patience yields great results. If you would like, I may be able to make a video on how to combine and make biomes.
     
    pixelsteam likes this.
  7. Wright

    Wright

    Joined:
    Feb 26, 2013
    Posts:
    2,277
    That really looks great! The only trifle I'd like to recommend is setting scale to 2 in Height Outputs. This will make the terrain more smooth, preventing occurrence of the visible edges.

    It's hard to say for sure without seeing the graph. Maybe too many erosion iterations or something. The ultimate advice for increasing performance is to lower the terrain size and resolution and to increase number of threads at the same time. For instance 4 terrains with resolution of 512 can be split in 4 threads instead of one for single 1024 terrain.

    Sorry, I didn't meant to make them confusing, but probably I've just missed something that I assume obvious as a developer. It would be really cool if you could make your own video!
     
    HittmanA and pixelsteam like this.
  8. pixelsteam

    pixelsteam

    Joined:
    May 1, 2009
    Posts:
    924
    Yes I would like ;)
     
    HittmanA likes this.
  9. pixelsteam

    pixelsteam

    Joined:
    May 1, 2009
    Posts:
    924
    Wishing that MapMagic had a faceted look ... I used Polyworld to convert a MM terrain.
     
  10. HittmanA

    HittmanA

    Joined:
    Jul 27, 2016
    Posts:
    45
    Ok. So if I have (don't start laughing) 24 terrains of 1024 I would need 24 threads?
    Great! Once I finish work I will make a video. Anything particular you would like to see?
     
  11. HittmanA

    HittmanA

    Joined:
    Jul 27, 2016
    Posts:
    45
    Wow that looks good!
     
    pixelsteam likes this.
  12. pixelsteam

    pixelsteam

    Joined:
    May 1, 2009
    Posts:
    924
    Just really basic...here is a desert biome, here snow biome, here is a forest biome. This is the process to blend them..if it was only that easy ;)
     
  13. HittmanA

    HittmanA

    Joined:
    Jul 27, 2016
    Posts:
    45
    Ok great! I will try to be specific on how the blending works and how to make biomes :D
     
    pixelsteam likes this.
  14. Jesus

    Jesus

    Joined:
    Jul 12, 2010
    Posts:
    504
    My biome structure has changed a lot, basically every biome (ice, tundra, pine forest, woodlands, savanna, desert, etc, all ~10 of them) now has 4 sub-biomes; think of something like the savanna, where you might have the low areas where the water and sediment collects, the high areas facing the wind, the slightly more lush areas and the open fields. So it's not a uniform area, but kinda patchy. TBH, if you thought Wright's video was confusing, consider that I need a key'd and labelled map to move around my system, so I wouldn't exactly say it's safe for human consumption.

    Since they are all reliant on simulated climate data, in theory I should be able to plug the current lookup node into a biome node like Wright's example, but I haven't got around to it.

    I might give that a go. Since I'm still prototyping, I've been keeping to 512 res maps for a large terrain size, to keep the generation time really low. I'll see how it affects gen time.
     
  15. HittmanA

    HittmanA

    Joined:
    Jul 27, 2016
    Posts:
    45
    Ok @pixelsteam sorry I didn't get the tutorial done yesterday. I had a long day, but it will be done today.
     
    Last edited: Dec 2, 2016
    Hormic and pixelsteam like this.
  16. tanoshimi

    tanoshimi

    Joined:
    May 21, 2013
    Posts:
    297
    Hi @Wright - did you get a chance to upload the "Profiler does not exist in the current context" fix for 5.5? Now that it's out of beta I imagine lots more folk are going to be encountering this profiler error pretty soon (as I just have!)....
     
  17. tanoshimi

    tanoshimi

    Joined:
    May 21, 2013
    Posts:
    297
    For now, I've I fixed it by adding using UnityEngine.Profiling; to the top of Chunk.cs, Generator.cs, and MapMagicWindow.cs, which seems to have done the job...
     
  18. tanoshimi

    tanoshimi

    Joined:
    May 21, 2013
    Posts:
    297
    A couple of other bug reports for you... (using v1.7):

    1.) The "Apply Terrain Colliders" checkbox works well to prevent colliders being added to chunks that don't need them when they are first created. However, at times (such as if you click the "Pin Terrain" button in play mode), you'll get a missing component exception from line 411 of Chunk.cs, since that still assumes that every chunk will have a collider component on it:

    Code (CSharp):
    1. terrainCollider = terrain.GetComponent<TerrainCollider>();
    2. terrainCollider.enabled = MapMagic.instance.applyColliders;
    2.) At the start of Play mode in some of my scenes, I'm getting an exception caught by the catch block on line 300 of Chunk.cs "Generate Thread Error: System.ArgumentException: An element with the same key already exists in the dictionary."?
    Disabling Multithreaded mode removes the error, but obviously makes the map take longer to generate :(


    3.) Possibly related to 2.), when this occurs, one of my terrain chunks doesn't get textured properly (see screenshot)
    mm_bugs.jpg


    Any assistance you can offer would be gratefully received! Let me know if you need any more details. Thanks.
     
    Last edited: Dec 3, 2016
  19. Wright

    Wright

    Joined:
    Feb 26, 2013
    Posts:
    2,277
    I've submitted the fixed version in Thursday, it's pending Unity review. Here is a quick fix.

    Are you using "Debug" mode (it could be turned on/off in General Settings)?

    For the next version I will simply fix it this way: if there is no collider then there is no reason to disable it:
    Code (CSharp):
    1. if (terrainCollider==null) terrainCollider = terrain.GetComponent<TerrainCollider>();
    2. if (terrainCollider!=null) terrainCollider.enabled = MapMagic.instance.applyColliders;
     
  20. tanoshimi

    tanoshimi

    Joined:
    May 21, 2013
    Posts:
    297
    Yes I am! I found it really useful to see the generation times of each generator in the graph during development. I notice it's not documented though - is it not meant to be turned on generally?
    I've now tried toggling debug mode off, but that gives me a different error :(

    Code (CSharp):
    1. InvalidOperationException: out of sync
    2. System.Collections.Generic.Dictionary`2+Enumerator[System.Type,System.Object].VerifyState () (at /Users/builduser/buildslave/mono/build/mcs/class/corlib/System.Collections.Generic/Dictionary.cs:912)
    3. System.Collections.Generic.Dictionary`2+Enumerator[System.Type,System.Object].MoveNext () (at /Users/builduser/buildslave/mono/build/mcs/class/corlib/System.Collections.Generic/Dictionary.cs:835)
    4. MapMagic.Chunk+<ApplyRoutine>c__Iterator0.MoveNext () (at Assets/MapMagic/Main/Chunk.cs:318)
    5. UnityEngine.SetupCoroutine.InvokeMoveNext (IEnumerator enumerator, IntPtr returnValueAddress) (at C:/buildslave/unity/build/Runtime/Export/Coroutines.cs:17)
    6.  
     
    Last edited: Dec 4, 2016
  21. recon0303

    recon0303

    Joined:
    Apr 20, 2014
    Posts:
    1,634
    has anyone had good luck with this asset performing well? with Android?
     
  22. UltraTM

    UltraTM

    Joined:
    Dec 8, 2013
    Posts:
    221
    Hello :),

    for learning im using the demo island scene.
    But there are always some trees spawing underwater but they are set to grass and not sand.
    BUt they are spawing on sand underwater.

    How can i fix this?

    Thx :)
     
  23. terravires

    terravires

    Joined:
    Mar 27, 2013
    Posts:
    103
    @Wright I'm getting errors with MM 1.7 + your updated fixes for unity 5.5 on Unity 5.5f3.

    This is a project that was working on Unity5.4 with MM 1.6.

    Code (CSharp):
    1. Generate Thread Error:
    2. System.NullReferenceException: Object reference not set to an instance of an object
    3.   at MapMagic.Generator.CheckClearRecursive (MapMagic.Chunk tw) [0x0001b] in \Assets\MapMagic\Main\Generator.cs:285
    4.   at MapMagic.Generator.CheckClearRecursive (MapMagic.Chunk tw) [0x00032] in \Assets\MapMagic\Main\Generator.cs:288
    5.   at MapMagic.Generator.CheckClearRecursive (MapMagic.Chunk tw) [0x00032] in \Assets\MapMagic\Main\Generator.cs:288
    6.   at MapMagic.Chunk.ThreadFn () [0x00091] in \Assets\MapMagic\Main\Chunk.cs:175
    7. UnityEngine.Debug:LogError(Object)
    8. MapMagic.Chunk:ThreadFn() (at Assets/MapMagic/Main/Chunk.cs:301)
    I've tried deleting the entire MM folder and importing again without success. Any suggestions?
     
  24. makeshiftwings

    makeshiftwings

    Joined:
    May 28, 2011
    Posts:
    3,350
    EDIT: Never mind, I fixed it. Had nothing to do with MapMagic. :oops:


    Are there release notes for today's update? It's causing Unity 5.5 to refuse to compile but not throw any specific errors on my end whereas it was fine before the update... I'm doing some weird stuff with the compiler so it's probably related to that but it would help tremendously to know what classes were changed so I can narrow down what's causing it.
     
    Last edited: Dec 6, 2016
  25. tanoshimi

    tanoshimi

    Joined:
    May 21, 2013
    Posts:
    297
    I made v1.7 compatible with Unity 5.5 by adding the references explained in my post a few above this one. I expect the changes were similar to that.
     
  26. makeshiftwings

    makeshiftwings

    Joined:
    May 28, 2011
    Posts:
    3,350
    Yeah it looks like that's all that it was; my problem turned out to be something completely unrelated. Just coincidental timing.
     
  27. Wright

    Wright

    Joined:
    Feb 26, 2013
    Posts:
    2,277
    tanoshimi, I've fixed a debug error (the fix will be available in the next version), but the second error is something that I've never encountered. It seems that one thread (chunk) is affecting the other one. Are you using any custom generators that write to the other chunk data?

    recon0303, I've tried the demo scene on my HTC One and it seems that it works and generates quite well, but this scene was not made for mobile platforms so graphic performance was patchy. Generate time was about twice as long as on my PC, so I'd like to recommend using lower resolution (and probably smaller terrain size) and avoid such generators like erosion or forest.

    terravires, odd thing, it looks like the lines listed in the error are just a comment and an empty line. Have you tried downloading 1.71 from asset store and perform the clean install (with removing the previous version), haven't you?

    makeshiftwings, MMWG v.1.71 release notes:
    Unity 5.5 compatibility. Chunk.cs, Generator.cs, Window.cs have a profiler namespace added by using this lines:
    Code (CSharp):
    1. #if UNITY_5_5
    2. using UnityEngine.Profiling;
    3. #endif
    Actually, that's all for now BUT there were some miscellaneous fixes to 1.7 before without version number change, but I doubt that they could cause this sort of compiler bug. Did you find out what caused that problem?

    UltraTM, yeah, it's the tutorial omission. Trees scatter generator should have the same probability mask that is used for forest generators. Something like this:
    TutorialUnderwaterTrees.gif
    The forest generator does not remove the initial tree seedlings, so you'll have to do it manually using scatter mask.
     
    Last edited: Dec 6, 2016
  28. makeshiftwings

    makeshiftwings

    Joined:
    May 28, 2011
    Posts:
    3,350
    Yes, it was completely unrelated to MapMagic... updating just caused it to recompile which triggered a separate problem.
     
  29. tanoshimi

    tanoshimi

    Joined:
    May 21, 2013
    Posts:
    297
    Thanks for the reply - I am using several custom generators and, although they appear to work as intended, I wouldn't be surprised if I haven't made a mistake in one of them! Our game is sidescrolling 2D, so we've created "2D variations" of some of the built-in generators like Scatter (to make it only scatter objects along a line at a set Z distance). We've also created custom generators like "Place" (to output an object at a particular specified position in world space) and "Pick" (to randomly choose one from multiple inputs). I'm certainly not intending to affect other chunks other than the one currently being considered with any of these :)

    I'll try disabling branches of the graph and see if I can isolate a particular generator that is causing the problem - thanks for the guidance.
     
    malkere likes this.
  30. hoodoo

    hoodoo

    Joined:
    Oct 19, 2012
    Posts:
    154
    I'm having some problems with errors in Map Magic. I am using 5.4.2 and was using MM 1.4 while going through the "Unity Level Design Tutorial with Map Magic". I got to the stone placement part of the tutorial, around 55 or so minutes into the video, and started seeing the Unity Editor slow way down. I was getting "group < 0x7fff" errors in UnityEngine.Object:DestroyImmediate(Object).

    I then upgraded to MM 1.7 but now things are still very slow, and when I try to click in the MM graph to connect two nodes, all the nodes disappear on mouse down and I see this error:

    NullReferenceException: Object reference not set to an instance of an object
    MapMagic.MapMagicWindow.DrawWindow () (at Assets/MapMagic/Editor/MapMagicWindow.cs:398)
    MapMagic.MapMagicWindow.OnGUI () (at Assets/MapMagic/Editor/MapMagicWindow.cs:271)

    Now it seems I cannot edit the graph any longer. I have tried reloading Unity, force generate all and everything else I can think of. I'm hoping there's a way to recover from this so I don't have to restart the whole tutorial. I know it's not production work, but this will still cost time. Any thing I can do to recover?
     
    Last edited: Dec 7, 2016
  31. Wright

    Wright

    Joined:
    Feb 26, 2013
    Posts:
    2,277
    You've encountered one of the Unity limitations: there could not be more than 32000 objects with LODs. It's not the matter of MapMagic in general, this issue occurs when using too many instances of objects with LODGroup component in any scene. Consider reducing objects count, or using trees instead of objects where possible (tree imposters work faster then transforms with LODGroup and do not have 32K objects limitation), or try disabling lods at all for primitive objects.

    Could you please send me your scene? It would be great if you could send the scene that was not saved with MMWG 1.7 - I'll try to find out what caused the bug and recover scene anyways, but the initial scene will help.
     
    Last edited: Dec 7, 2016
  32. tanoshimi

    tanoshimi

    Joined:
    May 21, 2013
    Posts:
    297
    @hoodoo, @Wright - I've encountered that error too, but it was accompanied by a notification in the console: "Could not find the proper graph data. If the data file was changed externally reload the scene, otherwise create the new one in the General Settings tab." and, sure enough, the "Data" slot in the inspector was showing "None". I clicked create and it resolved it.

    Incidentally, this is an area that I still don't feel is documented very well - when do I need to "Save" the graph data? I edit the graph in the editor and save the scene and it seems to work fine, so when do I need to save it out as a separate asset? Should we be doing that before each upgrade to minimise the chance of these sorts of errors?
     
  33. tanoshimi

    tanoshimi

    Joined:
    May 21, 2013
    Posts:
    297
    @Wright - Ah-hah! I think I understand the problem and I can consistently recreate the "out of sync" error very simply as follows:

    - Create a new "default" graph containing only Noise -> Curve -> Height
    - Start Play Mode
    - In the Editor Window, (quickly) type some values in the seed field of the Noise generator.

    If I just spam the keys 345345 really quickly, I get the error (not always immediately, but quite soon). So I'm assuming this occurs when the underlying seed changes mid-chunk generation, right? (completely unrelated to custom generators or debug errors, so that was a red herring)

    sync_error.jpg


    Now, obviously in my game I'm not spamming keys in the editor to change the seed :) However, I *am* changing the seed via script at runtime, and I figure that I must be doing that the wrong way and causing the same problem. What I'm doing currently in the Start() method of my scene manager is:

    Code (CSharp):
    1.  
    2.   // Use this for initialization
    3.   IEnumerator Start () {
    4.   ... // Some stuff here
    5.   ...
    6.   if(MapMagic.MapMagic.instance != null){
    7.     MapMagic.MapMagic.instance.seed = GameManager.Instance.world.currentScene.sceneSeed;
    8.     MapMagic.instance.ForceGenerate();
    9.  
    10.     while(!MapMagic.MapMagic.instance.terrains.complete){
    11.       yield return new WaitForEndOfFrame();
    12.     }
    13.   }
    14.   ...  // Carry on initialising other stuff
    However, I guess what must be happening is that Map Magic has already started generating chunks with whatever default seed it had before I set the new seed here, so changing it like this causes it to get out-of-sync, just as it does when typing new seed values in the editor during creation. Right?

    So the question is (I think!), what is the correct way to place a Map Magic object in the scene, but only get it to start generating terrain after the seed has been set from the Start() method of another script?
     
  34. HittmanA

    HittmanA

    Joined:
    Jul 27, 2016
    Posts:
    45
    Hey @Wright , I might have an interesting idea for you. I have been looking for a way to use MapMagic with real world terrain heightmaps; and came up with what I think would be a really, really cool. Allowing MMWG to integrate with WorldComposer. Allowing MMWG to use real world heightmaps using WorldComposer. I think a lot of other people would like this feature to! What do you think?
     
  35. tanoshimi

    tanoshimi

    Joined:
    May 21, 2013
    Posts:
    297
    @HittmanA - Surely you can do this already by just using the Raw Input generator?
     
  36. terravires

    terravires

    Joined:
    Mar 27, 2013
    Posts:
    103
    @Wright

    That was before you had updated 1.71 to store.

    However, even after update to 1.71 I'm still getting the same errors:
    Code (csharp):
    1.  
    2. Generate Thread Error:
    3. System.NullReferenceException: Object reference not set to an instance of an object
    4.   at MapMagic.Generator.CheckClearRecursive (MapMagic.Chunk tw) [0x0001b] in \Assets\MapMagic\Main\Generator.cs:285
    5.   at MapMagic.Generator.CheckClearRecursive (MapMagic.Chunk tw) [0x00032] in \Assets\MapMagic\Main\Generator.cs:288
    6.   at MapMagic.Generator.CheckClearRecursive (MapMagic.Chunk tw) [0x00032] in \Assets\MapMagic\Main\Generator.cs:288
    7.   at MapMagic.Chunk.ThreadFn () [0x00091] in \Assets\MapMagic\Main\Chunk.cs:175
    8. UnityEngine.Debug:LogError(Object)
    9. MapMagic.Chunk:ThreadFn() (at Assets/MapMagic/Main/Chunk.cs:301)
     
    Last edited: Dec 8, 2016
  37. HittmanA

    HittmanA

    Joined:
    Jul 27, 2016
    Posts:
    45
    No, you can't That allows only the use of *one* heightmap. This would use one heightmap for every tile (or more i suppose) (fetched using WorldComposer).
     
  38. hoodoo

    hoodoo

    Joined:
    Oct 19, 2012
    Posts:
    154
    Thanks @Wright. I deleted the MM 1.7 version of my scene and restored the MM 1.4 version from backup. Loaded very slow as the group error was spamming the console with thousands of messages. Once I was able to I set the Stone Scatter count to 200 (it was 1000) and then disabled the Propogate and Adjust node for propogate. Now the scene works fine. I'm curious why you didn't get this problem when you were doing the same thing in the tutorial?

    I don't have the other problem now with nodes disappearing, so probably not worth sending the scene to you. Let me know. Now I'm going to try upgrading to MM 1.7 in this project, so I will first delete MM from the Assets and then import the new version. Will let you know how that goes. Thanks for the help!
     
  39. hoodoo

    hoodoo

    Joined:
    Oct 19, 2012
    Posts:
    154
    I guess deleting the old MM in Assets and importing the new MM causes the MM graph to be lost. Is there any way around this? If I don't delete the MM asset and just import the new version of MM, then I get the node disappearing problem in the graph.
     
  40. tanoshimi

    tanoshimi

    Joined:
    May 21, 2013
    Posts:
    297
    But can't you load a different heightmap for each tile based on the offset of the chunk currently being calculated? (edit: actually this isn't quite as easy as I thought because you can't use Resources.Load not on the main thread, so you'd have to be able to create references to all of the heightmaps before runtime).

    I tried a demo of WorldComposer ages ago but wasn't that impressed - it seemed to just access publicly-available SRTM data and coverage was not at a very good resolution other than for the US. Maybe it's improved since then but I'm not sure I see its benefit for MM? (which is fundamentally concerned with creating procedural terrain)
     
    Last edited: Dec 8, 2016
  41. HittmanA

    HittmanA

    Joined:
    Jul 27, 2016
    Posts:
    45
    Guess that's true. Thanks.
     
  42. HittmanA

    HittmanA

    Joined:
    Jul 27, 2016
    Posts:
    45
    @Wright what is the best way to add procedurally generated oceans? Any tutorials?
     
  43. BTables

    BTables

    Joined:
    Jan 18, 2014
    Posts:
    61
    @Wright Just shot you an email about a custom additional licensing for MapMagic.

    Please let me know if you think that would be possible.
     
  44. Wright

    Wright

    Joined:
    Feb 26, 2013
    Posts:
    2,277
    Oceans? Do you mean the underwater biome - with corals and algae? I'm not aware of any tutorials for creating it, but I'd like to recommend using your own imagination. Tutorials a mainly just an introduction to the product features. They are made to describe how to use it, but not to guide you to all of the possible results - otherwise we would have too many tutorials or too small variety of results.

    Not sure about WorldComposer, but some kind of SRTM generator is really an interesting idea. I cannot look into it now, but if somebody would take on a custom generator I'll try my best to help.

    terravires, could you please send the scene to mail@denispahunov.ru?

    hoodoo, since v1.6 you can export all of your nodes to an XML-like format by right-clicking on an empty place in editor and selecting "export". This will keep the graph structure and all of the generator settings no matter what happens with scripts, projects or scenes.

    Stones from the tutorial (and demo scenes) are very low poly and do not use lods, so I did not encounter 32K LODGroup problem.

    tanoshimi, I'm trying to break MM the way you discribed but still with no result. I'm starting the playmode and changing the noise seed - but it just generates the land with the new seed in a moment.
    EDIT: a-ha, I could reproduce outofsync by calling mm.Generate() from Start. In this case I'd like to recommend you starting with a disabled MapMagic, and then enable it with script after the seed is set:
    Code (CSharp):
    1.     public MapMagic.MapMagic mapMagic;
    2.    
    3.     public void Start ()
    4.     {
    5.         foreach (MapMagic.NoiseGenerator1 noiseGen in mapMagic.gens.GeneratorsOfType<MapMagic.NoiseGenerator1>())
    6.         {
    7.             noiseGen.seed = 54321;
    8.         }
    9.  
    10.         mapMagic.enabled = true;
    11.     }
    Note that there should not be pinned terrains in the scene - since they have an initial seed value they will not match the new terrains created with the new seed.
     
    Last edited: Dec 9, 2016
    malkere likes this.
  45. GambitMonkey

    GambitMonkey

    Joined:
    Apr 5, 2016
    Posts:
    65
    I have looked on the Voxel Land Forums and now the Map Magic forums, but can you generate Voxel Land terrains using Map Magic yet? I see some hints like there might be some integrations coming or that MM can already generate Voxel, but I can find a definitive answer.

    Thanks,
    Garry
     
  46. Ziboo

    Ziboo

    Joined:
    Aug 30, 2011
    Posts:
    356
    Hi,

    I have a quesiton.
    I'm using a 3rd party asset to generate a road with a spline, I have collider on it.
    Can I say to Map Magic to not scatter objects on the road and to flatten the height based on the road ?

    Thanks
     
  47. HittmanA

    HittmanA

    Joined:
    Jul 27, 2016
    Posts:
    45
    What is the asset?
     
  48. hoodoo

    hoodoo

    Joined:
    Oct 19, 2012
    Posts:
    154
    @Wright, That's great, once I'm done with the tutorial I'll be sure to upgrade to the latest version of Map Magic.

    I have another unrelated question: Is there a way to limit the placement of trees, grass etc so that they are only above the water level when creating an island like in your tutorial? Basically underwater I don't want a lot of this stuff. Also, once everything is created can I just use the regular terrain tools to flatten terrain in some areas and remove trees if necessary?
     
  49. tanoshimi

    tanoshimi

    Joined:
    May 21, 2013
    Posts:
    297
    Yes - Run your terrain height into a curve generator that outputs 0 for all heights less than your water level, and 1 for all heights above. Then use the output of that curve as the "Mask" into your generator that places the trees. This was asked already in this thread by vampir26 - look back to about Nov 15 if you need a screenshot.

    And once MM has generated your terrain you can "lock" a particular chunk (or simply delete/disable the MM component) and edit the terrain using any regular terrain tool.
     
  50. Wright

    Wright

    Joined:
    Feb 26, 2013
    Posts:
    2,277
    tanoshimi has already answered this, but I'll confirm that you have to make a contrast mask (you can take "sand" output or height as a source) and assign it into Scatter Generator probability slot.
    You can edit a terrain after it was generated. If the terrain is locked it will not be re-generated again, preserving your changes untouched.

    Unfortunately, no. MMWG does not take existing colliders (or any objects in general) into account when generating terrain. I have plans for creating objects/heightmap/splatmap input generators, but still it's to early to rely on them.

    I guess currently the only person who can generate Voxeland terrains with MapMagic is me :) Still there are things to do. Hopefully in a week or two I will release MM and Voxeland beta versions that will be compatible with each other.
     
    antoripa and Nateply like this.