Journal Nanimstudio, un éditeur d'animations 2d

PostĂ© par (site web personnel) . Licence CC By‐SA.
26
6
fév.
2013

Bonjour Nal,

Je t'écris pour te faire part de la naissance d'un nouvel outil pour créer des animations 2d: nanimstudio.

Il fait partie de mon projet nanim, consistant à spécifier un format d'animation pour les jeux vidéos dont je t'ai déjà parlé ainsi que des programmes associés.

Créé pour Newton Adventure, ce format basé sur protobuf permets un chargement rapide de données optimisées pour les cartes graphiques.

Jusqu'ici je n'avais rĂ©alisĂ© que des utilitaires en ligne de commande, comme nanimenc pour encoder les fichiers Ă  partir de png, nanimview pour les visualiser, sheet2nanim pour convertir des tables de sprite…

Comme j'ai eu envie d'avoir un outil plus intuitif et de pouvoir prévisualiser mes changements en temps réel, j'ai pris un peu de temps pour réaliser Nanimstudio.

Assez simple d'utilisation, il présente 3 grands panneaux: un pour importer les images, un pour éditer la liste des animations et un dernier pour éditer les frames d'une animation.

nanimstudio

Outre le format nanim, il gÚre aussi l'import/export de fichiers gif. J'ajouterais la gestion d'autres formats si quelqu'un a en besoin et en faire ainsi un éditeur générique.

