Skip to Content

Unity Animation


Le but de cet outil est de créer des effets d'animation (élastique, rebond, exponentiel, etc...) de manière simplifiée et générique. 

Les animations peuvent aller de Vector2, Vector3 à Quaternion, float, int, etc...

Cet outil est donc customisable afin de donner une animation dynamique avec effets qui prend des valeurs minimales et maximales variables d'un scénario à l'autre.




Voici l'exemple d'un script de test. Le script utilise les utils qui s'utilise au minimum avec 2 arguments (la valeur finale, et la durée de l'animation), énormément de champs optionnels existe comme le type de l'animation et le sens de l'animation.

L'animation manager s'occupera de gérer toutes les animations existantes et de les mettre à jour au runtime.


Versions du projet

  • Séparation des animations génériques en deux branches

    • Les "Managed Animations" qui sont géré par l'utilisateur en passant par le pipeline de mise à jour des animations

    • Les "Fixed Animations" qui si l'utilisateur ne renseigne pas de pipeline de mise à jour, est géré via du code unsafe pour mettre à jour automatiquement à l'adresse mémoire la variable correspondante

  • Ajout de 28 nouveaux types d'animations

  • Ajout d'utils (500 lignes)

  • Les animations prennent désormais un deuxième argument générique qui laisse à l'utilisateur la possibilité de passer n'importe quel objet qui sera envoyé dans le pipeline d'update des animations, ce qui revient à réduire le Garbage Collector généré en évitant les appels externes des fonctions lambda.

  • Ajout de la récupération au runtime de la progression de l'animation (entre 0 et 1)

  • Réécriture de toutes les formules d'animation pour profiter du Burst Compiler de Unity

  • Ajout d'utils (400 lignes)

  • Suppression des Components Unity pour passer sur des instances de classes (Performances obligent j'ai décidé de couper la partie GD car je considère que les Animators de Unity sont fait pour les animations fixes)

  • Ajout de près de 300 lignes d'utils en méthode d'extension pour pouvoir faire par exemple "transform.MoveTo()"

  • Optimisations en précalculant les valeurs à interpoler

  • Ajout des animations génériques

    • ​ Chaque animation implémente sa propre évaluation de l'animation

  • Ajout d'un Animation Manager

  • Ajout d'un système d'animation tweakable via l'éditeur Unity pour les GD

  • Ajout d'un Debug des Animations pour prévisualiser les animations dans le monde sans lancer le jeu

  • Base du projet Unity

    • Création d'un component Unity "Simple Animation" qui gère l'avancement dynamique d'une valeur dans un temps donné avec une transition

    • Création de toutes les animations