「押せる岩を作る」では、プレイヤーキャラクターが押すことの出来る岩の作成例を解説しましたが、その応用として「指定位置に岩を動かす」イベントを作ってみましょう。
下の画像で赤く囲んだ 2 つの岩を、青く囲んだタイルの上に両方とも移動させると、奥の扉(鉄格子)が開くイベントの作成例を通して解説していきます。
ここでポイントとなるのが、岩が指定した位置に移動したかどうかを、どう判定するのかということです。これにはいくつかの方法があって、どれが正解とは言い難いのですが、ここでは「地形タグ」を使った判定方法を解説しましょう。
まずは、指定位置となるマップタイルに、データベースの[タイルセット]タブで地形タグを振ります。何番でも良いですが、ここでは 1 番としておきます。
次に使うのは、イベントコマンド[指定位置の情報取得]です。
[情報の種類]で[地形タグ]を選択しておくと、[位置]で指定した座標の「地形タグ」の数値を、[情報を受け取る変数]で指定した変数に格納します。この例の場合、指定位置に置くマップタイルの地形タグは 1 ですから、岩が指定位置にあれば変数には 1 が格納されますし、指定位置になければ 1 以外の数値が格納されます。ですので、この変数に格納されている数値を見れば、岩が指定位置に置かれているかどうかが分かるわけです。
次の問題は、岩の「位置」です。岩の位置が分かれば、[指定位置の情報取得]を使ってその位置の地形タグの数値を取得することで、岩が指定位置にあるかどうかが分かります。しかし、岩はプレイヤーキャラクターによって動かされてしまいますので、それに伴って岩の位置も変わってしまいます。
そこで使用するのが、イベントコマンド「変数の操作」です。
岩が動いた後、[変数の操作]を使って「このイベント(岩)」の「座標」を変数に格納すれば、動いた後の岩の座標が分かります。岩が動くたびに座標を取得しますので、常に最新の座標が分かることになります。
あとは、この座標が格納されている変数をイベントコマンド[地形位置の情報取得]の[位置]に指定してあげれば、岩が動くたびに、岩の位置の地形タグを取得出来るようになります。
では、これらのことを踏まえた上で、実際にイベントを作成していきましょう。
まずは、1 つ目の岩のイベントからです。基本は「押せる岩を作る」の設定のままで、そこに設定を追加していく形をとります。
岩とプレイヤーキャラクターが動いた後で、イベントコマンド[変数の操作]で岩(このイベント)の X 座標と Y 座標の数値を、それぞれ別の変数に代入します。これにより、岩の座標が取得出来るというわけです。
次に、イベントコマンド[指定位置の情報取得]を設定します。[位置]は[変数で指定]を選んで、先ほど岩の座標を取得した変数をそれぞれ指定します。[情報の種類]は[地形タグ]を選び、[情報を受け取る変数]には座標を取得したのとは別の変数を指定します。これで、[情報を受け取る変数]で指定した変数に、岩の座標の地形タグの数値が代入されることになります。
その次は、地形タグを受け取った変数の数値が 1 かどうかで[条件分岐]を行います。1 ならば、岩は指定位置にあるわけですから、スイッチを ON にします。ここでは、「岩 A OK」というスイッチ名にしています。1 以外ならば、岩は指定位置にありませんので、スイッチを OFF にします。
最後に、イベントコマンド[コモンイベント]でコモンイベントを呼び出します。これは、すべての岩が指定位置にあるかどうかを判定するコモンイベントです。コモンイベントの設定については、あとで解説します。
続いて、2 ページ目の設定を行います。
扉が開いた後は、岩が指定位置にあるかどうかを判定する必要はありませんので、扉が開いたことを示すスイッチを出現条件とし、実行内容は岩が動くだけのものにしています。ですので、扉が開いた後は岩を押すことは出来ますが、何も起こりません。
これで、1 つ目の岩イベントが完成です。
2 つ目の岩イベントは、1 つ目の岩イベントをコピーした上で、一部を修正します。
見ての通り、ON / OFF するスイッチを別のスイッチに変えただけです。最初設定されていたスイッチは、1 つ目の岩が指定位置にあるかどうかを判断するためのスイッチでしたので、2 つ目の岩が指定位置にあるかどうかを判断するためには、別のスイッチを使用します。
これで、2 つ目の岩イベントも完成です。
ちなみに、岩を 3 つ以上にしたい場合も、同じ要領で 1 つ目の岩をコピーし、指定位置にあるかどうかを判断するためのスイッチを別のスイッチに変更してください。
扉イベントの作成は簡単です。
最後に、すべての岩が指定位置にあるかどうかを判定するイベントをコモンイベントで作成します。
イベントコマンド[条件分岐]を重ねて使って、それぞれの岩が指定位置にあるかどうかを判断するスイッチがすべて ON であれば、[SE の演奏]で扉が開く SE を鳴らして、扉が開いたことを示すスイッチを ON にします。
岩の数が 3 つ以上ある場合も、[条件分岐]の数を増やして、すべてのスイッチが ON の時に扉が開く動作を設定するだけです。
これで、指定位置に岩を動かすイベントがすべて完成しました。ちょっと難しかったかもしれませんが、まずはこの解説通りに作ってみて、イベントの仕組みを理解した上で、自分なりのイベントにアレンジしてみてください。
●岩を押して、所定のタイルの上に置く
●もう一つの岩も所定のタイルの上に置くと、扉が開く
●扉が開いた後は、岩をどう動かそうが何も起こらない