CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

[SDL] Gifs

Epoch
Epoch
Niveau 10
14 avril 2010 à 02:15:06

Bonsoir tout le monde!

Bon, ici, il ne s'agit pas de lire une animation sur la fenêtre ou quoi que ce soit, de ce côté-là, c'est bon ^^.

Non, ce que je cherche à faire depuis un moment, c'est, à partir d'un gif, obtenir toutes les trames pour ainsi pouvoir faire une animation en bonne et due forme sans avoir 25000 images dans le dossier de mon jeu, ce qui n'est franchement PAS très pratique...

Du genre, j'aimerais pouvoir faire quelque chose comme ça :

SDL_Surface** ObtenirAnimsGifs (char* NomAnim){

SDL_Surface** anim;

anim = (SDL_Surface**)malloc(sizeof(SDL_Surface*));

//Obtenir toutes les trames d'un gif

return anim;

}

Ma question est : Est-ce que cela est possible?

J'ai tout de même mené mes recherches, et voici les possibilités qui s'offrent à moi :

- Avoir 25000 images dans mon dossier. Je refuse catégoriquement =).
- Utiliser le plus possible les mêmes surfaces. Pourquoi pas, en dernier recours, m'enfin, j'aurais espéré quelque chose de mieux et de surtout plus pratique.
- Utiliser giflib. Passer de cette lib à SDL, ça doit tenir de l'exploit...
- Utiliser ffmpeg pour les vidéos. Mais j'aimerais ne pas en arriver là, ça doit être lourd comme la mort niveau perfs et les explications au sujet de cette lib m'échappent (rappelons que je ne suis qu'en 1ère année =/ )
- Décomposer les trames d'un gif. L'idéal. Je sais que la lib SDL_Image lit le gif, mais la question que je me pose est la suivante : Toutes les trames sont-elles lues ou seulement la 1ère?

guyver2
guyver2
Niveau 10
14 avril 2010 à 09:20:05

utiliser un gif animé n'est pas la bonne facon pour animer un personnage/objet dans un jeu video. Personellement j'utilisai une image par frame mais ça nous ramène a ton "25000 images dans mon dossier".
La solution la plus utilisée est de te servir de planche de sprite. Une grande image png/jpg qui contient toutes les positions de ton objet/perso.

Ya plein de tutos la dessus. J'en ai trouvé un vite fait (en anglais) qui explique pas mal comment faire et qui file un code d'exemple complet
http://gamedevgeek.com/tutorials/animating-sprites-with-sdl/

Epoch
Epoch
Niveau 10
14 avril 2010 à 12:47:19

guyver=>Un sprite, d'accord, mais de cinématiques? l'image ferait 2 km de long là =/

En ce qui concerne l'animation des persos, etc... j'ai ma propre méthode, utilisable pour les cinématiques mais qui évidemment me ramène à mon "25000 images dans mon dossier". Et ce que je cherche, c'est décomposer un gif, pas l'animer.

Je pense que je vais devoir "coder" la cinématique, on dirait.

Kaoron
Kaoron
Niveau 9
14 avril 2010 à 14:47:59

« Un sprite, d'accord, mais de cinématiques? l'image ferait 2 km de long là =/ »

Et alors ? Ton Gif fait aussi 2km de long, la seule différence c'est qu'il est enroulé autour d'un rouleau de PQ, et que t'es obligé de venir demander de l'aide sur un forum pour le dérouler. T'emmerdes pas avec gif, prends la solution la plus simple : généralement c'est la meilleure.

Sinon, pour une cinématique, tu as le "droit" d'utiliser une vidéo compressée. C'est bien aussi.

Epoch
Epoch
Niveau 10
14 avril 2010 à 16:49:50

"Et alors ? Ton Gif fait aussi 2km de long"

Pas faux, enfin le truc c'est que pour manipuler une image de 2 km de long (donc récupérer la bonne surface dans le fichier, etc...), disons que j'ai pas le temps (je l'ai pas précisé, mais c'est dans le cadre d'un projet tuteuré dont l'oral se déroule fin mai, et il me reste d'autres trucs à faire en parallèle ;) )

"T'emmerdes pas avec gif, prends la solution la plus simple : généralement c'est la meilleure. "

Coder la cinématique, alors.

"Sinon, pour une cinématique, tu as le "droit" d'utiliser une vidéo compressée. C'est bien aussi. "

Je l'ai dis, y'a ffmpeg qui existe pour ça mais les tutoriels à ce sujet sont incompréhensibles (ou alors c'est moi qui n'y capte rien...)

Sous forums
  • Aide à l'achat Mac
  • Macintosh
  • Création de Jeux
  • Programmation
  • Création de sites web
  • Linux
  • Internet
  • Steam Deck
  • Hardware
La vidéo du moment