It looks like you’re changing the image every frame, and I’m pretty sure the images do take some time to load so it creates this “choppy” effect. Maybe you could try a different approach such as making every frame visible (as a seperate ImageLabel) and make them invisible each frame?
You have to preload the images. Loop through them and check the .IsLoaded property on all the images you want to go through for the flipbook animation and then start the animation.
Use ContentProvider Service to preload all the images in advance. This way, by preloading them, the images don’t need be loaded again, and allow a smooth transition from frame to frame. ContentProvider has a method PreloadAsync() that you will want to use here!
This won’t work with images, you have to manually check the .IsLoaded property for them to make sure its actually loaded into the cache so it will display immediately
This service works for images, decals, sounds, or any asset that includes a engine identifies links to the content, being any one of these formats. Images are one of these, content identified links, and therefore the service works with images.
Yeah but the service doesn’t actually work for images or sounds. It’s broken right now and you have to manually check the property to make sure it’s actually loaded in.
I am unaware of this outage, and currently I am using ContentProviderService in numerous amount of times in my projects, specifically for images, however ContentProviderService seems to be working fine for me. Do you mind sharing more infomation about this, and where you heard about the outage?
roblox images take time to load so whenever the player shows on screen it just means that the image isnt loaded. try waiting some time before playing the animation for each image to load although that will take time
Roblox should just release the video feature to everyone since theyre already giving out public ugc
instead of working with over 100 frames, you can stick to that one image label you are changing, but also have all the others somewhere like in replicated first so you can preload them like the replies above suggested, and then you shouldnt have any problems
well that is an option, but i said stick to your own script, but store all the other frames in replicated first so you can preload all the images before playing the animation, so it doesnt look choppy
local ContentProvider = game:GetService("ContentProvider")
local AllImageIds = {"rbxassetid://17351199138", "AnotherOne", "Next", } -- All images need to go in here
ContentProvider:PreloadAsync(AllImageIds)
game.ReplicatedStorage.RemoteEvent.OnServerEvent:Connect(function(plr)
plr.PlayerGui.ScreenGui.Frame.TextButton.Transparency = 1
wait(0.1)
plr.PlayerGui.ScreenGui.Frame.ImageLabel.Image = "rbxassetid://17351199138"
--etc