My question is is there any other more efficient ways of doing this, the only way I managed to do this is having 3 image labels. One Storing the value of the previous Label, and the other one storing the label of the previous before that, Which allowed for glitchless video, anyother ways of getting this done? So it can sync better maybe with music?
local RS = game:GetService("RunService")
local TimeBetweenFrame = 0.08
local Frame = script.Parent
local SavedImage
local lastSaved
Frame.Sound:Play()
local amount = #Frame.Images:GetChildren()
for i,v in pairs(Frame.Images:GetChildren()) do
if amount == i then
Frame.Visible=false
break
end
local CurrentFrameImage = Frame.Images:FindFirstChild(tonumber(i))
if Frame.Encoder.Image ~= CurrentFrameImage.Texture then
SavedImage=Frame.Encoder.Image
LastSaved=Frame.LImage.Image
Frame.Encoder.Image=CurrentFrameImage.Texture
end
if Frame.LImage.Image ~= Frame.Encoder.Image then
Frame.LImage.Image=SavedImage
end
if Frame.AImage.Image ~= Frame.Encoder.Image then
Frame.AImage.Image=LastSaved
end
while not Frame.Encoder.IsLoaded do RS.Heartbeat:Wait() end
wait(TimeBetweenFrame)
end
Here is a video of how it looks like in motion.
robloxapp-20220427-0035577.wmv (2.7 MB)
2 Likes
I used to make âgifsâ years ago.
What do you mean by âglitchesâ?
If the âglitchesâ are the image disappearing for a moment when Image is changed, then my approach was to keep all the frames available, but hidden or clipped.
When you advance to the next frame, hide the current frame and show the next one, but donât change the Image property.
In hindsight, I could have done better by keeping two ImageFrames: the currently visible one and the hidden next frame.
To advance to the next frame, the âcurrentâ frame is hidden, the ânextâ frame is shown, the two variables are swapped and the ânextâ (hidden) frameâs Image property is changed. If the next image does blink due to Image changing, then it doesnât matter because itâs now invisible.
If you want to sync with the music, then you could use Sound.TimePosition to time your animation.
Create a variable for the time when the next frame should be shown.
When Sound.TimePosition is higher than this variable, advance to the next frame and add TimeBetweenFrame to this variable.
Basically when I used only one image the time it took to load was to long so I had to create a backlog of the images because when I changed the image it goes blank for about 0.2 of a second
If this happens only on the first loop, then the images definitely havenât loaded and you should preload the images and music before showing the animation.
https://developer.roblox.com/en-us/api-reference/class/ContentProvider
If it always goes blank for a little while even if the image has been seen before, then itâs the same issue I had and you should hide and unhide frames instead of changing the Image property.
1 Like
Thanks I didnt know such thing existed will use it not letting me choose your answer as solution donât know why. Also I have an additional questions , how do you mutli upload files, I had to click all of the 200 images manually then changed the name with script but how to do all at once ;/
I think thereâs a mass upload tool somewhere in Studio, look for it.
Before that was added, I had to just upload my own images one by one, too. It wasnât too bad because I had few frames and put many frames on one image, so I had few images to upload. Some still managed to get moderated 
Edit:
This might be because of the subforum (creations feedback, not help)
1 Like
This is a bit off topic, but also I wanted to make a procedurally infinite Terrain map, but, it lags a lot because a lot of terrain wants to get generated if there is lots of people walking. Even when one large chunk is loading it will lag the game, so I thought about adding more wait time but than it took forever to load⌠So I came up with the idea of the initial map having to load with lag so its fast for the player to start playing with bare minimum, and maybe have a vote system which allows more map to be generated with a load-screen or something because it will lag. Furthermore, I dont think you can generate terrain from localscript so That the best idea I have, do you have any suggestions?
I used co routine to thread my loops for the terrain generation
I know more threads is worse for performance but Im only using 4 threads whats the optimum you think sorry for making so many replies
It should be possible to just generate fewer parts (combine cubes into larger cuboids to reduce part count for example) to reduce the lag from stuff being loaded to all players.
And if you mean that the code doesnât run very fast, then I donât think multithreading will help with that unless you use it in advantageous ways.
Itâs not clear what youâre saying because âlagâ can mean a lot of things.
One of the advantages of chunked terrain generation is that it can be done exactly the same way multiple times. You can input a seed in Minecraft to get the same map as someone else, for example.
You absolutely can do this if your terrain can generate the same way on all clients.
The problem with this is that the server doesnât see the terrain the clients generate unless it generates the terrain itself. That might cause server lag. If you put the terrain in Workspace instead of ServerStorage, then it will also be loaded to all players, which duplicates effort.
Its not parts is terrain like sand and stuff, by lag I mean all of the scripts become delayed like you will come up the bush to harvest and it will happen after 10 seconds
So I could maybe create a simplified version of the map on the server and the complex individual on local script since i didnt know you can do that.
but than people with slower pcs might not be able to play
Yeah, thatâs the script being slow, I canât really help with that.
Itâs when you generate terrain a piece at a time, splitting the generation into chunks. You generate each chunk only as needed, and can possibly delete chunks that are far from any player if they havenât been changed in any way.
You should probably take chatroom-like replies to private messages btw, but itâs a too late for that by now.
edit: Thereâs probably a Survival series game with infinite terrain, look at the games created by Davidii or one of the games in his group, I think the infinite terrain one is open source by now. Itâs been half a decade so I donât remember which one it was.
1 Like
Yeah it was probably with parts tho not terrain
So what do you think I should make the map load on singleplayer for the terrain and create a similifed procedural method with parts to make the scripts work for the animals, Or is it just better to keep it in workspace and do it for the server and stick to the vote system idea. Because, Iâm thinking that its not gonna help much there is still going to be bare parts spawning for the server for the map and on top of that locally overload for the terrain which will make server lag and local lag with bad pc
Where as if its kept in server just server will lag for a bit like you have gta maps load for that long too, before you join