ここでご紹介するのは、別記事に書いた自作パワポゲームの一部です。ゲーム全体について知りたい方は、以下の記事をお読みください。
このゲームでは、服を選んでクマのボビー君に着せると、服装に合った場面に切り替わって、一幕のアニメーションが供されます。まずは実際の動きをご覧ください。
ゲームを作った経緯や、「ボビーって誰??」という点に関しては、上記の関連記事に書いてありますので、ここではパワーポイントのスライド構成やアニメーション設定、マクロの記述について詳しくご紹介します。
スライド構成
このゲームは、5枚のスライドから成り立っています。服を着せ替えるスライドが1枚と、着せ替えたあと展開するショートストーリーを見せるスライドが計4枚という構成です。

実のところこのゲームは複雑なところが何もなく、ほとんどアニメーションだけで成り立っているので、少し構成を変えれば、マクロを使わなくてもハイパーリンクの設定だけで実現できます。ただマクロを使うと、着せ替えと場面チェンジをスライド上で明確に分離しつつワンクリックでつなげるので、構成としては一番シンプルかと思います。
着せ替えのアニメーションとマクロ
私の使っているパワーポイントはバージョンが古くて、「図形AをクリックしたらアニメーションA、図形BをクリックしたらアニメーションB」というような条件分岐ができなかったので、まずスライド①のアニメーションの中ですべての服を順番に着て、マクロでその中の一部分だけ選んで再生する形をとりました。そういうわけで、スライド①のアニメーションは以下のように設定しています。4種類の服をA, B, C, Dとすると、
- step 1服Aの曲線軌跡
⇒ボビーが船長コーデを身にまとう
- step 2服Aの終了効果(クリア)
服A’の開始効果(アピール)⇒ボビーの着ていた船長コーデが消え、元の位置に同じ服が現れる
- step 3服Bの曲線軌跡
⇒ボビーが探偵コーデを身にまとう
- step 4服Bの終了効果(クリア)
服B’の開始効果(アピール)⇒ボビーの着ていた探偵コーデが消え、元の位置に同じ服が現れる
- step 5:
服C、服Dについてもアニメーションが続きますが、以下同文なので省きました。着せるだけではどんどん重ね着になってしまいますので、一着着るごとに脱いで元の位置に戻さなくてはなりません。軌跡を使って元とぴったり同じ位置に戻すのは難しいので、実際には最初に着せた服を消し、その服のコピーを元の場所に置くことで、元に戻したように見せかけています。
この一連のアニメーションを場合分けして再生するマクロは以下のようなものです。これをスライド①の各服に実装して、クリックで呼び出すようにします。
Sub Select_Clothes(shp As Shape)
'MsgBox shp.name
''''''''''''''''''''''''''''''''''''''''''
Dim iSlideClothes As Long
iSlideClothes = 10
Dim d(4) As String
d(1) = "Oval 2"
d(2) = "Oval 27"
d(3) = "Oval 41"
d(4) = "Oval 63"
''''''''''''''''''''''''''''''''''''''''''
With SlideShowWindows(1).View
Dim iDress As Long
iDress = 0
Dim i As Integer
For i = 1 To 4
If shp.name = d(i) Then
iDress = i
Exit For
End If
Next i
If iDress = 0 Then
.GotoSlide iSlideClothes
.GotoClick 0
Exit Sub
End If
'wear clothes
.GotoClick (iDress - 1) * 2
.Next
.GotoSlide (iSlideClothes + iDress)
End With
End Sub最初に定義しているiSlideClothesというのは、この着せ替えゲームにおけるスライド①が、パワーポイント全体の中で何枚目のスライドに当たるかを入れる変数です。私の場合は、もともとクマのボビーの一日を追ったゲームの一部として作ったので、この値が10となっています。
次のd(4)という文字列配列には、服としてクリックする図形の名前を入れます。この名前はパワポが自動的に割り振るもので、事前に把握して書き込む必要があります。スライドの編集画面では各図形の名前がダイレクトに出てきませんが、「アニメーションウィンドウ」を表示させると、アニメーションを設定した図形の名前が日本語で表示されますので、日本語と英語の対応が分かっていれば、そこから知ることができます。「円/楕円」であれば「Oval」、「図」であれば「Picture」といった具合です。分からない場合は、上記関数の最初の一行をコメントアウトすれば、クリックした図形の名前がメッセージボックスで表示されます。
名前を入力したら本題に入ります。まずクリックした図形の名前が、d(1)〜d(4)のいずれかと一致するかどうかを、For文を回してチェックします(プログラム行番号:17〜25)。もしどれとも一致しなかった場合は、スライド①に戻ってアニメーションを初期化した上でマクロを終了するようにします(行番号:26〜30)。これは名前の入力ミスなどによるエラーを回避するためでもありますが、こうしておくとこの関数を「もどる」「別の服にきがえる」などの任意の操作ボタンに実装して、スライド①に戻るハイパーリンク代わりに使うことができます。
さて、クリックした図形が4種の服のいずれかであった場合は、スライド①で直列状に設定したアニメーションのうち該当するものだけを再生して、スライド②〜⑤のいずれかにとびます(行番号:32〜35)。これで「服Aをクリックすると、ボビーが服Aを身にまとい、スライドAに移動する」という動きが完成します。
子どもが喜ぶショートストーリー
スライド②〜⑤に移動した後は、基本的に服装に合わせて背景を変えるだけですが、各スライドに一箇所クリックできる箇所をつくって、動きと笑いをもたらしました。たとえばスライド②では、ボビーの乗った船が出港した後、水面から出ている三角の背びれをクリックすると、ボビーがサメに追いかけられます。こういうのは、どちらかというとゲームというよりただの紙芝居ですが、子どもが喜ぶこと喜ぶこと。そういうわけで、アニメーションを数種組み合わせた複雑な動きにしぼって2種類ご紹介します。
窓の外を誰かが走り抜けるアニメーション
スライド③は、名探偵ボビーが空っぽのお皿を見ながら「はてな、ふむ・・」と言っているところから始まります。皿の周りにはお菓子のかけらと足跡・・ここで後ろの壁の額縁をクリックすると、額縁が揺れて落ち、その後ろに現れた抜け穴を、ドーナツをもった子象が走り抜けます。おやつ泥棒、発見。

