Animation d’un caractère
[Microsoft Agent est déconseillé à partir de Windows 7 et peut ne pas être disponible dans les versions ultérieures de Windows.]
Une fois qu’un caractère est chargé, vous pouvez utiliser plusieurs méthodes de Microsoft Agent pour animer le caractère. La première que vous utilisez est généralement la méthode Show . Show rend le cadre du personnage visible et lit l’animation affectée à l’état d’affichage du personnage.
Une fois le cadre du personnage visible, vous pouvez utiliser la méthode Play , en spécifiant le nom d’une animation, pour lire cette animation. Les noms d’animation sont spécifiques à une définition de caractère. À mesure qu’une animation est lue, la forme de sa fenêtre change pour correspondre à l’image dans le cadre. Il en résulte une image graphique mobile, ou sprite, affichée sur le bureau et toutes les fenêtres, ou ordre de plan.
Si le fichier du caractère est stocké localement, vous pouvez simplement appeler la méthode Play . Dans d’autres cas, par exemple lorsque vous avez chargé un . Caractère ACF à partir d’un serveur HTTP, vous devez utiliser la méthode Get (ou Prepare) pour récupérer d’abord les données d’animation. L’Agent demande alors le fichier d’animation du serveur et le stocke dans la mémoire tampon du navigateur sur l’ordinateur local.
La méthode Speak vous permet de programmer le caractère pour qu’il parle, en synchronisant automatiquement la sortie sur les lèvres. Pour plus d’informations, consultez la section Sortie de ce document.
Vous pouvez utiliser la méthode MoveTo pour positionner le caractère à un nouvel emplacement. Lorsque vous appelez la méthode MoveTo , Microsoft Agent lit automatiquement l’animation appropriée en fonction de l’emplacement actuel du personnage, puis déplace l’image du caractère. De même, lorsque vous appelez GestureAt, Microsoft Agent lit l’animation de gesturing appropriée en fonction de l’emplacement du personnage et de l’emplacement spécifié dans l’appel.
Pour masquer le caractère, appelez la méthode Hide . Cette opération lit automatiquement le caractère associé à l’état de masquage du caractère, puis masque le cadre du caractère. Toutefois, vous pouvez également masquer ou afficher un caractère en définissant la propriété Visible du caractère.
Microsoft Agent traite tous les appels d’animation, ou demandes, de manière asynchrone. Cela permet au code de votre application de continuer à gérer d’autres événements pendant le traitement de la demande. Par exemple, les appels à la méthode Play placent l’animation dans une file d’attente pour le personnage afin que les animations puissent être lues séquentiellement. Toutefois, cela signifie que vous ne pouvez pas supposer qu’un appel à d’autres fonctions s’exécutera nécessairement après une animation qu’il suit dans votre code. Par exemple, en général, une instruction qui suit un appel à Play ou MoveTo s’exécute avant la fin de l’animation.
Vous pouvez synchroniser votre code avec des animations dans la file d’attente d’un caractère en créant une référence d’objet à la demande d’animation et, lorsque l’animation démarre ou se termine, en surveillant les événements request que le serveur utilise pour informer les clients du caractère. Par exemple, si vous souhaitez qu’une boîte de message s’affiche lorsque le caractère termine une animation, vous pouvez placer l’appel de la boîte de message dans votre sous-routine de gestion des événements RequestComplete , en vérifiant l’ID de demande particulier.
Lorsqu’un personnage est masqué, le serveur ne lit pas d’animations ; Toutefois, il met toujours en file d’attente et traite la demande d’animation (lit l’animation) et transmet une requête status au client. Dans l’état masqué, le caractère ne peut pas devenir input-active. Toutefois, si l’utilisateur parle le nom du caractère (lorsque l’entrée vocale est activée), le serveur affiche automatiquement le caractère.
Lorsque votre application cliente charge plusieurs caractères en même temps, les services d’animation de Microsoft Agent vous permettent d’animer des caractères indépendamment ou d’utiliser les méthodes Wait, Interrupt ou Stop pour synchroniser leur animation entre elles.
Microsoft Agent lit également d’autres animations automatiquement pour vous. Par exemple, si l’état du personnage n’a pas changé pendant plusieurs secondes, Agent commence à lire les animations affectées aux animations d’inactif du personnage. De même, lorsque l’entrée vocale est activée, Agent lit les animations d’écoute du personnage, puis les animations d’audition lorsqu’un énoncé est détecté. Ces animations gérées par le serveur sont appelées états et sont définies lors de la création d’un caractère. Pour plus d’informations, consultez Conception de caractères pour Microsoft Agent.