How to make cloud models in the sky move

I’m trying to figure out how to make clouds appear in the sky that use a model for the type of cloud that pass by like realistic clouds

I’ve made the cloud model, but I don’t know how to put them in the sky, make them move and repeat the loop.

I haven’t tried any solutions so i would appreciate help. in knowing what script i should make or use.

1 Like

There’s no need for a model at all! To make dynamic clouds, insert a Clouds instance into your Terrain. From there, you can periodically change their Cover and Density properties using perlin noise:

local run = game:GetService("RunService")
local clouds = script.Parent

local et = 0
local s1,s2 = math.random(0,10), math.random(0,10)
local o1,o2 = s1*0.49, s2*0.39

run.Heartbeat:Connect(function(dt)
	et += dt * 0.025
	clouds.Cover = math.noise(et, o1, o1) / 2 + 0.5
	clouds.Density = math.noise(et, o2, o2) / 2 + 0.5
end)

You can then move these clouds by changing the Workspace’s GlobalWind property. For example, setting it to 10,0,0 will constantly move the clouds 10 studs in the X direction.

2 Likes

if you want to have cloud models in the sky you should use Tween service. There are good amount of videos on YouTube on how to use it or documentation. You could add a few clouds and add chords for them to go and have it repeat. Idk if you know what tween service is or not but it moves an object, gui, stuff like that to a new location and it fills in the frames to make it smooth like its animated.

here is a basic script you could use for moving the clouds (note: you need a new variable for each cloud or if you want to move the cloud back to its original position)

local function cloudmove()
	local tweenservice = Tweenservice:Create(game.Workspace.whereyourcloudlocated, Tween, {Position = Vector3.new(wherever you want it to go)})
	local movecloudbacktooriginalposition = Tweenservice:Create(game.Workspace.whereyourcloudlocated, Tween, {Position = Vector3.new(oldlocationofcloud)})

	tweenservice:Play()
	wait(3)
	movecloudbacktooriginalposition:Play()
end

while wait(10) do
	cloudmove()
end

Of course this is really basic but it gets the job done. You can also check documentation to add other things to the tween like the time it takes for the cloud to reach its destination or the style it moves to the location. Also here are some useful videos and links about Tween Service to help you

https://youtu.be/qrYJyueOaCI?si=XKWATeu-nwNELabi
TweenService:Create Documentation

I hope this helped your issue. Please let me know if you have any problems or if something does not work!

How could I slow this down? As in make it change less frequently because its quite fast atm

It’s probably a matter of changing the number in et += dt * 0.025. If you wanted it slower, lower the number (e.g. dt * 0.01)