• Aucun résultat trouvé

La deuxième branche de l’arbre comportemental (figure 3.8) s’occupe des actions de l’agent virtuel quand il n’y a aucune interaction qui se produit. Elle s’exécute quand l’agent virtuel est inoccupé. L’exécution de cette branche ne se fait que si la première branche (figure 3.7) renvoie la valeur Échec. L’exécution est séquentielle. Elle com- mence par incrémenter la valeur du compteur d’inactivité. Ensuite si la valeur-limite est atteinte (condition “Timer ?”), une action à exécuter est choisie aléatoirement, par exemple “Dance”). Ceci permet à l’agent virtuel de ne jamais rester totalement immobile.

3.3.2

Évaluation des émotions

L’évaluation des émotions est faite par l’action “Evaluate Affect” dans l’arbre comportemental. Le moteur émotionnel GAMYGDALA [27] (section 2.7.2) est utilisé dans cette action. Pour cela, nous établissons deux tables. La première table (tableau

3.1) concerne les buts et leurs désirabilités et la deuxième (tableau 3.2) concerne les croyances et leurs impacts sur les buts.

3.3. Architecture interne du module émotionnel

tableau 3.2 Table des croyances

Les valeurs des désirabilités et des congruences (tableaux 3.1 et3.2) varient de -1 (pour un but non-désirable ou bien une croyance qui annule complètement un but) à 1 (pour un but désirable ou bien une croyance qui valide complètement un but).

Tel que stipulé dans la section2.7, à tout moment, l’émotion de l’agent virtuel est le résultat des émotions liées à la personnalité, l’humeur et l’événement (formule3.1). Cette émotion est exprimée selon le vecteur PAD à trois dimensions. À l’initialisation, le moteur GAMYGDALA reçoit la personnalité de base de l’agent virtuel. Puis dès qu’un événement apparaît, celui-ci est converti en PAD et transmis au moteur émo- tionnel GAMYGDALA. L’évaluation d’un événement reçu se fait en 4 étapes comme décrit par Popescu [27] :

— Étape 1 : évaluer la désirabilité d’un événement par rapport aux buts et selon la formule 3.2;

— Étape 2 : évaluer la probabilité de réalisation de chaque but après l’arrivée de l’événement (formule 3.3). Cette probabilité est gardée en mémoire pour calculer son évolution à chaque événement, ainsi ΔP robabilité(but) est défini ; — Étape 3 : évaluer l’intensité de chaque émotion du modèle OCC en se basant

sur la formule 3.4;

— Étape 4 : évaluer la valeur du vecteur PAD selon la formule3.5. La sommation est réalisée sur toutes les émotions du modèle OCC, en utilisant leur vecteur PAD pour calculer l’émotion résultante (voir tableau2.3).

3.3. Architecture interne du module émotionnel



P ADagentvirtuel =P AD personnalité+P AD événement+P AD humeur (3.1) Avec :

P AD agentvirtuel correspond à l’état émotionnel de l’agent virtuel. Cet état est mis à jour régulièrement à intervalle régulier ;

P AD personnalité correspond à la constante de la personnalité OCEAN transfor- mée en vecteur PAD en appliquant les formules 2.2;

P AD événement correspond au résultat de l’évaluation de l’événement reçu sans tenir compte de l’historique émotionnel ;

P AD humeurcorrespond à l’humeur de l’agent virtuel. Cette humeur change par rapport au temps pour atteindre l’humeur neutre (formule 2.1).

Le modèle PAD décrit chacune des composantes P, A et D comme étant des variables indépendantes. Pour cette raison, nous appliquons une somme des vecteurs de la formule3.1pour préserver la sémantique liée aux variables du modèle. La formule 3.1 est une première approximation qui pourra être validée par des recherches futures et des études empiriques.

Désirabilité(événement, but) = congruence(événenment, but)× désirabilité(but)

(3.2) Avec :

— congruence(événement, but) correspond à la valeur fixée dans la table 3.2; — désirabilité(but) correspond à la valeur de la désirabilité d’un but récupérée

de la table3.1.

P robabilité(but) = (congruence(événément, but) + 1)/2 (3.3) Avec :

— congruence(événement, but) correspond à la valeur fixée dans la table 3.2; Cette probabilité qui décrit la probabilité de réalisation du but est enregistrée en mémoire pour pouvoir calculer la valeur de ΔP robabilité(but) qui décrit la variation de la réalisation du but.

