Partage
  • Partager sur Facebook
  • Partager sur Twitter

[Biblio] Universal Tween Engine

Animez n'importe quel attribut de n'mporte quel objet java !

    20 avril 2011 à 11:44:18

    Image utilisateur

    Introduction



    Bonjour,

    J'ai créé il y a quelques temps une bibliothèque qui pourrait intéresser, je l'espère, plusieurs personnes. Elle permet de créer en quelques lignes des interpolations fluides, pour par exemple déplacer un objet, modifier sa rotation, sa couleur, sa taille, sa transparence, etc.

    On retrouve ce genre de bibliothèque dans plusieurs frameworks, comme l'API Flash ActionScript 3.0, les StoryBoards en Silverlight et WPF (.NET), les animations en JavaFX, et j'en passe. Cela dit, tous ces frameworks sont limités à certains types d'animations (position, rotation, etc), et pour certains objets seulement (composants d'interface graphique...).

    Ce qui je propose ici est une bibliothèque universelle, qui permet d'animer n'importe quoi, et ce sur n'importe quel objet. Cette généricité tient à une interface à implémenter, afin de permettre au moteur de comprendre comment animer vos objets.

    Exemple d'utilisation:
    // La ligne suivante va modifier la rotation d'un objet de sa valeur
    // actuelle à 360° pendant 1000ms (1s), avec une animation de type 
    // élastique.
    
    Tween.to(monObjet, MesTypes.ROTATION, 1000, Elastic.OUT).target(360).start();
    
    // La ligne suivante va modifier la position d'un objet de sa valeur
    // actuelle à x=20 et y=30 pendant 1000ms (1s), avec une animation 
    // de type "accélération-décélération", mais seulement après un délai
    // de 2000ms (2s).
    
    Tween.to(monObjet, MesTypes.POSITION_XY, 1000, Quad.INOUT).target(20, 30).delay(2000).start();
    


    Comme on le voit, les instructions peuvent être enchaînées pour moins de verbosité.

    Android, Java3D, Lwjgl, JoGL, Swing, SWT,...



    Bien sûr, vu que la bibliothèque est universelle, elle est de facto utilisable avec n'importe quel framework ; vous pouvez TOUT animer. Concernant Android, il est d'ailleurs possible d'éviter tout garbage collector en activant le tween pooling, ou la réutilisation des objets créés. En effet, sous Android, le garbage collector peut poser de sérieux problèmes à vos jeux, vous le savez...

    Infos pratiques



    Page du projet (avec téléchargements, wiki, et une démo exécutable):
    http://code.google.com/p/java-universal-tween-engine/

    A venir



    Je travaille actuellement sur un éditeur visuel pour les animations (inspiré par Expression Blend). Le stade actuel est le suivant:

    Image utilisateur

    En espérant que tout cela vous soit utile ;-)
    • Partager sur Facebook
    • Partager sur Twitter
      19 septembre 2019 à 19:59:44

      Je suis tombé sur la bibliothèque la semaine dernière. Et je la trouve très intéressant.
      • Partager sur Facebook
      • Partager sur Twitter

      [Biblio] Universal Tween Engine

      × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
      × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
      • Editeur
      • Markdown