How to make a music synchronized game intro?

UPDATE: After almost 7 hours of coding and debugging, i’ve finally ‘kind of’ finished that intro! It just needs a little polishing but other than thazt, it’s perfect for me !!!

(Didn’t work via devforum upload): Atmos game intro demo - YouTube

Here’s the code if anyone wants it:

local sound = script.Parent.IntroSong
local loadingFrame = script.Parent.Frame
local animation = script.Parent.Animated
local Thread = require(game.ReplicatedStorage.Modules.CustomWait)

loadingFrame:TweenPosition(UDim2.new(1,0,0,0),"In","Quart",0.5,true)
Thread:Wait(0.5)
script.Parent.Animated.Visible = true
sound.TimePosition = 8.46
sound:Play()
animation.Logo:TweenPosition(UDim2.new(0.032, 0,0.32, 0),"Out","Elastic",2.02,true) -- Logo
Thread:Wait(2.02) -- T1 10.480
animation.A:TweenPosition(UDim2.new(0.278, 0,0.375, 0),"Out","Quint",0.16,true) -- A
Thread:Wait(0.16) -- T2 10.640
animation.t:TweenPosition(UDim2.new(0.441, 0,0.375, 0),"Out","Quint",0.12,true) -- T
Thread:Wait(0.12) -- T3 10.760
animation.m:TweenPosition(UDim2.new(0.536, 0,0.375, 0),"Out","Quint",0.32,true) -- M
Thread:Wait(0.32) -- T4 11.080
animation.o:TweenPosition(UDim2.new(0.691, 0,0.375, 0),"Out","Quint",0.640,true)
animation.s:TweenPosition(UDim2.new(0.796, 0,0.375, 0),"Out","Quint",0.640,true)-- OS
Thread:Wait(0.640) -- T5
script.Parent.Menu.ImageLabel.Tempo.Disabled = false
script.Parent.Animated:Destroy()
script.Parent.Menu.Visible = true

I used this custom wait() modulescript : https://gist.github.com/CloneTrooper1019/538f0ab2541ef98912a2694dd8d274e7

3 Likes