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 LennartJohansen, Jun 29, 2018.
One last question, so grass will work on mesh terrain including its bending in Vegetation Studio Pro
I've learned that NatureManufacture created the roads of the awesome and free asset Windridge City with EasyRoads3D Pro. I thought I'd give that a try as well, it's on sale currently. By the way, in case anyone buys it, you probably want the HD Roads Add-On as well.
Long story short: There are a few things to consider when you want to use EasyRoads with Vegetation Studio Pro. Here's a little quick start write up of mine, I hope it helps to get started in case you want to try it:
* requires version 3.1.2; don't install the demo after the main asset, demo still has 3.1.1. if you do, re-install main asset
Activate Vegetation Studio Pro Masking:
* Road Network -> General Settings -> Terrain Management -> Vegetation Studio -> select Active
* GameObject -> 3D Object -> EasyRoads3D -> New Road Network
* Add a crossing
* Spawn roads from the crossing by clicking the green sphere and drag it out of the crossing
Hint: use ctrl + movehandle Y to snap to terrain
The VS Pro masks are on the roads themselves. There is a quirk though currently: The min value is > max value of the VS Pro mask. And the value of the VS settings in Easy Roads isn't considered at all. So if you want the grass as close to the road as possible, change it manually. I set it all to 1 for min/max in grass, plants, etc. setting. I already contact the dev @raoul about it, hope this gets sorted soon, so that one doesn't have to apply this workaround
Also, don't click on a road while you are in play mode. It would show all mask handles in the editor and that slows down performance.
Anyway, the asset is awesome, Super easy and quick road creation. Plus it allows you to re-edit the terrain, even after you modified it with the roads. Vegetation Studio Pro + Biomes + Easy Roads 3D looks like a powerful combination to me
Looks awesome @Rowlan
Good to know that there are some things to consider when working with VSPro + EasyRoads.
I was planing to use EasyRoads for Pathways. Meaning some mud pathways cause I am working on a Fantasy 18th century game. Also creating some hill / cliff ways up to some hills is on a todo list for me. Gonna try it with some mud terrains from CTS / NatureManufactor in the future.
Yes. The internal difference is only that the virtual MeshTerrain is used for sampling height and normal/steepness.
Hello, hoping to find out if there's a way to programmatically adjust the snow level in the Vegetation Studios Pro Environments settings at runtime? My game has a time travel mechanism and I'd like to be able to dynamically generate vegetation and cover it in snow or remove the snow.
all evironment settings are stored in an instance of the EnvironmentSettings class.
public class EnvironmentSettings
public float SnowAmount = 0;
public float SnowMinHeight = 0;
public float RainAmount = 0;
public Color SnowColor = new Color(0.75f,0.75f,0.75f,1);
public float SnowBlendFactor = 2.75f;
public float SnowBrightness = 1;
You can access this from the VegetationSystemPro component.
To set a new snow amount you need to get a reference to the VegetatoionSystemPro component and call
vegetationSystemPro.EnvironmentSettings.SnowAmount = 0.5f;
When the materials are refreshed all ShaderControllers will get the UpdateMaterial event where the controler maps the environment settings to the material/shaders own settings. This last part you only need if you are making your own shader controller class for a shader that supports snow.
public void UpdateMaterial(Material material, EnvironmentSettings environmentSettings)
look a the included NMTreeSnowShaderControler.cs file for an example. That is a shader controller for the NatureManufacture snow tree shader.
Wow Vegetation Studio runs so much nicer now using the Pro version. So awesome.
Its so smooth in editor mode with super thick vegetation and Runtime gave a massive boost in performance.
One thing that is a huge issue though is when you change settings in Vegetation Studio.
Like density of plants for example. The slider lags doesn't slide to the location until after the Vegetation Update. It should let you slide to the number and then when you release it updates the map.
I use the same vegetation package on two scenes. I changed the grass height on one scene and it effected the other scene too? Shouldn't the controls be scene independent? I don't know why the package would matter anyways.
Sounds good and makes sense in my opinion.
Why? VS is based on Vegatation Packages. Different options like density means different package. If you have 10 scenes and all are loading the same package it's totally normal that all scenes get the change if you change an option in this package. So create different density packages for different scenes. That's the intended approach
Hi. The grass scale, height etc is stored in the package not the scene. This is done to allow you to re-use packages between scenes and projects. If you need a scene with some changed. duplicate the Vegetation Package and use the new in that scene.
Updating a package and getting the results on all scenes it is used in is by design.
Ya i guess now that I think of it I guess it is best to have it store on the package.
When is an ETA on the biome packages? A Month, two months, second quarter of 2019???
On hold for now. We want to release more than one at the same time. Since they are designed to work together. I will post here when I have an update.
Bug / Fix
@LennartJohansen I believe I found a bug. When I lock the same texture in both the first and third biomes, a black line appears around the textures. If I don't lock it in the third biome, everything behaves just fine. Here are some pics showing what I mean. The texture is currently in the first (default) biome so I wouldn't expect it to be affected by the third biome, but it is:
Edit: Upon further investigation, I found that this effect occurs in the third biome no matter what. It does effect the first texture in the first biome as well, but only if the same texture is locked in the third biome. The second biome is never affected and always behaves correctly.
Edit / Fix: I found a quick fix for anyone else that encounters the issue. What I did was go to the biome scriptable object, change the number of textures to "no textures", and then change it back to 16 textures. It reset the textures and all I had to do was change the settings back to what they were in the Vegetation Studio Pro script (which can get tedious if this occurs a lot but hopefully it doesn't). I tried to recreate this bug, but can't seem to. I go back in my git history to the broken stage and prepare a package for you if you want.
(I was struggling to get the pics to upload, so if you can't see them, just let me know.)
Hey @Darthlatte, yes it's very tedious the shear number of colours stop area selection tools from working efficiently.
If you have photoshop try using the cutout filter to pre-process the image, set Number of Levels to 8, Edge Simplicity to 6 and Edge Fidelity to 3.
Satellite image before pre-processing
Satellite image with Cutout filter applied.
Makes vegetation selection a breeze.
Thanks! I'll give it a try
Hi, I need to temporary remove vegetation while placing buildings and then remove permanently once I have decided where to place it. See this video of Anno for what I mean. I use the persistent storage to store the vegetation, are there any examples of how to use the api for this? I don't use gameobjects so don't want to use masks only handle it through code.
Why don't use game objects? I just find that odd.
I know there are some people that are a bit confused about game objects thats why I ask.
Like a lot of people think you need to use instantiate to use game objects.
I only use Instantiate when im dealing with prefabs. Prefabs are very handy. Idk why you would avoid those.
For dynamic coding when not using coding you can just do
I read a lot of forum posts where a ton of people don't realize that.
when you do "new GameObject" it automatically creates a game object in the Hierarchy
Then you can do what ever you want with it. Add components etc..
or do it all in one line.
GameObject(string name, params Type components);
This is from someone that does an extreme amount of dynamic coding for the infrastructure of my games.
Use the new ECS, also creating dynamic roads which is just points and a generated mesh.
I'm new to Vegetation Studio/pro, just purchased it. There's one thing that caught my eye. When i open the included demo scene and move the camera around, a circle of thicker grass is moving around with it. It took me a while to find that this seems to be controlled by the LOD Control slider.
But i don't like the visual popping. Turning it up to 5 pushes the distance out so that it's way better, but the description says that it's like a global multiplier (which sounds like something i wouldn't want to max out).
0 is also completely fine, and it feels right to use this value, but i'm a bit confused about the meaning of this number. Is 0 (which somehow cannot be set, only 0.1) the base density, where the rules as set are what's visible and a higher lod just 'adds' extra vegetation? Or does 0 (0.1) represent a reduced version and the popping lod circle actually increases it up to the base density?
If 0 is the base, could it be possible to set it to 0 to not have any extra popping items?
Or am i just misunderstanding this setting and there's a slider somewhere else that controls this distance more fine grained?
Look for draw distance for the different vegetation types I believe on the render tab.
In the Vegetation tab there are distance sliders, but they only control the maximum distance, just like the render distance factor slider in the edit biome tab. Some types seem to have an additional LOD settings subpanel. I can set it to 0.15 (again not 0?) where it behaves as if i had set the LOD control slider to 0.1. clicking 'Disable LODs', which incidentally sounds exactly like what i want unfortunately does nothing, atleast visually and the manual doesn't mention it to explain what it's supposed to do.
Setting all LOD sliders to near 0 makes it a lot more stable (almost no items popping in)
So it would be good to know whether the near 0 value represents the base density or a reduced value.
Hi. with the persistent storage you can manually add and remove instances but there is another option.
The VegetationMask Components are actually MonoBehaviour wrappers for an internal API that uses c# objects with NativeArrays that holds the mask areas. You can use this without any GameObjects but you need to have some management code and add/remove masks yourself.
Look in the VegetationMaskArea component to see how they are created.
if you joing the Discord server and message me there I can explain a bit more. Easier with a text chat.
Hi. Do you mind joining the Discord server and message me there. I can explain. Easier with a text chat. LODs and density is not connected. One decides how many instances are created, the other at what distance you switch between the different LOD meshe in an item. The initial value is based on the LODGroup component and what you adjust is a distyance factor of this. Like the LODBias setting in Quality settings.
Link to the discord in my signature.
Your asset is awesome. I purchased it last week and it seems really powerful so far.
I'm running into a snag with the MapMagic infinite terrain integration. I see in the docs (https://www.awesometech.no/index.php/map-magic-infinite-terrain/ & https://www.awesometech.no/index.php/set-up-with-map-magic-infinite-terrain/) that Vegetation Studio supports MapMagic for infinite terrains but I'm not sure if Vegetation Studio Pro has the same capability yet (which would explain my problem).
Everything works great when setting the Total Area in the Vegetation System Pro > Terrains tab, but then the terrain is obviously limited to those constraints when MapMagic generates terrains exceeding those bounds. Am I overlooking something... possibly a different method for integrating when using VS Pro? Or is this feature not yet available with VS Pro? Should I just crank up the terrain Total Area to cover any possible player travel or is that resource expensive?
Thanks for your help,
Hello! I’m curious to know if there’s an ETA or timeframe for being able to use baked vegetation packaged from the older vegetation studio for Pro?
Just curious since I’d really love to do some more work with it, but can’t since my old vegetation packages aren’t available to work with via pro.
Just wondering, is there a trick to getting this to work in a standalone build? (ie, outside the editor). In play mode everything works fine, but as soon as I build a standalone exe I just get nothing. Tried with and without persistent vegetation storage and it didn't seem to have any effect
You may well need runtimes for c++. Check the docs you will see what needs to be installed.
Yeah I found the demo scene for this really pretty bad tbh, and what you just mentioned was one of the issues, even the lighting/shadows is off, like this a Pro asset.. it really doesn't showcase the asset at all with settings, frankly its awful.
Anyway I haven't got around to playing with Vegetation studio at all let alone the new Pro one to really know what the issue was myself, I just got it before the upgrade price got jacked up. Kinda held up waiting for a Sectr update before I start working with terrain.
That is not needed for Vegetation Studio Pro. For standard Vegetation Studio I managed to make a static linked dll that does not require any run-times installed. after some more testing I will replace the old.
There is a couple of requirements in the setup guide. Windows 10 SDK ++, xcode for OSX. Also unity has a AOT compilation issue with burst and IL2CPP. If you could join the discord server and message me there we can look at it.
A log file would be nice.
Link to the discord in my signature.
Hi. Plan is to have that in the next update. I am working on that, baking of colliders for navmesh generation and a list of smaller changes.
Vegetation Studio Pro needs a defined world area. This is done to optimize terrain loading and unloading. The internal structure is already in place. To handle infinite worlds you probably need a setup with multiple vegetation systems and your own logic to move them around. Adding a larger area is not expensive for run-time speed but it does allocate some extra memory for the cell structure.
Hi. I just finished the Collider baking feature of the Collider system. It can be used to add colliders to the scene temporary for Navmesh baking or any other use you would need.
There is an option to create the colliders as meshes.
If you do not want a configured collider to be part of the bake you can disable this on each vegetation item.
Example on how it looks in the scene as meshes and colliders.
This will be in the next update.
I've run into a small issue with the "Texture mask rules" section of "Edit Biomes" in VS Pro. I first created a texture mask group from an RGBA texture, then added a new rule to one of my trees in the Biome by choosing that mask group.
For the first couple of trees I did this with, I had a dropdown option "Select channel" from which I chose the "R Channel", and set appropriate values, and it worked great to mask out veg based on a base map texture colors.
However, now (several weeks, maybe months later), I am trying to add a few more trees and use the same technique, but that "Select channel" dropdown no longer appears to let me choose the "R Channel". The checkbox for Invert is also now missing (I don't actually need that one, but figured I'd mention it because it's presumably related).
The weird part is those controls DO still appear for the two trees I had originally set up that way.
FWIW, I originally created this scene and used this technique with regular VS, then went through the Pro beta, and now Pro final, so I'm wondering if maybe Pro just has a small bug and doesn't create that dropdown and checkbox (but will show them if it finds a value that was set in a previous version)?
Or maybe I'm just forgetting a step or missing some other obscure connection somewhere. Appreciate you checking into this feature, and please let me know what you find on your end...
Thanks. I will have a look. It might be some serialization bug somewhere. The properties are added dynamic based on the Mask type (currently only one) and serialized in the vegetation package. I will verify and see if I find any issue.
Threw together a quick Autumnal forest using VSPro, with Gaia and Enviro, and additional assets from SpeedTree and NatureManufacture... Looking nice and running smooth, here`s a screenshot taken in the heart of the wood...
Hi, I just bought Pro, I have a problem.
In VegetationStudio I used the following code to harvest the tree:
RuntimeObjectInfo info = collider.GetComponent<RuntimeObjectInfo>();
collider.gameObject.tag = "Tree";
Public float health=2f;
My weapon will attack the tree and lower the health of the tree. Everything works fine in VegetationStudio.
In Pro I changed OnVegetationCreateCollider(Collider collider) to OnVegetationCreateCollider(GameObject obj), and the other code did not change. There is no collision body on my tree prefab, only the collision body dynamically added by Pro, Basically all settings are the same as VegetationStudio.
In Pro, when I attack the tree, my computer becomes very slow. When I cut down a tree, the health of the other trees becomes less than 0. It seems that all trees share a TreeHealth.cs. But every tree in VegetationStudio has its own TreeHealth.cs, so there is no such problem in VegetationStudio.
Hi. There is a change. All the tree colliders are re-used from a pool. You need to remove the script from the object in the OnBeforeDestroyCollider event. I will add this to the documentation.
If you have any more problems with that message me on the discord server. Easier to debug with a text chat.
Discord link in my signature.
Hi. I just finished the SceneVegetationBaker component. It can be used if you for some reason want your spawned vegetation in the scene as GameBbjects. Lightmap baking or some other reasons.
Add it to the same GameObject as the VegetationSystemPro component, select your item and press the button.
I'm interested in getting VegetationSystemPro for a project I am about to start (just evaluating my options at the moment) I've seen the meadow demo which looks absolutely stunning. Do you have a bunch of preset biomes that can just be painted in a scene? or do all the individual biomes need to be created by us and then populated on our levels?
Hi. Vegetation Studio Pro does include any vegetation except for some grass and the free speedtrees in a demo scene you can download.
The meadow package from NatureManufacture includes the pre made biomes packages used in the demo scene/video and these you can modify and use in your project.
I expect more vegetation assets will start to include pre made biome packages but that is up to the individual asset developer to add.
Do you know if @NatureManufacture plans to create biomes for each of their Dynamic Mountain Trees, Advance Foil package, RAM ect..?
Ask on the NatureManufacture forum or discord.
I bought both, Vegetation and Vegetation Studio Pro
Is there a possibility VegetationItemInfo could be added to
BaseMaskArea::Contains(Vector3 point, VegetationType vegetationType, bool useAdditionalDistance, bool useExcludeFilter)
so that it could be optionally used by masks? I assume using just a broad culling category is fast, but sometimes you might want to mask out a specific instance and replace it with a different one - which would not be possible right now if they are the same vegetation type (I assume - I haven't bothered to try since it doesn't seem like it would work).
Basic question, if i wanted to do multiple biomes, they all would belong to thw same vegetation package correct as there is only one?
No. On Vegetation Studio Pro you can have multiple vegetation packages/biomes. Just make multiple packages. set one as the default biome and select a biome type on the others. The same type you select on biome masks to get the biome on that area.
Hi. There is a VegetationItemMask component that does that.
I implemented my own pooled masking without using gameobjects based off CircleMaskArea because Gameobjects and VegetationItemMasks are way too heavy for most most purposes.
Your underlying masking implementation uses BaseMaskArea and this method:
BaseMaskArea::Contains(Vector3 point, VegetationType vegetationType, bool useAdditionalDistance, bool useExcludeFilter)
This method only passes in a vegetation type (which is essentially a category) and not the vegetation item template. So there is no way of excluding only a certain template - only the category.
There is a method in BaseMaskArea that does contain the vegetation template (via the index):
public virtual bool ContainsMask(Vector3 point, VegetationType vegetationType, VegetationTypeIndex vegetationTypeIndex, ref float size, ref float density)
But I believe from skimming the code this is used for something different - perhaps determining where something _is_ spawned rather than not. So I'm not sure this is useful for what I want.