Aller au contenu

Animation de propriétés

L'animation de propriété est une fonctionnalité de VRmaze permettant la variation de paramètres dans le temps de la passation. L'idée ici est de proposer un système permettant la création de fonction f(t) et de les appliquer à une propriété choisie, et ce, sans programmation.

Animation de propriétés

L'animation de propriété permet, sans programmation de contrôler une propriété en fonction du temps. Une compréhension de ce système permet d'aller assez loin sans notion de programmation.

Référentiel temporel

L'ensemble des animations auront toutes un timecode de départ de 0. VRmaze trouvera le meilleur candidat à la fourniture d'un code temporel lors de la passation. Il est ainsi possible d'utiliser les animations de propriétés sur une expérimentation : dans ce cas, le référentiel de temps sera le début de l'expérimentation. Dans le cas d'une animation de propriété dans un essai, le timecode du début d'essai sera utilisé.

Déclenchement d'animation

Il est possible d'utiliser un certain type d'animation qui ne s'exécutera qu'en fonction d'un déclencheur. Ce déclencheur doit être programmé en C#.

Visualisation de graphiques

L'animation de propriétés utilise largement l'éditeur graphique de VRmaze pour permettre une visualisation des courbes d'animations. Chaque système, contrôleur ou nœud d'animation de propriété, utilisant le système graphique intégré propose deux paramètres offrant la possibilité de régler le temps visualisé (à partir de 0 quoi qu'il arrive) et la densité de points calculés. Ces deux paramètres, non sauvegardés dans le fichier protocole, permettent d'optimiser la visualisation, mais n'agissent en rien sur la fonction mathématique contrôlant la courbe.

Paramètres d'affichage

Les paramètres d'affichage n'ont d'effets que sur la représentation du graphique, aucunement sur les fonctions mathématiques sous-jacentes.

Types de signaux

Image title 2

Un contrôleur sinusoïdal.

VRmaze est fourni avec un ensemble de fonctions mathématiques (contrôleurs) permettant de générer un signal en fonction du temps. Ces contrôleurs sont paramétriques et peuvent être configurés à loisir. Chaque contrôleur dispose de ses propres paramètres.

Sauvegarde des signaux

Les paramètres des contrôleurs sont sauvegardés dans le fichier de protocole tels qu'ils sont, sans être converti en animation par image clé.

L'ensemble de ces signaux sont contenus dans une liste d'animation et sont appliqués à la propriété sélectionnée. Si plusieurs contrôleurs sont appliqués en même temps dans une liste d'animation, VRmaze fera la somme à l'instant t de tous les contrôleurs ajoutés pour calculer la valeur à appliquer à la propriété.

Dépassement de l'espace graphique

Une fonction mathématique générant un signal n'aura aucune limite temporelle. En-dehors de l'intervalle visualisé par le graphique, le contrôleur continuera à générer un signal.

Cas du contrôleur d'animation "Table"

Image title 2

La liste de sous-signaux du contrôleur `Table Signal contrôler`.

Le contrôleur générique Table Signal contrôler n'est pas un contrôleur de signal comme les autres. Ce dernier dispose d'une liste de sous-signaux applicables permettant la génération de signaux complexes. Ces signaux sont générés à partir de tables de valeurs pré-enregistrées dans VRmaze.

Animation par clés

Image title 2

Courbe d'animation par images clés

Les fonctions mathématiques permettent de prendre en compte un grand nombre de cas d'utilisation. Toutefois il est souvent nécessaire de vouloir créer des signaux de toute pièce, avec un contrôle total sur la courbe d'animation. En ce sens, VRmaze propose un contrôleur d'animation spécifique Key Animation Controler qui permet la création de signaux par clés d'animation.

La clé d'animation est une entité contenant uniquement 2 propriétés, un timecode et une valeur. VRmaze créera un "lien" entre 2 clés temporellement proches et le contrôleur par clé peut prendre en compte autant de clés que nécessaire.

Modification de clés d'animation

Il est possible de modifier la valeur d'une clé d'animation directement dans l'éditeur graphique.

Boucle de traitement

Dans le cas d'une utilisation de clés d'animation, VRmaze ne peut pas déduire la manière de procéder au calcul en dehors de la courbe défini par les clés. Pour résoudre le problème VRmaze propose un système de boucle de traitement pouvant prendre 3 formes :

  • Sortie en boucle - Lorsque la dernière clé est dépassée, on repart à t=0.
  • Sortie constante - Passée la dernière clé, la valeur calculée est égale à la dernière clé indéfiniment.
  • Sortie miroir - Lorsque la dernière clé est dépassée, le calcul s'effectue à l'envers jusqu'à t=0 puis repart (Ping-pong).

Dans l'exemple suivant, l'animation s'arrête à t=50.

Sortie en boucle Sortie constante Sortie miroir
! ! !

Interpolation de courbe

Le "lien" entre deux clés temporellement proches est en fait une interpolation temporelle entre ces deux clés. L'interpolation peut prendre 3 formes :

L'interpolation linéaire prend les deux clés et calcule une valeur linéaire entre ces deux valeurs. Aux bornes des clés, la courbe d'animation est discontinue. L'interpolation cubique prend en compte plusieurs clés d'animation autour d'un point et en calcule une valeur lissée. Cela permet d'obtenir un signal courbe continu. Le dernier système d'interpolation n'en est pas un puisque dans ce cas, la valeur calculée est égale à la clé précédente la plus proche temporellement.

Interpolation Linéaire Interpolation cubique Interpolation constante
! ! !

Animation par expression

VRmaze offre la possibilité de créer son propre signal basé sur une fonction mathématique pouvant être complexe. Cette fonction est de la forme f(t) ou t est le temps de référence. Dans ce cas d'utilisation des expressions il n'est pas possible d'utiliser d'autres variables que le temps [T].

!

Courbe d'animation pseudo aléatoire générée par une formule mathématique en f(t)

VRmaze propose un autre type de contrôle de propriété qui peut être basée sur le temps, mais aussi et surtout sur n'importe quelle autre propriété de n'importe quelle autre entité. Pour cela, l'idée est d'ajouter un certain nombre d'opérandes en selectionnant les entités liées et les propriétés de ces entités liées. En leur affectant un identifiant d'operande, il devient possible d'utiliser l'identifiant dans la formule de l'expression.

Identifiant d'opérande

Les identifiants d'operandes peuvent prendre n'importe quelle valeur sous forme de chaine de caractère. Attention toutefois, un certain nombre de mots clés sont déja réservés (et utilisable sans avoir établir de lien d'opérande au préalable)

Déclenchement d'animation

VRmaze offre la possibilité de lancer des animations à partir de déclencheurs. Il en existe 3 possibles :

  • Déclenchement sur entrée clavier (pour déclencher sur saisie d'une touche du clavier, ou de la manette)
  • Déclenchement par timecode aléatoire (Pour déclencher une fois l'animation dans un intervalle de temps donné)
  • Déclenchement sur action de l'utilisateur

Il y a 3 manières de déclencher une animation sur action de l'utilisateur :

  • Lorsque l'utilisateur clique sur l'objet
  • Lorsque le pointeur entre en survole de l'objet
  • Lorsque le pointeur ne survole plus l'objet

Animation sur action de l'utilisateur

Pour que l'animation sur action de l'utilisateur fonctionne, il est nécessaire d'avoir une collision sur l'objet (de manière a pouvoir capter le pointeur).

Animations déclenchées

Par défaut, l'ensemble des animations se lancent lorsqu'elles sont créées au runtime. Pour utiliser un déclencheur, il faut utiliser un controleur d'animation spécifique Trigger Float Animation Property.