ここでは、額縁が揺れて落ちるアニメーションと、泥棒が走り抜けるアニメーションの作り方をご紹介します。まず額縁は、同じ画像を2枚重ねています。1枚目はまっすぐ貼って「強調効果:シーソー」で揺らし、「終了効果:クリア」で消します。2枚目は少し傾けた状態にして、1枚目が消えると同時に「開始効果:アピール」で出現させ、直線軌跡で下に落とします。これで「額縁がガタガタ揺れて傾き、下に落ちる」という動きが完成します。

次に「壁の向こうを泥棒が駆け抜ける」ためには、各オブジェクトの「順序」が肝心になります。①灰色の壁、②ドーナツをもった泥棒、③穴のあいた赤い壁、④額縁、の4種類を、奥から①→②→③→④の順で重ねます。③は、赤い四角形を4つグループ化して作りました。

あとは④額縁が揺れて落ちたあと、②泥棒子象を「強調効果:シーソー」で揺らしながら、右から左へ直線軌跡で移動させれば、窓外を走っていく感じのアニメーションになります。なるべくコセコセと後ろ暗そうな走り方にしたかったので、「シーソー」の再生速度を一番早くしました。これができると、塔の窓からラプンツェルが顔を出すアニメーションとか、電車の車窓から外を見ているアニメーションなどが実現して、子ども受けするいろいろなショートストーリーが作れそうです。
差し出された封筒から手紙が出てくるアニメーション
スライド⑤では、ボビーが「ゆうびんでーす」と差し出した封筒をクリックすると、封筒が開いて中からラブレターが出てきます。

これに関しては、以下のサイトを参考にしました。
ただし、私の使っているパワーポイントはバージョンが古くて、「コラプス」や「ストレッチ」などのアニメーション効果はありませんでしたから、結局「ワイプ」のみを使っています。それでもそれなりに、封筒が開く感じがでますね。
このスライドではさらに、封筒が開く前にボビーの手元からこちらにぐっと封筒がせりだすアニメーションが入っています。これは「強調効果:拡大/縮小」と「直線軌跡」の組み合わせです。

まずボビーが持っている封筒は、台形と二等辺三角形のフタからできています。この2つに対するアニメーションとして「強調効果:拡大/縮小」を選び、効果オプションを「大(150%)」とします。これだけだと図形中心から均等に150%拡大され、単純に封筒が大きくなったように見えてしまうので、上から下へ向かう直線軌跡を設定し、拡大と同じタイミングで再生します。こうすると、奥から手前へ封筒がせり出してきたように見えます。
拡大された図形は、そのままだとエッジが少しぼやけて見えるので、拡大後の封筒と全く同じ大きさの図形を上からかぶせます。このとき、封筒の上面部分となる白いフリーフォームの図形と、開いたフタの裏面部分となる灰色の平行四辺形に分けて、この2つを出現させると、封筒が開いた感じにできます。
さらにそこにハートが書かれた台形をはさんで、封筒が開くのと同時に上に向かう直線軌跡で動かせば、封筒から手紙が出てきたように見えます。
マクロを使わない方法
今回のゲームにおけるマクロの役割は、スライド①のアニメーションとスライド②〜⑤のアニメーションを場合分けしてつなぐだけなので、少し構成を変えればマクロなしで同様の動きを実現できます。たとえばスライド①のオブジェクトを丸々コピーしてスライド②〜⑤の最背面に配置し、スライド移動してから着せ替えと場面チェンジを一気におこなうようにすれば、ハイパーリンクだけで実現可能です。ただし1枚のスライドに詰め込むアニメーションが、かなり煩雑にはなります。
もう少し無理がないのは、スライドをあと4枚増やして、着せ替えをそれぞれ別のスライドでおこなうことです。スライド①の各服に、着せ替えスライドへのハイパーリンクを設定しておき、着せ替えが完了したらプレイヤーにもうワンクリックしてもらって、ショートストーリーのスライドに移動します。プレイヤー側の操作がワンステップ増えてしまいますが、作り方としては一番簡単かと思います。

着せ替えゲームは基本的にアニメーションですので、パワーポイントによる自作に向いたゲームではないかと思います。今回はコーディネートは4択のみで、着替えた後のショートストーリーに重きをおきましたが、女の子だったら帽子や上着、スカート、バッグなどの組み合わせを自在に選べるようにしたら喜びそうですね。さすがにトリガー機能がついていないパワーポイントだと、マクロを駆使してもそこまで実現するのは無理がある気がしますが、古いバージョンでも最低限ここまではできます。最新のパワーポイントなら、アニメーションも画像処理もさらに充実して、もっと豪華な着せ替えゲームができるかもしれません。お子さんに自由に作らせてみるのもおすすめです。

