Animations des personnages
AnimationController (swap d'AnimatorOverrideController), AnimationDatabase (registre), AnimationData (paires robot/avatar) et AnimationTag (filtre par intensité).
Le dossier Characters/Animation/ gère la lecture des animations pour le robot et l’avatar. Le même système alimente tous les modes de jeu (AP, APA, RC).
AnimationController
MonoBehaviour attaché à chaque personnage. Un seul champ à configurer dans l’inspecteur : characterType (Robot ou Avatar).
PlayAnimation(AnimationData anim) :
- Choisit l’
AnimatorOverrideControllerselon lecharacterType. - Remplace le contrôleur de l’
Animatorà la volée (runtimeAnimatorController). - Appelle
Play("Start")pour démarrer l’animation depuis le début.
Lève une exception si animationData est null, si le contrôleur robot/avatar n’est pas défini, ou si characterType est inconnu — intention explicite pour détecter les erreurs de configuration tôt.
AnimationData
ScriptableObject représentant une animation. Contient :
| Champ | Description |
|---|---|
animationName | Nom lisible (affiché à l’écran pendant l’activité) |
robotController | AnimatorOverrideController pour le robot |
avatarController | AnimatorOverrideController pour l’avatar |
tags | Liste de AnimationTag pour le filtrage |
audioClip | Instruction vocale associée (ex. “Saute !”) |
AnimationTag — système de filtrage
Enumération utilisée par les GameManagers pour sélectionner les animations appropriées au contexte.
| Tag | Signification |
|---|---|
APA | Animation de type APA (physique + cognitif) |
AP | Animation de type Pause Active |
APMV | Activité Physique Modérée à Vigoureuse (effort) |
APL | Activité Physique Légère (récupération) |
Silencieux | Mouvement sans bruit (pieds au sol) |
RC | Retour au calme |
Les GameManagers filtrent la liste globale avec UserSettings.TagsApmv / TagsApl pour obtenir des sous-listes cohérentes, puis les mélangent avec l’algorithme Fisher-Yates.
AnimationDatabase
Singleton (AbstractSingleton) qui charge et garde en mémoire tous les AnimationData depuis Resources/. Les GameManagers appellent AnimationDatabase.GetAnimationsByTags(tags) plutôt que de chercher les assets directement.
Comportements d’idle
| Script | Emplacement | Rôle |
|---|---|---|
IdleBehaviorAvatar | Avatar | Anime aléatoirement l’avatar quand il ne fait rien |
BlinkAnimationAvatar | Avatar | Clignement des yeux |
YogaBehaviorAvatar | Avatar | Étirements/yoga pendant les temps calmes |
IdleMenu | Robot | Animations d’attente du robot dans les menus |
EmotionManagerRobot | Robot | Commute entre les états émotionnels (content, surpris, excité, triste) |