|
|
Set objAgent = WScript.CreateObject("Agent.Control.1", "MyAgentEvent_")
| |
|
|
' キャラクタ名
strAgentName = "Merlin"
' サンプル? ファイル
strAgentPath = "c:\windows\msagent\chars\" & strAgentName & ".acs"
Set objAgent = WScript.CreateObject("Agent.Control.1", "MyAgentEvent_")
bBreak = False
Sub MyAgentEvent_RequestComplete(Request)
bBreak = True
End Sub
Sub MyAgentEvent_RequestStart(Request)
End Sub
bClcik = False
' クリックイベント
Sub MyAgentEvent_Click(CharacterID, Button, Shift, x, y)
' 左クリック
if Button and &H1 then
bClick = True
end if
' 右クリック
if Button and &H2 then
objCharacter.Play "Announce" ' 動作( ラッパを吹きます )
objCharacter.Speak "マウスで左クリックして下さい"
end if
End Sub
' **********************************************************
' 準備
' **********************************************************
objAgent.Connected = TRUE
objAgent.Characters.Load strAgentName, strAgentPath
Set objCharacter = objAgent.Characters.Character(strAgentName)
objCharacter.Show ' 表示
objCharacter.Play "Announce" ' 動作( ラッパを吹きます )
' イベントを発生させる為にリクエストオブジェクトを取得します
Set objRequest = objCharacter.Speak( "こんにちは、お元気ですか?" )
Do
Wscript.Sleep 500
if bBreak then
' 処理完了イベントによるループ終了
bBreak = False
Exit Do
end if
Loop
Wscript.Sleep 1500 ' セリフを表示する時間
objCharacter.Play "LookDown" ' 動作
' Speak と吹き出しが違います
objCharacter.Think "ちょっと移動しますね ...."
objCharacter.MoveTo 500,400 ' 移動( 飛びます )
objCharacter.Play "Pleased" ' 動作
objCharacter.Speak "マウスで左クリックして下さい"
Do
Wscript.Sleep 500
if bClick then
' 左クリックによるループ終了
bClick = False
Exit Do
end if
Loop
objCharacter.Play "Pleased" ' 動作
' イベントを発生させる為にリクエストオブジェクトを取得します
Set objRequest = objCharacter.Speak( "それではさようなら" )
Do
Wscript.Sleep 500
if bBreak then
' 処理完了イベントによるループ終了
bBreak = False
Exit Do
end if
Loop
Wscript.Sleep 1500 ' セリフを表示する時間
objCharacter.Hide ' 消えます
' スクリプトが実行中でないとサーバの処理が終わって
' しまうので、Hide メソッドが終了するまで待ちます
Do While objCharacter.Visible = TRUE
Wscript.Sleep 100
Loop
| |
|
Microsoft US へのリンク
http://www.microsoft.com/technet/scriptcenter/funzone/agent.mspx
http://msdn.microsoft.com/en-us/library/ms695784.aspx
上記より
-> Programming Microsoft Agent
-> Programming the Microsoft Agent Server Interface
-> Reference
-> IAgentCharacter
|
|
|
<SCRIPT language=VBScript>
Dim objRequestTarget,objRequest1,objRequest2
Dim objCharacter
Sub ScreenPlay()
Select Case objRequestTarget
Case objRequest1
objCharacter.Play "LookDown" ' 動作
' Speak と吹き出しが違います
objCharacter.Think "ちょっと移動しますね ...."
objCharacter.MoveTo 500,400 ' 移動( 飛びます )
objCharacter.Play "Pleased" ' 動作
objCharacter.Speak "マウスで左クリックして下さい"
Case objRequest2
objCharacter.Hide ' 消えます
End Select
End Sub
</SCRIPT>
<HTML>
<HEAD>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; CHARSET=Shift_JIS">
</HEAD>
<BODY>
<OBJECT
classid=clsid:D45FD31B-5C6E-11D1-9EC1-00C04FD7081F
id=objAgent
></OBJECT>
</BODY>
</HTML>
<SCRIPT for=window event=onload language="VBScript">
' キャラクタ名
strAgentName = "Merlin"
' サンプル? ファイル
strAgentPath = "c:\windows\msagent\chars\" & strAgentName & ".acs"
' **********************************************************
' 準備
' **********************************************************
objAgent.Connected = TRUE
objAgent.Characters.Load strAgentName, strAgentPath
Set objCharacter = objAgent.Characters.Character(strAgentName)
objCharacter.Show ' 表示
' 最初の動作
objCharacter.Play "Announce" ' 動作( ラッパを吹きます )
' RequestComplete を発生させる為にリクエストオブジェクトを取得しておきます
Set objRequest1 = objCharacter.Speak( "こんにちは、お元気ですか?" )
</SCRIPT>
<SCRIPT LANGUAGE=VBScript For=objAgent Event=RequestComplete(Request)>
' スクリプトタグによる動作完了イベント記述
Set objRequestTarget = Request
Call window.setTimeout( "ScreenPlay", 1500 )
</SCRIPT>
<SCRIPT language=VBScript>
' Sub によるクリックイベント記述
Sub objAgent_Click(CharacterID, Button, Shift, x, y)
' 左クリック
if Button and &H1 then
if objRequestTarget = objRequest1 then
objCharacter.Play "Pleased" ' 動作
' RequestComplete を発生させる為にリクエストオブジェクトを取得します
Set objRequest2 = objCharacter.Speak( "それではさようなら" )
end if
end if
End Sub
</SCRIPT>
| |
|
|
|
|
Option Explicit
Dim WithEvents objAgent As Agent
Dim strAgentName, strAgentPath
Dim objCharacter, objRequest1, objRequest2
Private Sub Form_Load()
Set objAgent = New Agent
' キャラクタ名
strAgentName = "Merlin"
' サンプル? ファイル
strAgentPath = "c:\windows\msagent\chars\" & strAgentName & ".acs"
' **********************************************************
' 準備
' **********************************************************
objAgent.Connected = True
objAgent.Characters.Load strAgentName, strAgentPath
Set objCharacter = objAgent.Characters.Character(strAgentName)
objCharacter.Show ' 表示
' 最初の動作
objCharacter.Play "Announce" ' 動作( ラッパを吹きます )
' イベント前にはリクエストオブジェクトを取得しておきます
Set objRequest1 = objCharacter.Speak("こんにちは、お元気ですか?")
End Sub
Private Sub objAgent_RequestComplete(ByVal Request As Object)
If objRequest1 = Request Then
Sleep 1500
objCharacter.Play "LookDown" ' 動作
' Speak と吹き出しが違います
objCharacter.Think "ちょっと移動しますね ...."
objCharacter.MoveTo 500, 400 ' 移動( 飛びます )
objCharacter.Play "Pleased" ' 動作
' イベント前にはリクエストオブジェクトを取得しておきます
objCharacter.Speak "マウスで左クリックして下さい"
End If
If objRequest2 = Request Then
Sleep 1500
objCharacter.Hide ' 消えます
End If
End Sub
Private Sub objAgent_Click( _
ByVal CharacterID As String, _
ByVal Button As Integer, _
ByVal Shift As Integer, _
ByVal x As Integer, _
ByVal y As Integer _
)
' 左クリック
If Button And &H1 Then
objCharacter.Play "Pleased" ' 動作
' イベント前にはリクエストオブジェクトを取得しておきます
Set objRequest2 = objCharacter.Speak("それではさようなら")
End If
End Sub
| |
|
|
|