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