Pour essayer ce logiciel libre (licence BSD), tu peux le télécharger sur la page de nanim.

  • # Autre Ă©diteur

    PostĂ© par (site web personnel) . ÉvaluĂ© Ă  7.

    A noter qu'un autre éditeur permettra de créer des nanims: https://github.com/pops/pixeditor

    pixeditor

    Il s'agit d'un éditeur de sprites, j'ai envoyé un patch à l'auteur pour gérer mon format, il devrait l'intégrer sous forme de plugin.

    Ce post est offensant ? Prévenez moi sur https://linuxfr.org/board

    • [^] # Re: Autre Ă©diteur

      PostĂ© par . ÉvaluĂ© Ă  6.

      gimp permet également de créer des animations 2D, de type "gif animé" (une image par calque). Il existe une extension gimp pour aider à cela, avec des boutons d'animation etc.
      Tu ne l'as pas essayé ?

      « I approve of any development that makes it more difficult for governments and criminals to monopolize the use of force. » Eric Raymond

      • [^] # Re: Autre Ă©diteur

        PostĂ© par (site web personnel) . ÉvaluĂ© Ă  3.

        Pas encore, mais dĂšs que je trouve un bibliothĂšque pour lire du xcf en java, je ferais un convertisseur xcf2nanim.

        Ce post est offensant ? Prévenez moi sur https://linuxfr.org/board

        • [^] # Re: Autre Ă©diteur

          PostĂ© par . ÉvaluĂ© Ă  2.

          Ça sera peut-ĂȘtre plus aisĂ© de faire de l'export de gif vers nanim non ?

          « I approve of any development that makes it more difficult for governments and criminals to monopolize the use of force. » Eric Raymond

        • [^] # Re: Autre Ă©diteur

          PostĂ© par (site web personnel) . ÉvaluĂ© Ă  3.

          Je développe pour Android en utilisant libgdx et pour faire des sprites animés, ça utilise un format qui me semble similaire/compatible. http://code.google.com/p/libgdx/wiki/SpriteAnimation

          Actuellement je fais mes animations avec Gimp et j'ai un plugin (désolé je n'ai plus le nom, je suis pas sur la bonne machine) capable de prendre tous les calques pour les mettre dans le bon format. Ce plugin permet donc au passage de transformer un gif animé en image utilisable pour le sprite.

          Si jamais tu fais de la conversion vers ton format, ça pourrait ĂȘtre pas mal de le faire directement depuis gimp je pense. Regarde donc ce qui existe dĂ©jĂ .

          • [^] # Re: Autre Ă©diteur

            PostĂ© par (site web personnel) . ÉvaluĂ© Ă  2.

            En lisant le code, j'ai l'impression qu'il n'y a pas de format. On charge juste une texture avec les phases de l'animation et la vitesse est définie dans le code:

            walkAnimation = new Animation(0.025f, walkFrames);
            
            

            Ce post est offensant ? Prévenez moi sur https://linuxfr.org/board

            • [^] # Re: Autre Ă©diteur

              PostĂ© par (site web personnel) . ÉvaluĂ© Ă  2.

              Oui, en fait, la texture est simplement dĂ©coupĂ©e ("split") en morceaux de taille identique (en spĂ©cifie le nombre de lignes et colonnes) et ça nous donne un tableau de TextureRegion (mais j'imagine qu'en mĂ©moire ça reste une seule texture Ă  charger). Ensuite on dĂ©finit l'animation par ce tableau de TextureRegion et une durĂ©e d'affichage pour chaque frame. Ici on a donc un pas fixe, donc pour passer d'un format qui permet de spĂ©cifier des durĂ©es diffĂ©rentes pour chaque frame, il faudrait soit dupliquer certaines images (si ça devient pas trop lourd), ou alors je ne pense pas que cela pose de problĂšme, on doit pouvoir se passer de leur classe Animation et faire la mĂȘme chose avec quelque chose de plus gĂ©nĂ©rique.

              Si tu veux promouvoir un certain format, tu devrais regarder si tu ne peux pas facilement l'inclure dans ce type de projet.

              • [^] # Re: Autre Ă©diteur

                PostĂ© par (site web personnel) . ÉvaluĂ© Ă  2.

                Si tu veux promouvoir un certain format, tu devrais regarder si tu ne peux pas facilement l'inclure dans ce type de projet.

                J'hĂ©site Ă  convertir Newton Aventure Ă  libgdx. Quand j'ai commencĂ©, cette lib n'existait pas et j'ai fait du lwjgl direct. Ce portage sera peut ĂȘtre l'occasion…

                Ce post est offensant ? Prévenez moi sur https://linuxfr.org/board

              • [^] # Re: Autre Ă©diteur

                PostĂ© par (site web personnel) . ÉvaluĂ© Ă  2.

                J'ai ajouté un générateur de spritesheets pour faciliter l'utilisation pour pas mal d'api.

                Ce post est offensant ? Prévenez moi sur https://linuxfr.org/board

      • [^] # Re: Autre Ă©diteur

        PostĂ© par . ÉvaluĂ© Ă  2.

        Dis dis dis, tu connais le nom de cette extension ?
        Parce que y'en a beaucoup sur Gimp !
        Fais pas ton radin :D

        Sinon, l'idée d'un éditeur "light" et dédié à ça n'est pas mauvaise.
        C'est mĂȘme parfois mieux.

        • [^] # Re: Autre Ă©diteur

          PostĂ© par (site web personnel) . ÉvaluĂ© Ă  3.

          Sinon, l'idée d'un éditeur "light" et dédié à ça n'est pas mauvaise.

          Un éditeur spécial était de toute façon nécessaire: contrairement aux autres formats, un nanim peut contenir plusieurs animations pour permettre l'optimisation suivante: regrouper dans un minimum de textures toutes les animations d'un niveau.

          Ce post est offensant ? Prévenez moi sur https://linuxfr.org/board

        • [^] # Re: Autre Ă©diteur

          PostĂ© par . ÉvaluĂ© Ă  3.

          Dis dis dis, tu connais le nom de cette extension ?
          Parce que y'en a beaucoup sur Gimp !

          Je pense qu'il parle de Gimp Animation Package, GAP pour les intimes.

          • [^] # Re: Autre Ă©diteur

            PostĂ© par . ÉvaluĂ© Ă  1.

            oui je crois que c'était bien ça !

            « I approve of any development that makes it more difficult for governments and criminals to monopolize the use of force. » Eric Raymond

          • [^] # Re: Autre Ă©diteur

            PostĂ© par . ÉvaluĂ© Ă  1.

            Merci bien !

  • # Alignement

    PostĂ© par . ÉvaluĂ© Ă  7.

    En voyant la capture d'écran, j'pense que l'interface graphique gagnerait en lisibilité si :
    - les panneaux images, animations et frames avaient la mĂȘme largeur
    - il y avait (ou n'y avait pas) le mĂȘme espace entre le nom du panneau et le premier Ă©lĂ©ment qu'il contient
    - les cadres de visualisation Ă©taient alignĂ©s et de mĂȘmes dimensions
    - les boutons add/remove étaient situés sous les champs de modification

    Quoiqu'il en soit, avec ton machin, ça a l'air ridiculement simple de faire une animation. Ça te paraĂźt adaptĂ© pour faire des courts-mĂ©trages d'animation ou c'est Ă  rĂ©server aux jeu-vidĂ©os ?

    • [^] # Re: Alignement

      PostĂ© par (site web personnel) . ÉvaluĂ© Ă  6.

      Il faut que j'ajuste un peu les layouts. Je n'avais jamais fait de swing avant, donc je découvre cette api petit à petit!

      Pour de courts mĂ©trages d'animation, c'est possible, mais limitĂ©: un nanim est fait pour ĂȘtre chargĂ© entiĂšrement en mĂ©moire et non compressĂ©: des outils comme ktoon ou synfig seront beaucoup plus adaptĂ©s.

      Ce post est offensant ? Prévenez moi sur https://linuxfr.org/board

  • # nanimopt

    PostĂ© par (site web personnel) . ÉvaluĂ© Ă  2.

    Au fait pourquoi tu ne fais pas une recherche exhaustive pour nanimopt ? Il faut quand mĂȘme un gros nombre d'image pour ne pas arriver Ă  les trier (>100 ?). Beaucoup de problĂšmes np-complet sont dĂ©finit avec peu d'Ă©lĂ©ments. Si cela calcul pendant quelques minutes de plus pour sauver de la place en mĂ©moire, personne ne t'en voudra.

    "La premiÚre sécurité est la liberté"

    • [^] # Re: nanimopt

      PostĂ© par (site web personnel) . ÉvaluĂ© Ă  2.

      J'ai estimé que la recherche exhaustive n'était pas plus simple à implémenter que mon heuristique et ne donnerait pas de meilleurs résultats pour les données que j'utilise.

      Si je tombe sur cas mal optimisé, je ferais un nanimopt2!

      Ce post est offensant ? Prévenez moi sur https://linuxfr.org/board

      • [^] # Re: nanimopt

        PostĂ© par (site web personnel) . ÉvaluĂ© Ă  2.

        De mĂ©moire le bin packing avec un tri, permet de garantir d'ĂȘtre Ă  50% de l'optimal. C'est dĂ©jĂ  pas mal.

        "La premiÚre sécurité est la liberté"

  • # Derniers ajouts

    PostĂ© par (site web personnel) . ÉvaluĂ© Ă  2.

    J'ai ajouté les possibilités suivantes:

    • import/export de spritesheets.
    • lancement de l'optimisation.
    • fusion de plusieurs nanims.

    Ce post est offensant ? Prévenez moi sur https://linuxfr.org/board

Suivre le flux des commentaires

Note : les commentaires appartiennent Ă  celles et ceux qui les ont postĂ©s. Nous n’en sommes pas responsables.