[Update] November 14, 2024
Hi Creators,
Today, we’re enabling the GrassLength
beta in production! While this feature remains in beta and is subject to change, it’s now possible to publish experiences with global custom grass length.We automatically adjust the density of grass depending on its length so it looks good and performs well at any length.
Please note that we reduce the density of grass at lower quality levels, especially when it’s much shorter, to manage GrassLength
’s performance and memory impact. Under tight memory pressure, Grass will be entirely disabled.
Usage
To use the new GrassLength
property, you will need to have grass on your terrain. Then, you can modify the property under Workspace > Terrain > Appearance > GrassLength.
-
First, let’s scatter some grass
- Enable the Decoration property under Workspace > Terrain > Appearance > Decoration.
- Use the Terrain Editor to paint the Grass Material on your terrain. (Find more details on how to add grass here)
-
Change the length of your grass
- Go to Workspace > Terrain > Appearance > GrassLength property and modulate your
GrassLength
using the provided slider or by entering a value directly in the property field.
- Go to Workspace > Terrain > Appearance > GrassLength property and modulate your
The property is a floating point value of range 0.1 to 1.0. Those values are abstract and simply represent “smallest grass” and “longest grass”. By default, the GrassLength
property has a value of 0.7, which corresponds to the grass length before this feature’s release.
Grass and Wind
If you have GlobalWind
enabled (Workspace > Behavior > GlobalWind), note that grass will bend a bit differently in the wind based on its length. This mimics a realistic simulation where shorter grass is stiffer than longer grass. Learn more about Wind here.
Scripting
GrassLength
is a non-scriptable property because it is incompatible with the future Terrain system we are building, which will provide more grass flexibility. We decided we wanted to provide you with a simple solution today and make it non-scriptable to avoid negative consequences of an API conflict when we’ll be ready to release our more extensive Terrain system. More on that in our “Future plans” section below.
Future Plans (a.k.a “What about local grass?”)
We are looking to extend our Read/WriteVoxelChannel API to allow local modifications of terrain properties. This is where we would like to bring GrassLength
in the future, and how we envision supporting customization of grass density, material tint, and grass tint across different terrain areas.
We are not ready to share a timeline yet, as there are multiple prerequisite steps to get there, but we know how important having those features is for many of you! Stay tuned.
Made with love by the Engine team
Please let us know about your experience with GrassLength
and if you encounter any issues while in Client Beta!