How do i make a VHS effect on roblox studio i have no clue
Thank you for helping me
How do i make a VHS effect on roblox studio i have no clue
Thank you for helping me
Well, for a convincing VHS effect, you’ll need the following:
ColorCorrection
Bloom
And some sort of Static overlay
Here is a table of images you can use for a static effect:
local StaticImages = {
'rbxassetid://7472792778';
'rbxassetid://10757636219';
'rbxassetid://520992855';
'rbxassetid://10195656966';
'rbxassetid://4689700119';
'rbxassetid://9470950';
'rbxassetid://3203623798';
'rbxassetid://2510585515';
}
And heres the values for the Bloom and ColorCorrection
(just enable them for the effect)
And this is what the effect looks like:
If this isnt what you want, then please go into further detail, im sure someone can make something.
Hello, It’s actually pretty simple, Grab a Static Image and on the ImageLabel set the ScaleType to “Tile” and here’s the code for it.
local StaticImage = script.Parent -- Path to the Image
game:GetService("RunService").Heartbeat:Connect(function()
StaticImage.TileSize = UDim2.new(math.random(800, 1000) / 1000, 0, math.random(800, 1000) / 1000, 0)
end)
So we are pretty much changing the Tile Size to something random.
https://developer.roblox.com/en-us/api-reference/datatype/UDim2
https://developer.roblox.com/en-us/api-reference/event/RunService/Heartbeat
i dont remeber how to for loop in pair in table
local vhs = script.Parent.ImageLabel
local StaticImages = {
'rbxassetid://7472792778';
'rbxassetid://10757636219';
'rbxassetid://520992855';
'rbxassetid://10195656966';
'rbxassetid://4689700119';
'rbxassetid://9470950';
'rbxassetid://3203623798';
'rbxassetid://2510585515';
}
while true do
wait(0.1)
for i,v in pairs(StaticImages) do
vhs.Image = v
end
end
You could also do:
local VHSImage = game.Players.LocalPlayer.PlayerGui.ScreenGui.VHS.VHSImage --(Replace VHS with the path from StarterGui to the ImageLabel that covers the screen)
local a = 0.01 -- Customizable delay between image switch
while task.wait(a) do
VHSImage.Image = "rbxassetid://7472792778"
task.wait(a)
VHSImage.Image = "rbxassetid://10757636219"
task.wait(a)
VHSImage.Image = "rbxassetid://520992855"
task.wait(a)
VHSImage.Image = "rbxassetid://10195656966"
task.wait(a)
VHSImage.Image = "rbxassetid://4689700119"
task.wait(a)
VHSImage.Image = "rbxassetid://9470950"
task.wait(a)
VHSImage.Image = "rbxassetid://3203623798"
task.wait(a)
VHSImage.Image = "rbxassetid://2510585515"
end
Bumping this thread but, is there any way you could do something like this?
Like the red, blue and green mix of the color correction just seems so old-like.
Wrong, It is possible and I have done it.
There is a very simple way of doing this effect ( chromatic aberration ).
First you need to understand how the effect works.
Basically the effect occurs when Red, green and blue are not positioned exactly on the same places. This leads to the colors flowing out as seen in that video.
With this in mind, you can adapt this idea onto roblox by making three Viewportframes, (Red, green and blue) and positioning them so that they are very slightly mis-aligned.
viewport frames dont have shadows or reflections so whats the use of making ur game looks worse?
I get it now thank you so much I’ll try this.
Well i found out how to make the image change every 0.1 seconds! here’s the script:
local vhs = script.Parent
local StaticImages = {
'rbxassetid://7472792778';
'rbxassetid://10757636219';
'rbxassetid://520992855';
'rbxassetid://10195656966';
'rbxassetid://4689700119';
'rbxassetid://9470950';
'rbxassetid://3203623798';
'rbxassetid://2510585515';
}
while wait(0.1) do
script.Parent.Image = StaticImages[math.random(1, #StaticImages)]
vhs.Image = StaticImages[math.random(1, #StaticImages)]
end
by the way don’t forget to change the background transparency to 1 and the image transparency to 0.9 or 0.93
I know I’m a little late, but I have additional ways on how to refine this, giving this more of a 90’s VHS TV effect with adding an additional layer. making it more realistic too. Here is my hierarchy,
Make sure the frame “VHS effect” has the property “BackgroundTransparency” = 1
Here are the properties for the Film ImageLabel
Here are the properties for the Blue ImageLabel
Inside the LocalScript, paste the following code,
local StaticImages = {
'rbxassetid://7472792778',
'rbxassetid://10757636219',
'rbxassetid://520992855',
'rbxassetid://10195656966',
'rbxassetid://4689700119',
'rbxassetid://9470950',
'rbxassetid://3203623798',
'rbxassetid://2510585515',
}
local vhs = script.Parent
local blue = script.Parent.Parent.blue
game:GetService("TweenService"):Create(blue, TweenInfo.new(1, Enum.EasingStyle.Quint, Enum.EasingDirection.InOut, 0, false, 0), {BackgroundTransparency = 0.75}):Play()
while true do
for _, image in pairs(StaticImages) do
vhs.Image = image
wait(0.05) -- Adjust the delay as needed
end
end
Your game should look something like this!
Replying to this 2yr old thread to say that this method works incredibly well for the static effect I was looking for! It creates a very fine, consistent static that doesn’t “blink” or “flicker” so wildly that it’s eyestrain-y (like how changing thru different img IDs felt), and the code feels much cleaner too.