<<おまけ>> 自分のキャラでアニメーション
マーリン達以外のキャラクターを使いたい人が出てきても不思議ではありません。そこで、最後に自分のキャラクターを作り、マーリンらと違った能力を発揮させてみます。
1.自分のキャラクターの作り方(マーリンらの様な洗練された動きはない)
以下のサイトに丁寧に説明されています
http://yumi-ii.squares.net/shiraneyo/archives/2004/10/20041030195236.html
が、サイトは消えるおそれがあるので、簡単にまとめておくます。
Step1:Microsoft Agent Character Editor(ace.exe)を以下からダウンロード
http://www.microsoft.com/msagent/downloads/developer.asp
(このサイトのContentsの中のAgent Character Editorをクリックし、
Download the Microsoft Agent Character Editor
(1 MB exe)
をクリックするとace.exeが降りてくる。
Step2: これ(ace.exe)をWクリックし、後は、指示に従ってインストール完了。
Step3:自分のキャラクター(この説明ではen.GIFとする)を一旦ハードディスクCの下のMyaというフォルダー(C:\Mya)に作る。
(1) キャラクターの画像となる小さな(100×100程度)GIFファイルをMyaの中に準備
(2) スタートメニューからMicrosoft Agent Character Editorを起動
(3) メニューから”File”à”New”à”Office Assistant Character”を選ぶ
(4) “Character”à”Animation”の順に+マークをクリックし、アニメーションの一覧を表示
(5) アニメーション一覧の下のほうの”Show”を探し“右クリック”し、”New Frame from Images”をクリックする。
(6) 画像ファイル選択ダイアログボックスが表示されるので、Myaフォルダーを探してフォルダーを開き、ダイアログボックス下部の”ファイルの種類”を”GIF”にすると、en.GIFが見える。これを選択して開く。
(7) 自動的にCharacter Editorの画面に戻る。
(キャラクターの周辺を透明にする時は次(8)~(10)の処理)
(8) 画面左のボックスにある”Character”という文字をクリックし、次に”Animations”という文字をクリックすると、右ボックスにPropertiesというパネルが現れる。
(9) この中の、”Change Setting”というボタンをクリックすると“色の表”が現れる。
(10) ここで、上の方の“白”選択するとキャラクターの周辺が透明になる。
<<Acdファイルの作成>>
(11)”File”メニューから”Save”を選ぶと、Character1.acdという名のファイルをMyaに保存する、と言ってくる。Character1はすきな名前に変えてよいが、acdは変えてはだめ。
これでacdファイルを保存。(以下、キャラクター名はCharacter1とする)
<<acsファイル(キャラクターファイル)の作成>>
(12)”File”メニューより “Build Character”を選びMyaにCharacter1.acsを保存
<<acsファイルをMerlin.acsが入っているフォルダーに移動>>
(13)私のWindowsXP環境ではC:\WINDOWS\MSAGENT\CHARSにCharacret1.acsをコピー
以上で自分のキャラクター作成完了。後は、MerlinをCharacter1にすればShow命令で表示される。但し、Show以外のアニメーション画像は作っていないのでMove、Hideはできるが、その他はできない。
2.マイキャラクターを動かす
(注)次のプログラムを動かすには“解答”から、Character1.acsファイルをダウンロードし、Merlin.acsの入っているフォルダーに入れて下さい。
次のプログラムはキャラクターが次の4つの動きを行います。
形はShowに組み込んだ○
(1) 水平往復運動
(2) 四方の壁で跳ね返る(ビリヤード風)
ここでWritingに組み込んだ■に変形
(3) 円運動
(4) 酔歩(ランダムウオーク)
‘プログラム
Set Win= CreateObject("InternetExplorer.Application")
Win.Visible=True
Set Agent1= WScript.CreateObject("Agent.Control.1", "Character1_")
Agent1.Connected= True
Agent1.Characters.Load "Character1","Character1.acs"
Set Character1= Agent1.Characters("Character1")
Character1.MoveTo 100,100
Character1.Show
'往復運動
hoko=1
x=300
For i=1 To 1000
Character1.MoveTo x, 100
x= x+ hoko
If x> 200 Then
hoko= -1
End If
If x<0 Then
hoko= 1
End If
Next
MsgBox "次はビリヤード"
'四方の壁で跳ね返ります
xhoko=1
yhoko=1
x=50
y=100
For i=1 To 700
Character1.MoveTo x, y
x= x + xhoko
y= y + yhoko
If x> 200 Then
xhoko= -1
End If
If x<0 Then
xhoko= 1
End If
If y> 200 Then
yhoko= -1
End If
If y<0 Then
yhoko= 1
End If
Next
MsgBox "次は形を変えて円運動"
Character1.Play "Writing"
For i=1 To 720
Character1.MoveTo 100+100*Sin(i*3.14/180), 100+100*Cos(i*3.14/180)
Next
MsgBox "次は酔歩"
Randomize
Saisyo=1
Saidai=4
For i=1 To 30
ran= Int((Saidai - Saisyo + 1) * Rnd + Saisyo)
If ran=1 Then
x=x+30
End If
If ran=2 Then
x=x-30
End If
If ran=3 Then
y=y+30
End If
If ran=4 Then
y=y-30
End If
Character1.MoveTo x,y
Next
MsgBox "終わり"
‘===
注1) はじめの2行は、動きを見やすくするため背景にブラウザを立ち上げています。
注2) 水平運動では進行方向をhokoに入れて、左右の壁で反転させています。
注3) 形の変形は、前節の(5)でShowに円を組み込み、続いてWritingに四角を組み込みました。そのため、Character1.Showで丸が現れ、Character1.Writingで四角が現れます。
注4) 円運動はSin とCos という関数を使っています。関数に関しては 第10回の参考サイトをご覧下さい。Sinの()の中が少し複雑なのは、度をラジアンという単位に変える変換です(Sin Cosを習っていない人は気にしないで忘れて下さい)。
このように、自分のキャラクターを作ることにより、色々なアニメーションやゲームを作ることができるようになります。