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

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

アクションRPGの基礎(RPGツクールMV)(応用編 回転斬り)

基本編のオマケで、回転斬りを作りましょう。ため技のサンプルです。

回転斬りは通常の剣攻撃よりも強力にしたいので、敵へのダメージ量を技によって変えられるようにしたいと思います。変数5番「攻撃力」を新たに作りましょう。これまでの剣を振る処理と、ダメージを受ける敵の処理を書き換えます。

コモンイベント「剣を振る」

◇変数の操作:#0005 攻撃力 = 1
◆変数の操作:#0002 攻撃x = プレイヤーのマップX
◆変数の操作:#0003 攻撃y = プレイヤーのマップY
◆スイッチの操作:#0005 目の前に非対象者 = OFF
◆条件分岐:プレイヤーが下を向いている
 ◆変数の操作:#0002 攻撃x -= 1
 ◆コモンイベント:対象者取得

 ……

先頭に「攻撃力」に1代入する処理を加えます。これにより、以降は対象者取得の処理によって与えられるダメージ量が1になるようにします。

どこ変えればいいか、見当つきますね?

f:id:fermiumbay13:20190801193645p:plain

敵の2ページ目のダメージ量を増やすスクリプトを、1から$gameVariables.value(5)(=「変数5番の値」)に変更します。これで攻撃力が反映されるようになりました。

回転斬りは、剣と同じく決定キーを使って発動させることにします。決定キーを一定時間押しっぱなしにしてから離すと発動するものです。そこで、コモンイベント「キー入力受付」にため技のための追記をしましょう。スイッチ4番「回転斬り」、変数6番「ため量」を新たに作ります。

◆条件分岐:ボタン[決定]が押されている
 ◆条件分岐:決定キー押してる時間 = 0
  ◆スイッチの操作:#0002 剣を振る = ON
  ◆
 :分岐終了
 ◇変数の操作:#0006 ため量 += 1
 ◇条件分岐:ため量 = 40
  ◇アニメーションの表示:プレイヤー,ためる
  ◇
 :分岐終了
 ◆変数の操作:#0001 決定キー押してる時間 += 1
 ◆
:それ以外のとき
 ◇条件分岐:決定キー押してる時間 ≧ 1
  ◇条件分岐:ため量 ≧ 40
   ◇スイッチの操作:#0004 回転斬り = ON
   ◇
  :分岐終了
  ◇
 :分岐終了
 ◇変数の操作:#0006 ため量 = 0
 ◆変数の操作:#0001 決定キー押してる時間 = 0
 ◆
:分岐終了

決定キーを押していない間は常にため量を0にしておき、押し始めたら、ため量が1ずつ増えるようにします。そして40になったら、たまったことを表すアニメーションを表示しています。サンプルではただ白くフラッシュするだけですが……

そして、決定キーを離したときに、それまで決定キーを押していた&ため量40以上なら
回転斬りスイッチをONにして、回転斬りを発動させます。

コモンイベント「初期化」を追記して、ため量を0にします。

スクリプト:enemyDamage = new Array(999);
:     :for(var i = 0; i < 999; i++){
:     : enemyDamage[i] = 0;
:     :}
スクリプト:for(var eventID = 1; eventID <= 999; eventID++){
:     : var mapID = this._mapId;
:     : $gameSelfSwitches.setValue([mapID, eventID, "A"], false);
:     : $gameSelfSwitches.setValue([mapID, eventID, "B"], false);
:     :}
◇変数の操作:#0006 ため量 = 0
◆スイッチの操作:#0001 キー入力受付 = ON
◆スイッチの操作:#0003 主人公被ダメージ無敵 = OFF

コモンイベント「回転斬り」を追加します。「剣を振る」に似た作りです。トリガーは並列処理、スイッチは「回転斬り」です。

f:id:fermiumbay13:20190801193742p:plain

攻撃力を2に設定して、自分の周り8マスに攻撃が通るように作ってみましょう。

ついでに、敵からダメージを受けたらため量が0になるようにすると面白いかもしれません。

敵の1ページ目に追記します。

……

◆SEの演奏:Damage1(90,100,0)
◆アニメーションの表示:プレイヤー,ダメージ
◆移動ルートの設定:プレイヤー(飛ばす,ウェイト)
:        :◇180度回転
:        :◇一歩前進
◆HPの増減:パーティ全体,- 50(戦闘不能を許可)
◇変数の操作:#0006 ため量 = 0
◆スイッチの操作:#0003 主人公被ダメージ無敵 = ON

これで完成です。うまく動くことを確認したら、敵をコピペしていっぱい登場させてみましょう。

 

f:id:fermiumbay13:20190801193827p:plain