Also since we’re sharing here is where I’ve started to dump my MM generators: GitHub - yolanother/UnityMapMagicExtensions: A set of extensions for the MapMagic asset on Unity.
It currently only has a height clamp node, but I have a few more that I’ll eventually get around to adding there as well.
mmaclaurin, next time you run into this issue could you please disable MM and try enabling terrain - just to check if the bug is called by MM.
YolanOTHER, you’ll have to use two repositories if you’d like to use MapMagic 2 from GitLab:
- MM repository itself
- tools shared between MM, Voxeland, Erosion Brush and other assets. Plugins namespace is defined in some scripts from here, as well as PosTab and MatrixWorld.
Hi @Wright ,
Im getting errors when following your biomes tutorial.
Error generating chunk: MapMagic.Coord x:2 z:0: System.Collections.Generic.KeyNotFoundException: The given key was not present in the dictionary.
This error seems to be stopping the blending of biomes.
The preview option to is greyed out too so I cannot preview if the blends are happening.
Ah, I remember something about the tools repo now. I’ll give that a shot tonight. Thanks.
AndyNeoman, could you please email me the full error text and the graph to reproduce it?
No problem, It will be in the morning though as it is late here now. I love the tool and I know some of my issues is just me getting used to it but these errors are slowing down the process. I will email you first thing (UK time).
@Wright
I think you should lock the other MapMagic thread with a link to this thread. There is always a string of unanswered questions when I check in there every couple months:
[Outdated thread] Map Magic page-10
Also, is version 2 stable, just lacking in the completeness you’re aiming for for release? I’d love to test the new approach to safe borders if it’s generally stable.
Ok understandable
@LennartJohansen also said he ll help you with that, so if you guys have a beta or something of the reworked node let us know, it can’t really be used as it is right now
Thanks.
Can’t find any way to close or delete the thread - the only thing I can do is to rename it. I’ve removed all the links and posted warnings everywhere I could. Hope it helps.
Not yet. It has all of the main functions, but still lacks reliability.
You can try using it outside of biomes. Or if you could email me the issue detailed description with a project to reproduce it I’ll try to do a quick fix.
@Aress28 even without objects the terrain has a collider. Depending on the size/resolution of your heightmap that can cause a very clear pause, and would do so with any tool. That’s part of the Unity engine.
So would you recommend putting the VS node on the mixing dataset instead of on each biome?
Also unrelated a simple question (i hope) if you just want to cover the whole map with one texture on RTP how would you do it? I know the background one would work but it would then mean all my biomes have the same background (I presume you cant reorder RTP textures for each biome has you mentioned MM only uses one).
I just want to have different base texture for each biome from the same 8 texture setup on RTP.
Hi all, Anyone recommend what node setup to use if you want textures only on certain height range?
I’m struggling getting the biome system working with Vegetation studio so i’m trying to do it on one terrain instead and want to separate the look by textures.
Thanks for any help,
Andy
@AndyNeoman there are a couple of approaches -
-
using existing nodes, you can feed a height product into a curve, and then constrain the curve to a very narrow peak ( band pass ) that correlates to the area you want to mask. I couldn’t find the image that Wright made, but it looks kind of like this:
http://www.omegafilters.com/cms/wp-content/uploads/QMAX-curve-300x252.gif -
I implemented a basic height filter generator in the repo here - its more specialized:
GitHub - ajaxlex/Map_Magic_Generators: Some generators and tools for the Map Magic asset.
That looks perfect. Thanks for the help and addition.
Hi,
I’m testing biomes functions to see if I can benefit from it in my project.
I made two different biomes: one is ocean, all the terrain is under sea level:
The other is an island biome, with shores, hills and ocean:
I want to blend these two together with the biome function, so I made masks from a noise node:
But the result is rather bizarre:
If there is a blend between different height level, like land and ocean, the textures behave strangely as shown: shore texture runs into the water. And this is when I make the blending edge very sharp. If the edge is softer, all the shore textures will sink into water, and all land textures will blend some percentage of sea bed texture.
Did I made any mistakes using the biomes function or it is unavailable dealing with different height level textures blending?
That’s normal because the biomes are blending. You’re not defining your texture by height you’re defining it by biome. The area that blends the two biomes together has both textures and will show whichever is stronger. If you want to be more specific with your textures I suggest you handle them outside of your biomes.
The best use of biomes is really for things above ground, badlands, forest, mountains. Things that can blend. Ocean is the problem we all run into at first, because no on wants grass and trees under water. Alternatively I suppose you could define ocean outside of any biome, and then all remaining land divide between your biomes.
I went deep profiling my runtime terrain generation using MM to see just how much was actually collider baking, or what… Turns out 94% of my lagg frame is caused by TerrainData.set_detailPrototypes() ?? only 0.1% is caused by TerrainData.set_treePrototypes(). I have 16 grass textures ranging from 256 to 1024, mostly tga files in BC7 or DXT5… I’ll try messing with things to see if I can improve this in anyway, but anyone have any ideas?
FYI, turning the grass on/off is not the problem, it appears to be the grass preparation engaged when the terrain is created after the grass prototypes are added.
As I can’t see any height output from the biome node, don’t really know how to restrain biomes only on land then retexture all the shore into sand. Would be very appreciated if you have an example graph for me to study.
Your mail seems not working (domain down?) anyway I forward it here:
so my explanation of the VS output problem is on page 60 on forum at April 10 and it’s the following:
"I t seems that the Vegetation Studio Output generates a new default VegatetionSystem component for every terrain. That means that no render settings, or any other settings taking into account with VS, which makes the output unusable for now.
A good way to use it would be to have a pre-configured VegetationSystem prefab that can be selected in VS output, and have this one generated with every new terrain, is that possible?
In short what I mean is to just have the VegetationSystem Prefab of our choice for every VS output (different output per biome)."
your response (for reminder):
" I’ve talked to Lennart about it yesterday, we are going to make a prefab slot in VSO that will be used as a reference for all VS components settings."
So you might talk to Lennart again maybe he has something ready?
Thank you ![]()
I believe that is a limitation of biomes. They want to control personally anything you let them. So if you put a height output inside a biome it will take full control over it to the extent of the biome value at x,z (the biome input). The only safe way to go about it (that I know) is to control the height outside of biomes. You could give your biomes a minimum height of sea level maybe and let them work only above sea level for example, keeping the ocean biome on the main graph so it doesn’t blend anything (what I meant in my last post).
It’d be tough for me… well… I might export/import my groups see if I can control only height on the main graph and the rest in biomes… or hmm… I wonder what would happen if you had a height input on the main graph with say a constant 0.2, then in your grass biome a height output ranging from 0.2 to 1.0 and an ocean biome that subtracted 0.0 to 0.2. at 0.49 grass and 0.51 ocean you’d still be able to get below sea level and would have to have the sand texture totally overpower the grass texture… might be able to set the ocean texture output to a huge number since Unity normalizes them, so that wherever there’s ocean, even in the blending zone, the ocean wins?
All in all I don’t use biomes because of the water level problem… never got it to work…



