アクションRPGの基礎(RPG2000)(応用編 ため技)
過去ブログの転載です。
基礎は整ったので、応用してみましょう。今回はキーを押しっぱなしにして離すと技が発動する、ため技を作ってみます。とりあえずため技のキーはEscに割り当てましょう。Esc押すとメニューが出てしまいますが、初期設定(マップ「黒」)で「◆メニュー画面禁止の変更:禁止する」を追加すれば、メニュー画面が呼び出されません。メニューをEscで呼び出したい場合は、Shiftか何かに割り当てましょうね^^
それではキー入力から作ります。ため技はキーを押しっぱなしにする必要がありますが、押しっぱなしの情報の取得は2000ではできません。そのため、「キーが押されるまで待つ」のチェックを外す必要があります。ただEnterを押すと剣が出るの所では「キーが押されるまで待つ」にチェックがあるため、使い回しができません。新しくコモンイベントを用意しましょう。
コモンイベント「キー入力(ため技)」(開始条件:定期的に並列処理する)
◆キー入力の処理:[0001:キー入力:値](6のみチェック、キーが押されるまで待つOFF)
◆条件分岐:変数[0001:キー入力:値]が6
◆変数の操作:[0013:ため量]加算, 1
◆条件分岐:変数[0013:ため量]が1
◆キャラクターのフラッシュ:主人公, 1.0秒(4つとも31、ウェイトなし)
◆効果音の演奏:霧2
◆
:分岐終了
◆
:それ以外の場合
◆条件分岐:変数[0013:ため量]が48以上
◆現在の場所を記憶:[0006],[0004],[0005]
◆スイッチの操作:[0003:ため技]をONにする
◆スイッチの操作:[0005:キー入力受付]をOFFにする
◆
:それ以外の場合
◆条件分岐:変数[0013:ため量]が1以上
◆効果音の演奏:(OFF)
◆
:分岐終了
◆
:分岐終了
◆変数の操作:[0013:ため量]代入, 0
◆
:分岐終了
◆
↑Shiftだと7にしてくださいね。Escを押すと条件分岐の中に入れます。すると変数13番「ため量」が1増えます。ため量が1になるとここでは主人公をフラッシュさせてます。演出なので、どう作ってもかまいません。条件も変えて良いと思います。
押しっぱなしにすることで、何度も条件分岐の中に入り、ため量が増えていきます。キーを離すと「それ以外の場合」の方へ行き、ため量が0になります。このとき、ため量が1~47だと失敗で、効果音OFFするだけにしました。ため量が48以上になると成功で、ため技が発動します。
定期的に並列処理するコモンイベントではイベント終了のたびに1/60秒ウェイトがあるので、1秒間Escを押しっぱなしにしていると60回イベントが回ります。よって、1秒押すとため量60になります。ため量48ということは、0.8秒押しっぱなしにして離せば発動するということですね。一般に、A秒押しっぱなしにするときは、成功のときの条件を[A×60]以上にすればOKです。
ため技の発動の設定は、剣の発動とほとんど同じです。これから作ろうとするため技は周囲に爆発するものですので、向きはあってもなくても構いません。ただし、向きをなくした場合は敵1ページを向きに依存しないように変える必要があります。
例えば向きの条件分岐4つをなくして
◇ジャンプ開始
◇主人公の逆を向く
◇一歩前進
◇ジャンプ終了
◇
だけにするなどがいいでしょう。
もしくは剣による向き依存だけは残したい場合、例えばため技発動時に向きに0を代入し、
◆条件分岐:変数[0006:向き]が0
◆キャラクターの動作指定:このイベント,(↑上記のやつ)
◆
:分岐終了
を追加する、というのもありでしょう。色々やってみてくださいね^^
また、一般に攻撃のダメージを技によって変えたいときのために、敵の2ページ目もいじっておくと良いと思います。
変数12番「ダメージ」を用意して、2行目を定数ではなく
◆変数の操作:[V[0002]]加算,変数[0012]の値
という変数にしてしまった方が後々便利になります。
それに伴い、剣によるダメージを1にするため、イベント「技」3ページの先頭に
◆変数の操作:[0012:ダメージ]代入,1
を追加しておきましょう。
次に当たり判定を考えます。
周囲にばらまきたいので、周囲8マスにしましょう。ここで問題になるのは、当たり判定の数です。剣のときは3マスで済んでいましたが、8マス必要になってしまいます。変数7番~9番では足りないので、変数101番~108番を使わせてもらいます。変数10番がすでに使われているので飛んでしまっています。しかし、連番になっている方が扱いやすいので、変数7番~9番は必要なくなります。
初めからそうすれば良かったのですが^^;……後先考えなかったためです。申し訳ない。
ということで、いくつか修正します。
イベント「技」3ページの2~3行目は、
◆変数の操作:[0101~0108]代入,0
◆変数の操作:[0010:敵番号]代入,101
コモンイベント「ダメージを与える処理」では、
◆変数の操作:[0010:敵番号]代入,7 になっている所を
◆変数の操作:[0010:敵番号]代入,101 に、
◆条件分岐:変数[0010:敵番号]が9より大きい になっている所を
◆条件分岐:変数[0010:敵番号]が108より大きい に、
それぞれ2箇所あると思うので、変更してください。
以後、当たり判定のマスが増えるようなことがあれば、↑この上限の「108」の所だけを変えればOKです。というか、初めからおおく見積もって上限を大きくしておくのも手ですね。
それではため技のイベントを作ります。といっても凝ったことはしませんが……
イベント「技」4ページ(新規ページ)
◆変数の操作:[0012:ダメージ]代入,2
◆変数の操作:[0101~0108]代入,0
◆変数の操作:[0010:敵番号]代入,11
◆指定動作の全解除
◆戦闘アニメの表示:ため技,主人公(ウェイトなし)
◆変数の操作:[0004:攻撃x]減算,1
◆イベントの呼び出し:このイベント[1]
◆変数の操作:[0005:攻撃y]減算,1
◆イベントの呼び出し:このイベント[1]
◆変数の操作:[0004:攻撃x]加算,1
◆イベントの呼び出し:このイベント[1]
◆変数の操作:[0004:攻撃x]加算,1
◆イベントの呼び出し:このイベント[1]
◆変数の操作:[0005:攻撃y]加算,1
◆イベントの呼び出し:このイベント[1]
◆変数の操作:[0005:攻撃y]加算,1
◆イベントの呼び出し:このイベント[1]
◆変数の操作:[0004:攻撃x]減算,1
◆イベントの呼び出し:このイベント[1]
◆変数の操作:[0004:攻撃x]減算,1
◆イベントの呼び出し:このイベント[1]
◆指定動作の全実行
◆イベントの呼び出し:ダメージを与える処理
◆スイッチの操作:[0005:キー入力受付]をONにする
◆スイッチの操作:[0003:ため技]をOFFにする
◆
↑数行はテンプレート。剣の所からコピーしてきてください。
戦闘アニメをてきとうに表示して爆発させ、上の方の図のとおり当たり判定をたどります。好きなようにたどってください。最後にスイッチ「ため技」をOFFにすれば完成です。
技そのものを作るのは簡単でしょう。基本的に、演出とダメージと当たり判定を変えればいいだけです。発動してMPに相当するものがなくなるようにするのも、面白いかもしれませんね。