[Release Update] October 31, 2023:
Today, we are excited to release the very first step in allowing your experiences to get windy!
With Wind, you can set a direction and strength in which wind will blow through your experience and you will notice that any grass, clouds, or particle effects you have in your experience react realistically to the wind.
We also have a nifty new Wind Widget to help you get the exact look you want! Please give these features a whirl and let us know if you have any issues/feedback.
You can find more details about Wind in the GlobalWind section of the creator documentation.
This is just the first step for wind. We are eagerly waiting to share how more systems in your experiences will be able to interact with Wind in the future. Stay tuned!
In your Workspace property pane, you will now be able to find the GlobalWind property, which is a
Vector3 that sets the direction and magnitude of the wind.
This property can be directly set using the Explorer and Property windows by going to Workspace > Behavior > GlobalWind and modifying the value.
To make it easier to tune the Wind to exactly the way you like it, we are introducing the new Wind widget. The Wind widget allows you to visualize how the wind is currently blowing using a wind sock and gives you a direct way of modifying the speed and direction of the wind.
You can toggle the widget by going to the View tab > Actions panel > Wind Direction.
Alternatively, you can also open the widget by clicking on the icon appearing next to the Workspace > GlobalWind property. It shows up when the property is selected for edits.
The widget will appear overlaid on your place viewport. The Widget can be moved around your viewport so you can place it wherever is convenient for you.
The Speed, Yaw, and Pitch of the wind can be varied by clicking the corresponding aspects’ name on the left and using the slider to set the desired value.
The Yaw can also be modified by clicking the green circle and rotating it left or right, while the Pitch can also be modified by moving the blue arrow up and down.
You can also directly input a precise value by clicking on the number displayed. This will turn it into an input field in which you can type your desired value.
Changes made using the Wind widget will reflect in the Workspace > GlobalWind property after the appropriate conversions into a Vector3. The opposite is also true, meaning that if you modify the values of the GlobalWind property directly or through a script, the Wind widget’s values and visualization will update in real time.
The GlobalWind property can also be set through a script, using something like this:
workspace.GlobalWind = Vector3.new(10, 0, 0)
(The above line will set the global wind to blow with a speed of 10 studs per second in the +x direction)
Scripting wind also opens up a whole range of possibilities. For example, you can use something like the code snippet below to cause cyclical gusts of wind for a more subtle visual effect:
local gustCycleDelay = 5 -- Max duration between gust cycles in seconds local gustCycleDuration = 5 -- Duration of each gust cycle in seconds -- During each gust cycle, a portion of "gust" will be added to "baseWind" in a ramped fashion local baseWind = Vector3.new(-3,0,-3) -- Vector3 representing base wind speed and direction local gust = Vector3.new(-5,5,-5) -- Vector3 representing gust speed and direction local gustIntervals = 100 -- Number of iterations used to calculate each gust interval local dg = gustCycleDuration/gustIntervals local dgf = dg/gustCycleDuration workspace.GlobalWind = baseWind -- Set globalWind to baseWind initially wait(gustCycleDelay) -- Wait delay amount before starting gusts while true do for i=1,gustIntervals do local f = math.sin(math.pi * dgf * i) -- Use sin function to ramp gust workspace.GlobalWind = baseWind + f*gust -- Set GlobalWind to baseWind + gust wait(dg) end workspace.GlobalWind = baseWind -- Reset wind to base wind at end of gust cycle wait(math.random()*gustCycleDelay) -- Wait a random fraction of delay before next gust cycle end
ParticleEmitters with Drag > 0 will follow wind if you enable the WindAffectsDrag property. Fire and Smoke instances follow wind by default.
You can follow the steps outlined in these guides to add grass, clouds and particles to your experience:
- Add grass to your experience by enabling decoration on your terrain materials: (Environmental Terrain | Documentation - Roblox Creator Hub)
- Add dynamic clouds to your experience: (Dynamic Clouds | Documentation - Roblox Creator Hub)
- Adding particle effects like Smoke, Fire, and other customized particle effects to your experience: (Particle Emitters | Documentation - Roblox Creator Hub)
Wind was made possible by @iiostream, @ProfessorKJM, @Homeomorph, @kckhem, @PotionSeller33, @IgnisRBX, @MetaverseAstronaut, @PixelMiner47, @DodgerJavi, @MetaVars, @FGmm_r2. Thanks for your contributions!
Please let us know about your experience with Wind and if you encounter any issues!