Library Link
This is a helpful tool for people who would like to play 2D animations onto surfaces as well as binding audio to frame events or playing it in sync alongside it like a video.
In order to use this module, you will most likely need to have a basic understanding of dictionaries, instances, and events
This API is designed to be lightweight and to be fairly easy to use for basic scripters as the GIF object has properties and events like other objects. The most difficult part about using this API is correctly setting the dimensional values for the image. One of the simplest ways is to get the resolution of the spritesheet decal (as uploaded on roblox) and divide the resolution by the row or column count along the axis.
This API comes with an example linked in the library, making it easier to understand. The module also offers step by step instructions on how to import and play these GIFs / videos in games. This module works on both the client and server side, however the client version will have better performance.
My reasoning for releasing this API is so that newer scripters will be able to use animated images without having to write their own players and the player will also automatically sync with audios and other clients since it is based on the time since the animation was played and supports timeposition (Goto) and frame changing (Jump).
THIS IS GREAT, Delivers exactly what people wanted from one of the submissions from hackweek!
This opened alot of ideas for me. Although I don’t script nor build, I love designing game mechanics, so I was thinking- It could be (somehow) possible to use this to animate a special effect for a supernatural move of some sort using internet stock footage made in Adobe After effects!
Just to note, VideoFrames are likely to deprecate this API and I suggest people make a switch or move to VideoFrames in the future. I appreciate the support but thankfully a new and better solution is soon to be available.
The main issue is not making it compatible, the fact is that this tool is made to allow people to play animated images and also videos with audio, but it won’t be necessary once VideoFrames come out because you could just turn the GIF into a looping video and other videos can play directly on the Instance without all the setup. I’m just bumping it for the sake of the people using it to make sure to be aware of this feature and know that they can and maybe should update their games in precedence of its release.
Still, not exactly. All this tool does is make it easy to do 3 things:
Split a GIF into a spritesheet (or multiple spritesheets)
Play these spritesheets in sync
Attach listeners to things that occur while playing the GIF
The important part to note in this case is that the spritesheets are still roblox assets, and are not magically served over the web. They are still subjected to moderation as they are uploaded to roblox like any other images before you can use them in the player. VideoFrame content will likely be subject to this in the future if they use URL and/or contrnt filtering or only allow the ability to play user uploaded videos (which also undergo moderation).
To reiterate my previous point, the main reason for this module becoming “deprecated,” is that making GIFs this way has a couple of problems:
Large loss in quality when packing too many images onto one spritesheet
Needing to upload and create multiple spritesheets for longer GIFs
Does not automatically sync as smoothly when manipulated directly on the server
VideoFrames will solve all of these problems, and converting GIFs to videos should be fairly easy. Videos also support transparency if I’m not mistaken. I’m just glad that this module has proven useful to many individuals in the meantime, although most will probably need to move over to VideoFrames in order to experience their benefits. I still recommend others make the transition when they eventually release, but this module can remain a good tool if you ever wish to animate something like a character sprite in a simpler way.