godotengine / godot

Godot Engine – Multi-platform 2D and 3D game engine
https://godotengine.org
MIT License
89.95k stars 21.07k forks source link

[Suggestion] giflib for animated gif viewing and proccessing #8599

Closed Ahmed0425 closed 4 years ago

Ahmed0425 commented 7 years ago

will be very useful for my next game and for 2d games in general http://giflib.sourceforge.net/

ghost commented 7 years ago

At the technically level isn't exporting a gif to a spritesheet better in performance though?

However, with that said this could be a cool feature!

Ahmed0425 commented 7 years ago

actually I want to load external gif files (outside pck file) inside the game so, I need that feature :) this will be possible with this #8545

ghost commented 7 years ago

@Ahmed0425 It's nice, but you can convert your gifs to spritesheets right now if you really need them in-game. (Just incase). I do agree that gif viewing feature would be cool though :)

eon-s commented 7 years ago

I'm not sure if gif performance will be good, loading a video (like webp if supported) apart and using ViewportTexture may be better and easier to set up and control.

Ahmed0425 commented 7 years ago

As for a 2d game, I prefer to use bone animation but this will be useful to develop a game like pokemon showdown (with its animated pokemon gifs) Actually developing such game is impossible without giflib as they are not sprites :(

eon-s commented 7 years ago

@Ahmed0425 is not impossible if you export the gif to video, the viewport+sprite structure could be a single scene and the video stream should let you load big/good quality images

Ahmed0425 commented 7 years ago

as a noob (planning to learn godot after 3.0's release) I can't understand what you mean :( however, if gifs could be loaded externally and converted internally (with unpacked exported game), this would be enough for me

eon-s commented 7 years ago

@Ahmed0425 ok, you can use a viewport as a texture, if you add a video player to a viewport, it can be set that as texture and will show as an animated texture (the same way used for 3d in 2D and controls in 3D demos). With a GDNative converter may be easy to "import" the gif as supported video format.

reduz commented 7 years ago

I think with gdnative we could add an editor plugin that imports a gif as spriteframes resource

On May 1, 2017 8:45 PM, "eon-s" notifications@github.com wrote:

@Ahmed0425 https://github.com/Ahmed0425 ok, you can use a viewport as a texture, if you add a video player to a viewport, it can be set that as texture and will show as an animated texture (the same way used for 3d in 2D and controls in 3D demos). With a GDNative converter may be easy to "import" the gif as supported video format.

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/godotengine/godot/issues/8599#issuecomment-298399510, or mute the thread https://github.com/notifications/unsubscribe-auth/AF-Z28iCctIE6kqO8nVygluuqpsS8gw6ks5r1ig3gaJpZM4NMtV- .

ghost commented 6 years ago

There is a indexed color 2D graphics editor/animator program named "Grafx2" which uses GIF as its layered file format - think PSD but for indexed color images. If Godot load these GIFs from GrafX2 that would be really useful I would think... It would be like being able to load an asset that has a higher level of editability than a typical flattened file.

GrafX2 is an excellent app and I recommend every interested in 2D art to check it out. It's inspired by a very popular app from the Amiga/DOS named Deluxe Paint . Here is a intro video describing its features: GrafX2 an Introduction

eon-s commented 6 years ago

If is to use parts of GrapfX2 as a library, is GPL v2 so may not be suitable to use with non GPL games even with GDNative.

ghost commented 6 years ago

To be clear I am not suggesting using GrafX2 code. I am thinking how GrafX2 handles GIFs is very useful because it retains layer data while still keeping the GIF format.

LikeLakers2 commented 6 years ago

Sorry for bumping, but this would be useful to me. I'm trying to writing a implementation of the Discord API for those who might want to write Discord bots using Godot. As Discord's API can return GIFs, I'd like to be able to return those GIFs as Image (or SpriteFrames), just like I already can with JPGs and PNGs.

I hope this can be implemented somehow.

Crystalwarrior commented 5 years ago

Badump, still relevant to me for similar reasons to @LikeLakers2 .

GreenMan36 commented 5 years ago

Bump bump. I am using the Open Pixel Project and all animated sprites are in .GIF format. Would be great if we had support for either that or .APNG !

Calinou commented 5 years ago

@10jasper10 As a workaround, you can use ImageMagick to convert a GIF to a PNG spritesheet. See this tutorial for an example.

Daw11 commented 5 years ago

I'm currently working on this one. It should be ready in a few days.

GreenMan36 commented 5 years ago

I'm currently working on this one. It should be ready in a few days.

How's the progress? A few weeks have past and this feature would save me allot of work! 😁

Daw11 commented 5 years ago

@10jasper10 There's already a pull with the changes: #31831 It should be ready now but before it can be merged it must be reviewed by the developers.

akien-mga commented 4 years ago

Feature and improvement proposals for the Godot Engine are now being discussed and reviewed in a dedicated Godot Improvement Proposals (GIP) (godotengine/godot-proposals) issue tracker. The GIP tracker has a detailed issue template designed so that proposals include all the relevant information to start a productive discussion and help the community assess the validity of the proposal for the engine.

The main (godotengine/godot) tracker is now solely dedicated to bug reports and Pull Requests, enabling contributors to have a better focus on bug fixing work. Therefore, we are now closing all older feature proposals on the main issue tracker.

If you are interested in this feature proposal, please open a new proposal on the GIP tracker following the given issue template (after checking that it doesn't exist already). Be sure to reference this closed issue if it includes any relevant discussion (which you are also encouraged to summarize in the new proposal). Thanks in advance!