Stati dell'agente
[Microsoft Agent è deprecato a partire da Windows 7 e potrebbe non essere disponibile nelle versioni successive di Windows.]
I servizi di animazione di Microsoft Agent vengono riprodotti automaticamente in determinate animazioni. Ad esempio, quando si usano i comandi MoveTo o GestureAt , i servizi di animazione svolgono un'animazione appropriata. Analogamente, dopo il timeout di inattività, i servizi riproducino automaticamente animazioni. Per supportare questi stati, è possibile definire animazioni appropriate e quindi assegnarle agli stati. È comunque possibile riprodurre qualsiasi animazione definita direttamente usando il metodo Play , anche se lo si assegna a uno stato.
È possibile assegnare più animazioni allo stesso stato e i servizi di animazione sceglieranno in modo casuale una delle animazioni. Ciò consente al personaggio di mostrare una varietà molto più naturale nel suo comportamento.
Anche se le animazioni assegnate agli stati possono includere fotogrammi di ramo, evitare animazioni in ciclo (animazioni che ramino per sempre). In caso contrario, sarà necessario usare il metodo Stop prima di poter riprodurre un'altra animazione.
È importante definire e assegnare almeno un'animazione per ogni stato che si verifica per il carattere. Se non si forniscono queste animazioni e assegnazioni di stato, il carattere potrebbe non sembrare in modo appropriato per l'utente. Tuttavia, se uno stato non si verifica per un determinato carattere, non è necessario assegnare un'animazione a tale stato. Ad esempio, se l'applicazione host non chiama mai il metodo MoveTo , è possibile ignorare la creazione e l'assegnazione di animazioni dello stato di spostamento .
State | Esempio di utilizzo |
---|---|
GesturingDown | Quando viene elaborato il metodo di animazione GestureAt . |
GesturingLeft | Quando viene elaborato il metodo di animazione GestureAt . |
GesturingRight | Quando viene elaborato il metodo di animazione GestureAt . |
GesturingUp | Quando viene elaborato il metodo di animazione GestureAt . |
Udito | Quando viene rilevato l'inizio dell'input parlato. |
Nascondere | Quando l'utente o l'applicazione nasconde il carattere. |
IdlingLevel1 | Quando il carattere inizia lo stato idling . |
IdlingLevel2 | Quando il carattere inizia il secondo stato del livello di inattività . |
IdlingLevel3 | Quando il carattere inizia lo stato finale del livello di inattività . |
Ascolto | Quando il carattere inizia ad ascoltare (l'utente preme prima il tasto di scelta rapida dell'input vocale). |
MovingDown | Quando viene elaborato il metodo di animazione MoveTo . |
MovingLeft | Quando viene elaborato il metodo di animazione MoveTo . |
MovingRight | Quando viene elaborato il metodo di animazione MoveTo . |
Spostamento | Quando viene elaborato il metodo di animazione MoveTo . |
Visualizzazione | Quando l'utente o l'applicazione mostra il carattere. |
Parlando | Quando viene elaborato il metodo di animazione Speak . |
L'animazione assegnata allo stato di ascolto viene riprodotta quando l'utente preme il tasto di scelta rapida push-to-talk per l'input vocale. Creare e assegnare un'animazione breve che rende il carattere attento. Analogamente, definire la relativa animazione Return per avere una breve durata in modo che il carattere giochi la sua animazione Stato udito quando l'utente parla. Un'animazione dello stato dell'udito deve anche essere breve e progettata per consentire all'utente di sapere che il carattere è attivamente in ascolto di ciò che l'utente dice. Le inclinazioni della testa o altri movimenti leggeri sono appropriati. Per fornire variabilità naturale, fornire diverse animazioni dello stato dell'udito .
È necessario creare e assegnare animazioni dello stato di gesturing solo se si prevede di usare il metodo GestureAt . Le animazioni dello stato di gesturing vengono riprodotte quando Microsoft Agent elabora una chiamata al metodo GestureAt. Se si definiscono sovrimpressione della bocca per le animazioni dello stato di Gesturing , il carattere può parlare come gesti.
I servizi di animazione determinano la posizione del carattere e la relativa relazione alla posizione delle coordinate specificate nel metodo e riprodurre un'animazione appropriata. La direzione di gesturing è sempre rispetto al carattere; Ad esempio, GestureRight deve essere un gesto a destra del carattere.
Gli stati di visualizzazione e nascondi riproduzione delle animazioni assegnate quando l'utente o l'applicazione host richiede di visualizzare o nascondere il carattere. Questi stati impostano anche in modo appropriato lo stato Visibile della cornice di caratteri. Quando si definiscono animazioni per questi stati, tenere presente che un carattere può essere visualizzato o partire in qualsiasi posizione dello schermo. Poiché l'utente può visualizzare o nascondere qualsiasi carattere, supporta sempre almeno un'animazione per questi stati.
Le animazioni assegnate allo stato Visualizzato terminano in genere con una cornice contenente l'immagine di posizione neutrale del carattere. Al contrario, nascondere le animazioni dello stato iniziano in genere con la posizione neutrale. La visualizzazione e la nascondere le animazioni dello stato possono includere rispettivamente un frame vuoto all'inizio o alla fine, per fornire una transizione dallo stato corrente del carattere.
Gli stati di inattività sono progressivi. I servizi di animazione iniziano a usare le assegnazioni di livello 1 per il primo periodo di inattività e usano le animazioni di livello 2 per la seconda. In seguito, il ciclo inattiva passa alle animazioni assegnate al livello 3 e rimane in questo stato fino a quando non viene annullata, ad esempio quando inizia una nuova richiesta di animazione.
Progettare animazioni per gli stati idling per comunicare lo stato del carattere, ma non per distraere l'utente. Le animazioni devono riflettere in modo appropriato la velocità di risposta del carattere in modi sottili ma chiari. Ad esempio, i lampeggianti intorno o blinking sono buone animazioni da assegnare allo stato IdlingLevel1 . Le animazioni di lettura funzionano bene per lo stato IdlingLevel2 . Dormire o ascoltare musica con cuffie sono buoni esempi di animazioni da assegnare allo stato IdlingLevel3 . Le animazioni che includono molti o grandi movimenti non sono adatti per animazioni inattive perché attirano l'attenzione dell'utente. Poiché le animazioni dello stato di inattività vengono riprodotte spesso, forniscono diverse animazioni dello stato di inattività , soprattutto per gli stati IdlingLevel1 e IdlingLevel2 .
Si noti che un'applicazione può disattivare l'elaborazione inattiva automatica per un carattere e gestire lo stato di inattività del carattere stesso. Gli stati idling dell'agente sono progettati per evitare qualsiasi situazione in cui il carattere non ha alcuna animazione da riprodurre. Un'immagine di carattere che non cambia dopo un breve periodo di tempo è come un'applicazione che visualizza un puntatore di attesa per molto tempo, che sottrae dal senso di believità e interattività. Il mantenimento dell'illusione non richiede molto: a volte solo un lampeggiante animato, il respiro visibile o lo spostamento del corpo.
I servizi di animazione usano lo stato Di parlato quando non è possibile trovare un'animazione di parlato per l'animazione corrente. Assegnare un'animazione parlante semplice a questo stato. Ad esempio, è possibile usare una singola cornice costituita dalla posizione neutrale del carattere con sovrimpressione della bocca.
Lo stato Move viene riprodotto quando un'applicazione chiama il metodo MoveTo . I servizi di animazione determinano l'animazione da riprodurre in base alla posizione corrente del carattere e alle coordinate specificate. La direzione del movimento si basa sulla posizione del carattere. Pertanto, l'animazione assegnata all'animazione MovingLeft deve essere basata sulla sinistra del carattere. Se non si usa il metodo MoveTo , è possibile ignorare la creazione e l'assegnazione di un'animazione.
Le animazioni dello stato di spostamento devono animare il carattere nella posizione di spostamento. L'ultima cornice di questa animazione viene visualizzata come cornice del carattere viene spostata sullo schermo. Non è disponibile alcun supporto per animare il carattere mentre la cornice si sposta.
Sebbene sia possibile progettare un carattere personalizzato in modo che le animazioni da usare, Microsoft Agent definisce un set di animazioni standard. I caratteri conformi a questa definizione possono essere selezionati come carattere predefinito.
Nella tabella seguente sono elencate le animazioni incluse nel set di animazioni standard. Anche se si crea un carattere personalizzato, è possibile usare l'elenco come guida per progettare i propri caratteri. I caratteri che supportano il set di animazioni standard devono supportare almeno le animazioni seguenti.
Animazione | Esempio di utilizzo | Animazione di esempio |
---|---|---|
Riconoscere | Quando il carattere riconosce la richiesta dell'utente. | Il carattere nods o lampeggia il gesto della mano "OK". Si noti che questa animazione deve restituire il carattere alla posizione neutra. |
Avviso1,2 | Quando il carattere è in attesa di istruzioni, in genere riprodotto dopo che l'utente attiva la modalità di ascolto. | Visi di carattere davanti, respirazione, lampeggiando occasionalmente, ma chiaramente in attesa di istruzioni. |
Annunciare1,2 | Quando il carattere ha trovato informazioni per l'utente. | Movimenti di carattere alzando le sopracciglia e mano o apre una busta. |
Blink | Al termine della pronuncia o dell'inattività del carattere. | Carattere naturalmente lampeggia gli occhi. |
Confuso1,2 | Quando il carattere non capisce cosa fare. | Il carattere graffia la testa. |
Congratulazionia 1,2 | Quando il carattere o l'utente completa un'attività (una forma più forte dell'animazione Conferma ). | Il carattere esegue un gesto di congratulazioni, trasmette "Sì!" |
Declino1,2 | Quando il carattere non può eseguire o rifiutare la richiesta dell'utente. | Il carattere scuote la testa, trasmette "no can do." |
DoMagic1 | Il carattere si prepara a visualizzare qualcosa. | Onde di carattere mani o bacchetta. |
DoMagic2 | Il carattere completa la visualizzazione di qualcosa. | Il personaggio completa il gesto magico. |
DontRecognize1,2 | Quando il carattere non riconosce la richiesta dell'utente. | Il carattere tiene la mano all'orecchio. |
Spiegare1,2 | Quando il carattere spiega qualcosa all'utente. | Movimenti di carattere come se spiegasse qualcosa. |
GestureDown1,2 | Quando il carattere deve puntare a qualcosa sotto di esso. | Carattere verso il basso. |
GestureLeft1,2 | Quando il carattere deve puntare a qualcosa a sinistra. | Punti carattere con la mano sinistra o si trasforma in una freccia che punta a sinistra. |
Movimento1,2 | Quando il carattere deve puntare a qualcosa a destra. | I punti carattere con la mano destra o si trasformano in una freccia che punta a destra. |
Movimento1,2 | Quando il carattere deve puntare a qualcosa sopra di esso. | Carattere punta su. |
GetAttention | Quando il carattere deve informare l'utente di qualcosa di importante. | Onde di carattere mani o salti su e giù. |
GetAttentionContinued | Per evidenziare l'importanza della notifica. | Continuazione o ripetizione del movimento iniziale. |
GetAttentionReturn | Al termine dell'animazione GetAttention o GetAttentionContinued . | Il carattere torna alla sua posizione neutra. |
Saluta1,2 | Quando l'utente avvia il sistema. | Sorrisi e onde di carattere. |
Audizione1 | Quando il carattere sente l'inizio di un'espressione parlata (attivamente in ascolto). | Il carattere si appoggia in avanti e nod o gira la testa che mostra la risposta all'input vocale. Nota: questa animazione esegue un ciclo a un fotogramma intermedio che si verifica dopo che il carattere si sposta in una posizione appropriata. |
Audizione2 | Quando il carattere sente l'inizio di un'espressione parlata (attivamente in ascolto). | Un'altra variante del tipo di animazione usata in Hearing1Nota: questa animazione scorre in un fotogramma intermedio che si verifica dopo che il carattere si sposta in una posizione appropriata. |
Nascondi | Quando l'utente ignora il carattere. | Il carattere rimuove l'auto dalla schermata. |
Idle1_1 | Quando il carattere non ha attività e l'utente non interagisce con il carattere. | I caratteri lampeggiano o si guardano intorno, rimanendo in o restindo alla posizione neutra. |
Idle1_2 | Quando il carattere non ha attività e l'utente non interagisce con il carattere. | Un'altra variante del tipo di animazione usata in Idle1_1. |
Idle2_1 | Quando il carattere è rimasto inattiva per qualche tempo. | Personaggio sbadiglia o legge la rivista rimanente o ritornando alla posizione neutra. |
Idle2_2 | Quando il carattere è rimasto inattiva per qualche tempo. | Un'altra variante del tipo di animazione usata in Idle2_1. |
Idle3_1 | Quando il carattere è rimasto inattiva da molto tempo. | Sbadigli di carattere. |
Idle3_2 | Quando il carattere è rimasto inattiva da molto tempo. | Il carattere dorme o mette le cuffie per ascoltare la musica. Nota: questa animazione esegue un ciclo a un fotogramma intermedio che si verifica dopo che il carattere si sposta in una posizione appropriata. |
LookDown | Quando il carattere deve guardare verso il basso. | Il carattere si guarda verso il basso. |
LookLeft | Quando il carattere deve essere visualizzato a sinistra. | Il carattere sembra a sinistra. |
LookRight | Quando il carattere deve avere un aspetto corretto. | Il carattere sembra a destra. |
Ricerca | Quando il carattere deve cercare. | Il carattere cerca. |
MoveDown | Quando il carattere si prepara a spostarsi verso il basso. | Il carattere passa a una posizione di marcia/volo verso il basso. |
MoveLeft | Quando il carattere si prepara a spostarsi a sinistra. | Il carattere passa a una posizione a piedi/in volo a sinistra. |
MoveRight | Quando il carattere si prepara a spostarsi verso destra. | Il carattere passa a una posizione a piedi o a destra. |
MoveUp | Quando il carattere si prepara a spostarsi verso l'alto. | Il carattere passa a una posizione di marcia/volo verso l'alto. |
Soddisfatto1,2 | Quando il carattere è soddisfatto della richiesta o della scelta dell'utente. | Sorrisi di carattere. |
Processo | Quando il carattere esegue un tipo di attività generica. | I pulsanti di pressione dei caratteri o utilizzano un tipo di strumento. |
Elaborazione in corso | Quando il carattere è occupato a lavorare su un'attività generica. | Gli scarabocchi di carattere sul pad di carta o utilizzano un tipo di strumento. Nota: questa animazione esegue un ciclo a un fotogramma intermedio che si verifica dopo che il carattere si sposta in una posizione appropriata. |
Lettura | Quando il carattere legge qualcosa all'utente. | Carattere visualizza libro o carta, letture e guarda indietro l'utente. |
ReadContinued | Quando il carattere legge ulteriormente all'utente. | Il carattere legge di nuovo, quindi esamina nuovamente l'utente. |
ReadReturn | Quando il carattere completa l'animazione Read o ReadContinued . | Il carattere torna alla sua posizione neutra. |
Lettura | Quando il carattere legge qualcosa ma non può accettare l'input. | Il carattere legge da un pezzo di carta. Nota: questa animazione esegue un ciclo a uno o più fotogrammi intermedi che si verificano dopo che il carattere si sposta in una posizione appropriata. |
RestPose | Quando il carattere parla dalla sua posizione neutra. | Carattere sta con postura rilassata ma attenta. |
Triste1,2 | Quando il carattere è deluso dalla scelta dell'utente. | Carattere ciglia o sembra deluso. |
Ricerca | Quando il carattere cerca qualcosa. | I caratteri vengono casuali tramite il cassetto dei file o un altro contenitore alla ricerca di un elemento. |
Ricerca | Quando il carattere cerca informazioni specificate dall'utente. | I caratteri vengono casuali tramite il cassetto dei file o un altro contenitore alla ricerca di un elemento. Nota: questa animazione esegue un ciclo a uno o più fotogrammi intermedi che si verificano dopo che il carattere si sposta in una posizione appropriata. |
Mostra | All'avvio o alla restituzione del carattere dopo essere stato convocato. | Il carattere si apre in una boccata di fumo, travi in o cammina sullo schermo. |
InizioListening1,2 | Quando il carattere è in ascolto. | Il carattere mette la mano all'orecchio. |
StopListening1,2 | Quando il carattere smette di ascoltare. | Il carattere mette le mani sopra le orecchie. |
Suggerisci1,2 | Quando il carattere ha un suggerimento o un suggerimento per l'utente. | La lampadina viene visualizzata accanto al carattere. |
Sorpreso1,2 | Quando il carattere viene sorpreso dall'azione o dalla scelta dell'utente. | Il carattere si allarga gli occhi, apre la bocca. |
Pensaa 1,2 | Quando il personaggio pensa a qualcosa. | Il carattere cerca e tiene la mano sulla testa. |
Incerto1,2 | Quando il carattere richiede all'utente di confermare una richiesta. | Il personaggio sembra quizzicale, trasmette ("Sei sicuro?") |
Onda1,2 | Quando l'utente sceglie di arrestare il server o il sistema. | Onde di carattere good-bye o hello. |
Scrittura | Quando il carattere è in ascolto delle istruzioni dell'utente. | Il carattere visualizza carta, scritture e esamina l'utente. |
WriteContinued | Quando il carattere continua ad ascoltare le istruzioni dell'utente. | Il carattere scrive su un foglio di carta e guarda indietro l'utente. |
WriteReturn | Quando il carattere completa l'animazione Write o WriteContinued . | Il carattere torna alla sua posizione neutra. |
Scrittura | Quando il carattere scrive informazioni per l'utente. | Il carattere scrive su un foglio di carta. Nota: questo ciclo di animazione. |
L'animazione richiede sovrapposizioni di bocca e una cornice parlante definita.
L'animazione richiede un'animazione Return assegnata in base alla diramazione di uscita o a un'animazione Return esplicita.
Inoltre, un carattere deve avere le assegnazioni di stato seguenti.
State | Animazioni obbligatorie |
---|---|
GesturingDown | MovimentoDown |
GesturingLeft | GestureLeft |
GesturingRight | GestureRight |
GesturingUp | Movimento |
Udito | Udito1, Udito2 |
Nascondere | Nascondi |
IdlingLevel1 | Blink, Idle1_1, Idle1_2 |
IdlingLevel2 | Blink, Idle1_1, Idle1_2, Idle2_1, Idle2_2 |
IdlingLevel3 | Idle3_1, Idle3_2 |
Ascolto | Avviso |
MovingDown | MoveDown |
MovingLeft | MoveLeft |
MovingRight | MoveRight |
MovingUp | MoveUp |
Visualizzazione | Mostra |
Parlando | RestPose |