[Microsoft代理程式從 Windows 7 開始已被取代,而且可能無法在後續版本的 Windows 中使用。]
載入角色之後,您可以使用數個 Microsoft Agent 的方法來進行角色動畫處理。 第一個您會使用的方法通常是 Show 方法。 Show 會顯示字元的框架,並播放分配給字元 顯示 狀態的動畫。
當角色的框架可見之後,您可以使用 Play 方法,指定動畫的名稱來播放該動畫。 動畫名稱是角色定義特有的。 當動畫播放時,其視窗的形狀會變更為符合畫面中的影像。 這會產生可移動的圖像,或 sprite,顯示在所有視窗和桌面上方,或 疊放次序。
如果字元的檔案儲存在本機,您可以直接呼叫 Play 方法。 在其他情況下,例如當您從 HTTP 伺服器載入 ACF 字元時,您必須使用 Get(或 Prepare)方法來先擷取動畫數據。 這會導致 Agent 向伺服器要求動畫檔案,並將它儲存在本機電腦上的瀏覽器緩衝區中。
Speak 方法可讓您將角色的程式設計為說話,並自動同步嘴唇動作與輸出。 本文件的輸出部分涵蓋了進一步的詳細資訊。
您可以使用 MoveTo 方法,將字元放置在新位置。 當您呼叫 MoveTo 方法時,Microsoft Agent 會自動根據角色的目前位置播放適當的動畫,然後移動角色的位置。 同樣地,當您呼叫 GestureAt時,Microsoft Agent 會根據字元的位置和呼叫中指定的位置,播放適當的手勢動畫。
若要隱藏字元,請呼叫 Hide 方法。 這會自動播放與字元 隱藏 狀態相關聯的字元,然後隱藏字元的框架。 不過,您也可以藉由設定字元的 Visible 屬性來隱藏或顯示字元。
Microsoft Agent 會以異步方式處理所有動畫呼叫,或 要求。 這可讓應用程式的程式代碼在處理要求時繼續處理其他事件。 例如,調用 Play 方法會將動畫放入角色的佇列中,以便動畫能夠依序播放。 不過,這表示您無法假設呼叫其他函式時,一定會在程式代碼中遵循動畫之後執行。 例如,通常情況下,執行呼叫 Play 或 MoveTo 之後的語句,會在動畫完成之前執行。
您可以藉由建立動畫請求的對象參考,將程式碼與角色佇列中的動畫同步處理,並在動畫啟動或完成時監視伺服器用來通知角色用戶端的 請求 事件。 例如,如果您想在角色完成動畫時顯示訊息框,可以將訊息框呼叫放入 RequestComplete 事件處理子程式,檢查特定請求的 ID。
當角色被隱藏時,伺服器不會播放動畫;然而,它仍然會排隊並處理動畫請求(播放動畫),並將請求狀態回傳給客戶端。 在隱藏狀態下,字元無法進入可輸入狀態。 不過,如果使用者說出字元的名稱(啟用語音輸入時),伺服器會自動顯示字元。
當您的用戶端應用程式同時載入多個角色時,Microsoft Agent 的動畫服務可讓您獨立地為角色製作動畫,或使用 Wait、中斷,或 停止 方法來使角色彼此的動畫同步。
Microsoft Agent 也會自動為您播放其他動畫。 例如,如果角色的狀態未在數秒內改變,Agent 就會開始播放指派給角色的 閒置 動畫。 同樣地,啟用語音輸入時,Agent 會播放字元的 傾聽 動畫,然後在偵測到語句時播放 聽到 動畫。 這些伺服器管理的動畫稱為 狀態,並在建立角色時定義。 如需詳細資訊,請參閱 Microsoft Agent 角色設計。