Aller au contenu

Utilisation des graphes de comportement

Après avoir introduit le système de graphe de comportement, les nodes, les connecteurs et les connexions, il convient de voir plus en profondeur les possibilités offertes par le système de graphe, mais avant toute chose, voyons comment utiliser un graphe.

Affectation d'un graphe à une entités

Un grand nombre d'entités sont compatibles avec les graphes de comportement et peuvent utiliser des comportements programmés. Concrètement, toute entité qui n'est pas une liste peut utiliser un ou plusieurs graphe de comportement.

Pour associer un graphe à une entité, il faut simplement aller dans l'onglet Attributs et comportements de l'entité en question.

Image title 2

L'onglet d'attributs et de comportements

Dans cet onglet, il est possible d'affecter un ou plusieurs graphes de comportement.

Image title 2

La fonction d'assignation d'un graphe de comportement à l'entité

Image title 2

Le graphe de comportement ajouté

Les variables de graphe

Comme dans tout programme informatique, il peut être nécessaire de stocker une valeur à un instant T pour pouvoir la réutiliser plus tard dans le graphe. Pour cela, le système de graphe permet la création de variables qui sont stockées au sein même du graphe.

Image title 2

Un node de commentaire incluant le node de départ et un court texte.

Il existe plusieurs types de variables :

  • Bool (Variable booléenne)
  • Color (Variable couleur à 4 composantes)
  • InputKey (Variable de touche de clavier)
  • Number (Variable numérique double précision)
  • String (Variable texte)
  • Vector 2 (Variable à deux composantes numériques)
  • Vector 3 (Variable à trois composantes numériques)

Manipulation des variables

Les variables peuvent être utiliser via deux nodes, le "Set Variable Value" et le "Get Variable Value". Ces deux nodes nécessites une configuration interne du nom de la variable à utiliser.

Image title 2

Un node de commentaire incluant le node de départ et un court texte.

Propriétaire du comportement et accès aux entités

L’intérêt d'un graphe utilisé par une entité est de pouvoir faire référence aux autres entités du protocole. Cela ne se fait pas directement, il n'est pas possible de faire une référence directe à une entité depuis un graphe, le graphe doit trouver dynamiquement la référence lors de son exécution. Pour cela, le système de graphe propose un grand nombre de nodes d'accessibilité, qui permettent de parcourir l'arbre de protocole en montant ou en descendant :

  • Get Owner (Obtenir l'entité sur laquelle le graphe est assigné)
  • Get Parent (Obtenir le parent de l'entité passé en paramètre)
  • Get Current Trial (Obtenir l'entité Trial en cours d'exécution)
  • Get Current Experiment (Obtenir l'entité Experiment en cours d'exécution)
  • Get Protocol ((Obtenir l'entité Protocole)
  • Get Child By Name(Obtenir une entité enfant de l'entité passé en paramètre en indiquant son nom)
  • Get Children(Obtenir tous les enfants de l'entité en paramètre sous forme de liste)

Image title 2

Les nodes d'accès aux entités.

Le propriétaire

On est assuré que le graphe ait un propriétaire, par conséquent, le node GetOwner doit être la porte d'entrée principale d'accès aux entités du protocole. Ce node est tellement important qu'il est ajouté nativement lorsque l'on créé un nouveau graphe.

Contrôle de propriétés

Le système de graphe propose un ensemble de node d'accès aux propriétés des objets. Un certain nombre de nodes nominatifs permettent le contrôle des propriétés d'une entité, c'est par exemple le cas des nodes de contrôle textuelles "Set 2D Text" et "Get 2D Text".

Toutefois, sachant qu'il n'existe qu'un seul connecteur générique pour les entités, il peut être interessant d'acceder aux propriétés non exposées d'une entité donnée. L'accès aux propriétés se fait en donnant le nom de la propriété.

Image title 2

Le node générique d'accès aux propriétés.

L'utilisation des attributs d'objets

Jusqu'alors, nous avons vu comment concevoir des graphes de comportements qui fonctionnent indépendamment de l'entité sur laquelle ils sont assignés. Les variables étant intégrées au comportement, il n'est pas possible, à priori, de faire varier le comportement d'un graphe en fonction de l'entité assignée.

C'est ici qu'interviennent les attributs d'entité. Il est en effet possible d'utiliser les attributs des entités au sein des graphes de comportement. Ainsi, il est possible d'externaliser certains paramètres de graphe en les déportant sur l'entité. Il devient ainsi possible de créer des comportements qui utilise des données qui sont attachés au propriétaire et non pas au graphe lui même. Il est ainsi possible de créer, par exemple, un graphe générique de déplacement sinusoïdale dans lequel l'amplitude et la fréquence sont externalisés sur l'objet. Le même graphe appliqués a deux objet peut permettre un mouvement différents sur les deux simplement en changeant la valeur des attributs de l'entité.

Pour ce faire, il est nécessaire de déclarer les attributs avec des noms et les valeurs voulus. Par la suite, plusieurs nodes permettent d'obtenir les valeurs des attributs en fonction du type d'attribut.

Image title 2

Les nodes d'accès aux attribus des entités.

Accès aux attributs des autres entités

A vrai dire, l'accès aux attributs n'est pas limité à l'entité propriétaire (obtenue par un "Get Owner"), mais à n'importe quelle entité dès lors qu'on dispose de sa référence en paramètre d'entrée.

Image title 2

Exemple d'attributs utilisés dans les graphes associés.