3.3. Architecture interne du module émotionnel

Intensité(événement) =|Désirabilité(événement, but) × ΔP robabilité(but)| (3.4)

Avec :

— Désirabilité(événement, but) correspond à la valeur de la formule 3.2.

— ΔP robabilité(but) correspond à la variation de la probabilité de la réalisation du but.

Cette intensité calculée concerne l’émotion liée à l’événement reçu sans prendre en considération l’historique émotionnel de l’agent virtuel.



P ADévénement = 0.1× log2( 

émotion

(210× P AD(émotion)×Intensité(événement))) (3.5)

Avec :

P AD(émotion) correspond à la valeur PAD de l’émotion selon le tableau 2.3; — Intensité(événement) correspond à la valeur calculée à partir de la formule

3.4.

Cette évaluation en 4 étapes sert à calculer l’émotion à la réception d’un événement sans prendre en considération ni l’humeur ni la personnalité. De ce fait, la valeur du vecteur PAD à l’état initial est égal à la conversion des valeurs de la personnalité OCEAN en PAD et ceci selon la formule2.2. Ce vecteur P ADpersonnalité est considéré comme étant l’état neutre.

Le vecteur P ADhumeur est défini tel que, initialement, il est égal à la valeur du vecteur P ADpersonnalité. À chaque évaluation émotionnelle par le moteur GAMYG- DALA, le P ADévénement résultant (formule 3.5) est additionné à la valeur du vecteur

P ADhumeur. Le facteur de dissipation est rajouté permettant de rétablir la valeur du vecteur P ADhumeur à la valeur du vecteur P ADpersonnalité.

À chaque changement du vecteur P ADhumeur, nous récupérons l’émotion à expri- mer la plus proche en se basant sur la table 2.3 et nous en déduisons l’intensité de l’expression faciale selon la formule3.6.

3.4. Communication entre les micro-services

IntensitéExpressionF aciale = 1− distance(émotioncalculée, émotionproche) (3.6)

3.3.3

Correspondance entre émotions et expressions faciales

L’agent virtuel exprime les émotions générées selon le modèle OCC à l’aide des expressions faciales. Ces expressions faciales proviennent de l’agent virtuel MARC, ba- sées sur le modèle FACS, en utilisant une table de correspondance émotion-expression faciale. Le modèle OCC définit 22 émotions, mais il n’est pas possible de traduire toutes émotions en expressions faciales. Une table de correspondance (tableau 3.3) entre émotions et expressions faciales à été créée en se basant sur la définition de chaque émotion dans le modèle OCC et sur les 24 expressions faciales décrites dans [44].

3.4

Communication entre les micro-services

Les communications entre les micro-services du calendrier Amelis sont synchrones ou asynchrones. Les communications asynchrones sont utilisées lorsque les communi- cations entre le frontend et le backend passent par l’API REST ou lors des communi- cations entre l’agent virtuel et le module émotionnel. Les communications synchrones assurées par les websockets sont implémentées entre les modules de langues et le ba- ckend ainsi qu’entre le frontend et le backend, essentiellement pour le déclenchement des rappels.

La figure 3.9 illustre les liaisons entre les composantes du calendrier Amelis ainsi que le type de messages qui sont envoyés.

3.4.1

API REST

L’API REST expose un ensemble de routes HTTP pour exécuter les opérations sur la base de données. Ces opérations sont réalisées avec des appels REST en spéci- fiant la méthode adéquate (exemple GET, POST, PUT ou DELETE) sur cette route spécifique. Par exemple pour récupérer la liste des rendez-vous du calendrier, une

3.4. Communication entre les micro-services

tableau 3.3 Correspondance entre émotions et expressions faciales

Émotion Expression faciale Intensité max.

Admiration Surprise 30%

Réjouissance Joie + Surprise 50%

Satisfaction - - Reconnaissance Joie 50% Joie Joie 100% Espoir Joie 50% Amour - - Fierté Joie 60% Soulagement - - Satisfaction - - Colère Colère 100% Déception Consternation 100%

Angoisse Peur + Colère 100%

Peur Peur 100%

Peurs confirmées Peur 100%

Haine Haine 100%

Pitié Tristesse 100%

Remords Tristesse + Dégoût 100%

Reproche - -

Ressentiment Consternation 60%

3.4. Communication entre les micro-services