アクションRPGの基礎(RPGツクールMV)(応用編 回転斬り)
基本編のオマケで、回転斬りを作りましょう。ため技のサンプルです。
回転斬りは通常の剣攻撃よりも強力にしたいので、敵へのダメージ量を技によって変えられるようにしたいと思います。変数5番「攻撃力」を新たに作りましょう。これまでの剣を振る処理と、ダメージを受ける敵の処理を書き換えます。
コモンイベント「剣を振る」
◇変数の操作:#0005 攻撃力 = 1
◆変数の操作:#0002 攻撃x = プレイヤーのマップX
◆変数の操作:#0003 攻撃y = プレイヤーのマップY
◆スイッチの操作:#0005 目の前に非対象者 = OFF
◆条件分岐:プレイヤーが下を向いている
◆変数の操作:#0002 攻撃x -= 1
◆コモンイベント:対象者取得……
先頭に「攻撃力」に1代入する処理を加えます。これにより、以降は対象者取得の処理によって与えられるダメージ量が1になるようにします。
どこ変えればいいか、見当つきますね?
敵の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
コモンイベント「回転斬り」を追加します。「剣を振る」に似た作りです。トリガーは並列処理、スイッチは「回転斬り」です。
攻撃力を2に設定して、自分の周り8マスに攻撃が通るように作ってみましょう。
ついでに、敵からダメージを受けたらため量が0になるようにすると面白いかもしれません。
敵の1ページ目に追記します。
……
◆SEの演奏:Damage1(90,100,0)
◆アニメーションの表示:プレイヤー,ダメージ
◆移動ルートの設定:プレイヤー(飛ばす,ウェイト)
: :◇180度回転
: :◇一歩前進
◆HPの増減:パーティ全体,- 50(戦闘不能を許可)
◇変数の操作:#0006 ため量 = 0
◆スイッチの操作:#0003 主人公被ダメージ無敵 = ON
◆
これで完成です。うまく動くことを確認したら、敵をコピペしていっぱい登場させてみましょう。