[Microsoft 에이전트는 Windows 7을 기준으로 사용되지 않으며 이후 버전의 Windows에서는 사용할 수 없습니다.]
Microsoft 에이전트 애니메이션 서비스는 자동으로 특정 애니메이션을 재생합니다. 예를 들어 moveTo또는 GestureAt 명령을사용하면 애니메이션 서비스가 적절한 애니메이션을 재생합니다. 마찬가지로 유휴 시간이 초과되면 서비스가 자동으로 애니메이션을 재생합니다. 이러한 상태를 지원하려면 적절한 애니메이션을 정의한 다음 상태에 할당할 수 있습니다. Play 메서드를 사용하여 직접 정의한 애니메이션을 상태에 할당하더라도 재생할 수 있습니다.
여러 애니메이션을 동일한 상태에 할당할 수 있으며 애니메이션 서비스는 애니메이션 중 하나를 임의로 선택합니다. 이렇게 하면 캐릭터의 동작이 훨씬 더 자연스러이게 나타납니다.
상태에 할당하는 애니메이션에는 분기 프레임이 포함될 수 있지만 애니메이션(영원히 분기되는 애니메이션)은 반복하지 마세요. 그렇지 않으면 다른 애니메이션을 재생하려면 Stop 메서드를 사용해야 합니다.
문자에 대해 발생하는 각 상태에 대해 하나 이상의 애니메이션을 정의하고 할당하는 것이 중요합니다. 이러한 애니메이션 및 상태 할당을 제공하지 않으면 문자가 사용자에게 적절하게 동작하지 않는 것처럼 보일 수 있습니다. 그러나 특정 문자에 대해 상태가 발생하지 않는 경우 해당 상태에 애니메이션을 할당할 필요가 없습니다. 예를 들어 호스트 애플리케이션이 MoveTo 메서드를 호출하지 않는 경우 이동 상태 애니메이션 만들기 및 할당을 건너뛸 수 있습니다.
| 상태 | 사용 예 |
|---|---|
| GesturingDown | GestureAt 애니메이션 메서드가 처리되는 경우 |
| GesturingLeft | GestureAt 애니메이션 메서드가 처리되는 경우 |
| GesturingRight | GestureAt 애니메이션 메서드가 처리되는 경우 |
| GesturingUp | GestureAt 애니메이션 메서드가 처리되는 경우 |
| 청문회 | 음성 입력의 시작이 감지되면 |
| 숨기기 | 사용자 또는 애플리케이션이 문자를 숨기는 경우 |
| IdlingLevel1 | 문자가 Idling 상태를 시작하면 |
| IdlingLevel2 | 문자가 두 번째 시작되면 유휴 수준 상태입니다. |
| IdlingLevel3 | 문자가 최종 시작되면 idling 수준 상태입니다. |
| 수신 대기 | 문자가 수신 대기를 시작하면(사용자가 먼저 음성 입력 핫 키를 누릅니다). |
| MovingDown | MoveTo 애니메이션 메서드가 처리되는 경우 |
| MovingLeft | MoveTo 애니메이션 메서드가 처리되는 경우 |
| MovingRight | MoveTo 애니메이션 메서드가 처리되는 경우 |
| MovingUp | MoveTo 애니메이션 메서드가 처리되는 경우 |
| 표시하는 | 사용자 또는 애플리케이션에 문자가 표시되면 |
| 말하기 | Speak 애니메이션 메서드가 처리되는 경우 |
청문회 및 청취 상태
사용자가 음성 입력을 위해 푸시 투 토크 핫 키를 누를 때 수신 대기 상태에 할당하는 애니메이션이 재생됩니다. 문자를 세심하게 보이게 하는 짧은 애니메이션을 만들고 할당합니다. 마찬가지로 사용자가 말할 때 문자가 청각 상태 애니메이션을 재생하도록 반환 애니메이션을 짧은 기간으로 정의합니다. 청각 상태 애니메이션도 짧아야 하며, 사용자가 사용자가 말하는 내용을 적극적으로 수신 대기하고 있음을 사용자에게 알릴 수 있도록 설계되었습니다. 머리 기울기 또는 기타 약간의 제스처가 적합합니다. 자연스러운 가변성을 제공하려면 몇 가지 청각 상태 애니메이션을 제공합니다.
몸짓 상태
GestureAt 메서드를 사용하려는 경우에만 제스처 상태 애니메이션을 만들고 할당해야 합니다. 제스처 상태 애니메이션은 Microsoft 에이전트가 GestureAt 메서드에 대한 호출을 처리할 때 재생됩니다. 몸짓 상태 애니메이션에 대한 입 오버레이를 정의하는 경우 문자가 제스처로 말할 수 있습니다.
애니메이션 서비스는 문자의 위치와 메서드에 지정된 좌표의 위치와 관계를 결정하고 적절한 애니메이션을 재생합니다. 제스처 방향은 항상 문자와 관련이 있습니다. 예를 들어 GestureRight 문자 오른쪽에 대한 제스처여야 합니다.
표시 및 숨기기 상태
표시 및 숨기기 상태는 사용자 또는 호스트 애플리케이션이 문자를 표시하거나 숨기도록 요청할 때 할당된 애니메이션을 재생합니다. 또한 이러한 상태는 문자 프레임의 표시 상태를 적절하게 설정합니다. 이러한 상태에 대한 애니메이션을 정의할 때는 모든 화면 위치에서 문자가 표시되거나 출발할 수 있음을 명심하세요. 사용자는 모든 문자를 표시하거나 숨길 수 있으므로 항상 이러한 상태에 대해 하나 이상의 애니메이션을 지원합니다.
상태를 표시하는 할당하는 애니메이션은 일반적으로 문자의 중립 위치 이미지를 포함하는 프레임으로 끝납니다. 반대로 상태 애니메이션 숨기기는 일반적으로 중립 위치로 시작합니다. 및 숨기기 상태 애니메이션은 각각 시작 또는 끝에 빈 프레임을 포함하여 문자의 현재 상태에서 전환을 제공할 수 있습니다.
유휴 상태
유휴 상태는 점진적입니다. 애니메이션 서비스는 첫 번째 유휴 기간 동안 수준 1 할당을 사용하기 시작하고 두 번째 유휴 기간에 수준 2 애니메이션을 사용합니다. 그런 다음 유휴 주기가 수준 3 할당 애니메이션으로 진행되며, 새 애니메이션 요청이 시작될 때와 같이 취소될 때까지 이 상태로 유지됩니다.
Idling 상태에 대한 애니메이션을 디자인하여 문자의 상태를 전달하지만 사용자의 주의를 분산시키지는 않습니다. 애니메이션은 미묘하지만 명확한 방식으로 문자의 응답성을 적절하게 반영해야 합니다. 예를 들어 주위를 맴돌거나 깜박이는 것은 IdlingLevel1 상태에 할당하는 데 유용한 애니메이션입니다. 읽기 애니메이션은 IdlingLevel2 상태에 적합합니다. 헤드폰으로 음악을 자거나 듣는 것은 IdlingLevel3 상태에 할당하는 애니메이션의 좋은 예입니다. 많은 또는 큰 움직임을 포함하는 애니메이션은 사용자의 주의를 끌기 때문에 유휴 애니메이션에 적합하지 않습니다. Idling 상태 애니메이션은 자주 재생되므로, 특히 IdlingLevel1 및 IdlingLevel2 상태에 대해 여러 유휴 상태 애니메이션을 제공합니다.
애플리케이션은 문자에 대한 자동 유휴 처리를 해제하고 문자의 Idling 상태 자체를 관리할 수 있습니다. 에이전트 Idling 상태는 캐릭터에 재생할 애니메이션이 없는 상황을 방지할 수 있도록 설계되었습니다. 짧은 시간 후에 변경되지 않는 문자 이미지는 오랜 시간 동안 대기 포인터를 표시하는 애플리케이션과 같으며, 이는 믿을 수 있고 상호 작용의 감각을 손상시킵니다. 환상을 유지하는 것은 많은 걸리지 않습니다 : 때로는 애니메이션 깜박임, 눈에 보이는 호흡 또는 신체 변화.
말하기 상태
애니메이션 서비스는 현재 애니메이션에 대해 말하기 애니메이션을 찾을 수 없는 경우 말하기 상태를 사용합니다. 이 상태에 간단한 말하기 애니메이션을 할당합니다. 예를 들어 입 오버레이가 있는 문자의 중립 위치로 구성된 단일 프레임을 사용할 수 있습니다.
이동 상태
이동 상태는 애플리케이션이 MoveTo 메서드를 호출할 때 재생됩니다. 애니메이션 서비스는 캐릭터의 현재 위치와 지정된 좌표에 따라 재생할 애니메이션을 결정합니다. 이동 방향은 문자의 위치에 따라 달라집니다. 따라서 MovingLeft 애니메이션에 할당하는 애니메이션은 문자의 왼쪽을 기반으로 해야 합니다. MoveTo 메서드를 사용하지 않는 경우 애니메이션 만들기 및 할당을 건너뛸 수 있습니다.
이동 상태 애니메이션은 문자를 움직이는 위치에 애니메이션 효과를 주어야 합니다. 이 애니메이션의 마지막 프레임은 캐릭터의 프레임이 화면에서 이동될 때 표시됩니다. 프레임이 이동하는 동안 문자에 애니메이션 효과를 주는 것은 지원되지 않습니다.
표준 애니메이션 집합
사용하려는 애니메이션을 갖도록 사용자 지정 문자를 디자인할 수 있지만 Microsoft 에이전트는 표준 애니메이션 집합을 정의합니다. 이 정의를 준수하는 문자는 기본 문자로 선택할 수 있습니다.
다음 표에서는 표준 애니메이션 집합에 포함된 애니메이션을 나열합니다. 사용자 지정 문자를 만드는 경우에도 사용자 고유의 문자를 디자인하기 위한 가이드로 목록을 사용할 수 있습니다. 표준 애니메이션 집합을 지원하는 문자는 적어도 다음 애니메이션을 지원해야 합니다.
| 애니메이션 | 사용 예 | 예제 애니메이션 |
|---|---|---|
| 승인 | 문자가 사용자의 요청을 승인하는 경우 | 문자가 고개를 끄덕이거나 "확인" 손 제스처를 깜박입니다. 이 애니메이션은 문자를 중립 위치로 반환해야 합니다. |
| 경고1,2 | 문자가 명령을 기다리는 경우 일반적으로 사용자가 수신 모드를 켭니다. | 캐릭터는 앞면을 마주하고, 숨을 쉬고, 가끔 깜박이지만, 분명히 지시를 기다리고 있습니다. |
| 1,2 발표 | 문자가 사용자에 대한 정보를 찾은 경우 | 눈썹과 손을 올리거나 봉투를 열어 문자 제스처. |
| Blink | 문자가 말하기를 마치거나 유휴 상태가 되면 | 캐릭터는 자연스럽게 눈을 깜박입니다. |
| 혼동1,2 | 문자가 무엇을 해야 할지 이해하지 못하는 경우. | 문자가 머리를 긁습니다. |
| 축하1,2 | 문자 또는 사용자가 작업을 완료하는 경우(승인 애니메이션의 강력한 형태). | 문자는 축하 제스처를 수행, 전달 "예!" |
| 감소1,2 | 문자가 사용자의 요청을 수행하거나 거부할 수 없는 경우 | 캐릭터는 머리를 흔들어 "할 수 없다"를 전달합니다. |
| DoMagic1 | 문자가 무언가를 표시할 준비를 합니다. | 문자가 손을 흔들거나 지팡이를 흔든다. |
| DoMagic2 | 문자가 무언가 표시를 완료합니다. | 문자가 마법 제스처를 완료합니다. |
| DontRecognize1,2 | 문자가 사용자의 요청을 인식하지 못한 경우 | 문자는 귀에 손을 잡고 있습니다. |
| 1,2 설명 | 문자가 사용자에게 무언가를 설명할 때 | 무언가를 설명하는 것처럼 문자 제스처. |
| GestureDown1,2 | 문자가 아래 항목을 가리킬 필요가 있는 경우입니다. | 문자가 아래쪽을 가리킵니다. |
| GestureLeft1,2 | 문자가 왼쪽에 있는 항목을 가리킬 필요가 있는 경우입니다. | 왼쪽 또는 왼쪽을 가리키는 화살표로 모핑된 문자 요소입니다. |
| GestureRight1,2 | 문자가 오른쪽에 있는 항목을 가리킬 필요가 있는 경우입니다. | 오른손이 있는 문자 포인트이거나 오른쪽을 가리키는 화살표로 모핑됩니다. |
| GestureUp1,2 | 문자가 위의 항목을 가리킬 필요가 있는 경우입니다. | 문자가 위쪽을 가리킵니다. |
| GetAttention | 문자가 중요한 사항에 대해 사용자에게 알려야 하는 경우입니다. | 문자가 손을 흔들거나 위아래로 점프합니다. |
| getAttentionContinued | 알림의 중요성을 강조합니다. | 초기 제스처의 연속 또는 반복입니다. |
| GetAttentionReturn | 문자가 getAttention 완료하거나 GetAttentionContinued 애니메이션을. | 문자가 중립 위치로 돌아갑니다. |
| 인사말1,2 | 사용자가 시스템을 시작할 때입니다. | 문자 미소와 파도. |
| Hearing1 | 문자가 음성 발화의 시작을 들을 때(적극적으로 수신 대기) | 문자는 앞으로 기울어져 고개를 끄덕이거나 음성 입력에 대한 응답을 표시하는 머리를 돌립니다. 참고: 이 애니메이션은 문자가 적절한 위치로 이동한 후 발생하는 일부 중간 프레임으로 반복됩니다. |
| Hearing2 | 문자가 음성 발화의 시작을 들을 때(적극적으로 수신 대기) |
Hearing1사용되는 애니메이션 형식의 또 다른 변형: 이 애니메이션은 문자가 적절한 위치로 이동한 후 발생하는 일부 중간 프레임으로 반복됩니다. |
| 숨기기 | 사용자가 문자를 해제할 때 | 문자는 화면에서 자기를 제거합니다. |
| Idle1_1 | 문자에 작업이 없고 사용자가 문자와 상호 작용하지 않는 경우 | 문자가 깜박이거나 주위를 둘러보며 중립 위치로 남아 있거나 중립 위치로 돌아갑니다. |
| Idle1_2 | 문자에 작업이 없고 사용자가 문자와 상호 작용하지 않는 경우 | Idle1_1사용되는 애니메이션 형식의 또 다른 변형입니다. |
| Idle2_1 | 문자가 일정 시간 동안 유휴 상태인 경우 | 문자 하품 또는 중립 위치에 남아 또는 중립 위치로 돌아 잡지를 읽습니다. |
| Idle2_2 | 문자가 일정 시간 동안 유휴 상태인 경우 | Idle2_1사용되는 애니메이션 형식의 또 다른 변형입니다. |
| Idle3_1 | 문자가 오랫동안 유휴 상태인 경우입니다. | 문자 하품. |
| Idle3_2 | 문자가 오랫동안 유휴 상태인 경우입니다. | 문자는 잠을 자거나 음악을 듣기 위해 헤드폰을 착용합니다. 참고: 이 애니메이션은 문자가 적절한 위치로 이동한 후 발생하는 일부 중간 프레임으로 반복됩니다. |
| lookDown | 문자가 아래를 내려다봐야 하는 경우입니다. | 문자가 아래를 내려다보고 있습니다. |
| LookLeft | 문자가 왼쪽으로 표시되어야 하는 경우입니다. | 문자는 왼쪽을 찾습니다. |
| LookRight | 문자가 올바르게 표시되어야 하는 경우입니다. | 문자가 오른쪽을 찾습니다. |
| LookUp | 문자를 조회해야 하는 경우입니다. | 문자가 쳐다봅니다. |
| MoveDown | 문자가 아래로 이동할 준비를 하는 경우 | 문자가 걷기/비행 다운 위치로 전환됩니다. |
| moveLeft | 문자가 왼쪽으로 이동할 준비를 하는 경우 | 문자가 걷기/비행 왼쪽 위치로 전환됩니다. |
| MoveRight | 문자가 오른쪽으로 이동할 준비를 할 때입니다. | 문자가 걷기/비행 오른쪽 위치로 전환됩니다. |
| MoveUp | 문자가 위로 이동할 준비를 하는 경우 | 문자가 걷기/비행 업 위치로 전환됩니다. |
| 기쁘게1,2 | 문자가 사용자의 요청 또는 선택에 만족하는 경우. | 문자 미소. |
| 프로세스 | 문자가 일부 유형의 제네릭 작업을 수행하는 경우 | 문자가 단추를 누르거나 일부 유형의 도구를 사용합니다. |
| 처리 | 문자가 제네릭 작업 중일 때입니다. | 종이 패드에 문자가 낙서되거나 일부 유형의 도구를 사용합니다. 참고: 이 애니메이션은 문자가 적절한 위치로 이동한 후 발생하는 일부 중간 프레임으로 반복됩니다. |
| 읽기 | 문자가 사용자에게 무언가를 읽을 때. | 문자는 책이나 종이를 표시하고, 읽고, 사용자를 되돌아봅니다. |
| ReadContinued | 문자가 사용자에게 더 자세히 읽는 경우 | 문자가 다시 읽은 다음 사용자를 다시 찾습니다. |
| ReadReturn | 문자가 읽기 완료하거나 ReadContinued 애니메이션을. | 문자가 중립 위치로 돌아갑니다. |
| 읽기 | 문자가 무언가를 읽지만 입력을 수락할 수 없는 경우 | 문자는 종이에서 읽습니다. 참고: 이 애니메이션은 문자가 적절한 위치로 이동한 후에 발생하는 일부 중간 프레임으로 반복됩니다. |
| restPose | 문자가 중립 위치에서 말할 때. | 캐릭터는 편안하지만 세심한 자세로 서 있습니다. |
| 슬픈1,2 | 문자가 사용자의 선택에 실망하는 경우. | 캐릭터는 눈살을 찌푸리거나 실망해 보입니다. |
| 검색 | 문자가 무언가를 검색하는 경우 | 문자를 파일 서랍이나 다른 컨테이너를 섞어 무언가를 찾습니다. |
| 검색 | 문자가 사용자 지정 정보를 검색하는 경우 | 문자를 파일 서랍이나 다른 컨테이너를 섞어 무언가를 찾습니다. 참고: 이 애니메이션은 문자가 적절한 위치로 이동한 후에 발생하는 일부 중간 프레임으로 반복됩니다. |
| 표시 | 문자가 시작되거나 소환된 후 반환되는 경우입니다. | 캐릭터는 연기의 퍼프에 팝업, 빔, 또는 화면에 산책. |
| StartListening1,2 | 문자가 수신 대기하는 경우입니다. | 문자는 귀에 손을 넣습니다. |
| StopListening1,2 | 문자가 수신을 중지하는 경우 | 문자는 귀에 손을 넣습니다. |
| 1,2 제안 | 문자에 사용자에 대한 팁이나 제안이 있는 경우 | 전구가 문자 옆에 나타납니다. |
| 깜짝1,2 | 문자가 사용자의 동작 또는 선택에 놀랄 때입니다. | 캐릭터가 눈을 넓히고 입을 엽니다. |
| 생각1,2 | 캐릭터가 무언가에 대해 생각할 때. | 캐릭터는 쳐다 보고 머리에 손을 잡고 있습니다. |
| 불확실한1,2 | 문자가 사용자가 요청을 확인해야 하는 경우. | 문자는 퀴즈 보인다, 전달 ("당신은 확신?") |
| 웨이브1,2 | 사용자가 서버 또는 시스템을 종료하도록 선택하는 경우 | 문자는 안녕 또는 안녕하세요 파도. |
| 쓰기 | 문자가 사용자의 지시를 수신 대기하는 경우 | 문자는 종이를 표시하고, 쓰고, 사용자를 되돌아봅니다. |
| WriteContinued | 문자가 사용자의 지시를 계속 수신 대기하는 경우 | 문자는 종이에 쓰고 사용자를 되돌아봅니다. |
| WriteReturn | 문자가 쓰기 완료하거나 WriteContinued 애니메이션을. | 문자가 중립 위치로 돌아갑니다. |
| 쓰기 | 문자가 사용자에 대한 정보를 쓰는 경우 | 종이에 문자를 씁니다. 참고: 이 애니메이션은 반복됩니다. |
애니메이션에는 입 오버레이 및 정의된 말하기 프레임이 필요합니다.
애니메이션에는 종료 분기 또는 명시적 반환 애니메이션에 따라 할당된 반환 애니메이션이 필요합니다.
또한 문자에는 다음 상태 할당이 있어야 합니다.
| 상태 | 필수 애니메이션 |
|---|---|
| GesturingDown | GestureDown |
| GesturingLeft | GestureLeft |
| GesturingRight | GestureRight |
| GesturingUp | GestureUp |
| 청각 | Hearing1, Hearing2 |
| 숨기기 | 숨기다 |
| IdlingLevel1 | Blink, Idle1_1, Idle1_2 |
| IdlingLevel2 | Blink, Idle1_1, Idle1_2, Idle2_1, Idle2_2 |
| IdlingLevel3 | Idle3_1, Idle3_2 |
| 청취 | 경고 |
| MovingDown | MoveDown |
| MovingLeft | MoveLeft |
| MovingRight | MoveRight |
| MovingUp | MoveUp |
| 페이지 | 보이다 |
| 말하기 | RestPose |