イベントのすゝめ(17) 「汎用型"足跡"イベント」
RPGツクールVXAceで説明していきますが、多くはVXや他のツクールでも可能です。
合言葉は「One night I tkooled a tkool.」
第十七回は移動すると足跡が残っていくというイベントの紹介です。
座標を使うため、第16回の「移動監視イベント」を応用します。
丁寧に説明していこうと思うので、少し長いかもしれませんが良かったら読んでみて下さい。
それから、イベント用に足跡キャラチップを用意しました!
トップの利用規約に従って、誰でも自由にお使い頂けます。(完全自作なので使用ツールを問いません)
そのままだと大きめのキャラチップや、デフォルメに適したサイズとなってますが
インポート時に半透明色に、薄い方の茶色を指定することで一回り小さくなり
RTPやFSMの足に近いリアルなサイズとなりますので、好きなほうを試してみて下さい。
ではこれを使ってどうイベントを組むのかは続きからどうぞ。
足跡イベントABC
まずは足跡そのものを作ってしまいましょう。
マップイベントを1つ作り、ページを4つ作ります。
それぞれのページの条件を、「変数aが2以上、4以上、6以上、8以上」にして
足跡の画像を「下向き、左向き、右向き、上向き」の順番で配置します。
(プライオリティを通常キャラの下、オプションは向き固定のみチェック)
これをコピペして、同じく変数bと変数cを条件にするイベントを作ります。
このイベントの解説
足跡イベントAなら変数aに対応して
0のとき:消える、2のとき:下向きの足跡、4のとき:左向きの足跡……と変化します。
つまり「変数の操作だけで変更できる、表示用イベント」というのがこのイベントの役割です。
メイン処理(移動監視イベント+)
表示用のイベントが出来たので、今度は制御用のイベントを作りましょう。
コモンイベントの並列処理で、条件:スイッチ「足跡オン」がオンの場合です。
変数の操作:変数C = 変数の操作:変数Aこのイベントの解説
変数の操作:変数D = 変数の操作:変数B
変数の操作:変数A = プレイヤーのマップX
変数の操作:変数B = プレイヤーのマップY
変数の操作:変数E = プレイヤーの向き
条件分岐:変数C != 0
条件分岐:変数C != 変数A
スイッチ「足跡置く」をonにする
条件分岐:変数D != 0
条件分岐:変数D != 変数B
スイッチ「足跡置く」をonにする
基本は第16回のものと同じですが、向きの情報も変数Eに入れるようにしたのと
スイッチAで2ページに別ける方法をやめて、変数CDが0の場合は判定を行わないように改造してあります。
後者は左上(座標0, 0)で反応しないというデメリットがありますが、左上は大抵壁か屋根になっているので
今回は無視してスイッチを減らして構造をすっきりさせるメリットを優先しました。
実際に足跡を置く処理はマップイベントで行いたいので
スイッチ「足跡置く」を使って次のイベントにバトンタッチします。
足跡設置イベント
マップイベントの並列処理、条件:スイッチ「足跡置く」です。
マップイベントに処理を渡す理由は足跡イベントのイベントIDがマップ毎に違っても対応できるためです。
条件分岐:変数「足跡の番号」が0このイベントの解説
変数の操作:変数a = 変数E
イベントの位置設定:足跡イベントA, [変数C][変数D]
変数の操作:変数「足跡の番号」 = 1
条件分岐:変数「足跡の番号」が1
変数の操作:変数b = 変数E
イベントの位置設定:足跡イベントB, [変数C][変数D]
変数の操作:変数「足跡の番号」 = 2
条件分岐:変数「足跡の番号」が2
変数の操作:変数c = 変数E
イベントの位置設定:足跡イベントC, [変数C][変数D]
変数の操作:変数「足跡の番号」 = 0
スイッチの操作:スイッチ「足跡置く」をoffにする
内容は驚くほど単純です。これもしっかりと仕組みを作っていたおかげですね。
足跡イベントの画像をプレイヤーの向きに合わせて変更し、プレイヤーの移動前の位置に置く
それから3つの足跡が順番に置かれるように変数でカウントする、とこれだけです。
逆に言うとここを簡単にするために今までのイベントに工夫がしてあります。
まず位置監視イベントをメインにしたのは、主人公の移動前の座標が欲しかったからです。
それから足跡イベントの変数の条件が2468なのも、取得した主人公の向きはテンキー配列で
2468のどれかが入るので、そのまま代入するだけで済むようにするためです。
場所移動イベントに追加する処理
もう1つ忘れずに作っておきたいのがこの部分です。
違うマップに場所移動する時には
「変数A、変数B、変数a、変数b、変数c」を全て0にする必要があります。
変数の操作:変数A = 0これをコモンイベントで作り、場所移動をさせるイベントで呼び出すようにすると楽です。
変数の操作:変数B = 0
変数の操作:変数a = 0
変数の操作:変数b = 0
変数の操作:変数c = 0
(場所移動のイベントコマンドのすぐ上か、それより下で呼び出すと安心)
カスタムのすゝめ
足跡イベントのイベントIDを全マップ共通にするならコモンイベントだけで作れます。
足跡イベントは今回は3つまでとしましたが増やすのは簡単でしょう。
足跡設置で座標を使って地形IDを取得すれば、地形に合わせた足跡を設置することも可能です。
またメイン処理を改造すれば主人公以外のキャラクターに足跡を設置することも可能です。
こういう改造をするなら、足跡の種類も増えることになるため
足跡イベントのページを増やすかイベント自体を増やすなどして実装することになるでしょう。