RPGツクールと数学のブログ

RPGツクールと数学についてのブログです。

アクション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

を追加しておきましょう。

次に当たり判定を考えます。

f:id:fermiumbay13:20190801132539p:plain

周囲にばらまきたいので、周囲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に相当するものがなくなるようにするのも、面白いかもしれませんね。