RPGツクール2000/自作戦闘
アクションRPGの戦闘システムを作る
■武器とキー処理
(更新:2014/10/18)


装備する武器によって攻撃内容を変更する方法と、
溜め攻撃の方法、取り消しキーも攻撃ボタンにする方法を紹介します。


このページは続きとなっているページです
このページは、アクションRPGの戦闘システムを作るから続いているページです。
制作内容もアクションRPGの戦闘システムを作るのページからご覧頂かないと、
分からないような作りになっています。
【アクションRPGの戦闘システムを作るのページを開く】
このページは、主人公の攻撃処理のページの応用として用意されています。
主人公の攻撃処理のページをご覧の上で、このページをご覧ください。
【主人公の攻撃処理のページを開く】

この色の設定は、主人公の攻撃処理のページにあります2マス先までの攻撃と、
同じ設定である事を示しています。



☆スイッチ・変数
使用するスイッチと変数の名前使用内容は以下の通りです。

スイッチ
番号 名前 使用内容 初使用ページ
0021 戦闘システム起動 定期的に並列処理するのイベントを起動します。 主人公の攻撃処理

変数
番号 名前 使用内容 初使用ページ
0001 キー入力 キー入力の処理で使います。 主人公の攻撃処理
0002 X位置 当たり判定のX座標を記憶します。 主人公の攻撃処理
0003 Y位置 当たり判定のY座標を記憶します。 主人公の攻撃処理
0004 イベントID 敵キャラの有無を調べる時に使います。 主人公の攻撃処理
0005 正面マスへ±X 当たり判定のX座標を変える時に使います。 主人公の攻撃処理
0006 正面マスへ±Y 当たり判定のY座標を変える時に使います。 主人公の攻撃処理
0007 左手マスへ±X 当たり判定のX座標を変える時に使います。 主人公の攻撃処理
0008 左手マスへ±Y 当たり判定のY座標を変える時に使います。 主人公の攻撃処理
0009 地形ID 障害物があるかどうかを調べる時に使います。 主人公の攻撃処理
0010 キー押し時間 決定キーを押し続けている時間を設定。 武器とキー処理
0011 マップID 溜め攻撃で使用。初めにキーを押した時のマップIDを記憶。 武器とキー処理
0012 マップID2 変数11番の値と比較してマップ移動の有無を確認。
武器とキー処理

【スイッチ・変数の一覧表を開く】



☆2種類の攻撃処理を用意する
コモンイベントに2種類の攻撃処理を設定します。
※このページの設定を行う前に、2種類の攻撃処理を準備してください。

コモンイベント「主人公の攻撃処理」コピー&貼り付けして、
同じ処理を2つ作ってください。

1つは主人公の攻撃(1マス)(1マス先までの攻撃)
もう1つは主人公の攻撃(2マス)(2マス先までの攻撃)とします。

この色の設定は削除してください。



■コモンイベント「主人公の攻撃(1マス)」
イベント開始条件:定期的に並列処理する
出現条件スイッチ:[0021:戦闘システム起動]
◆キー入力の処理:[0001:キー入力](決定/オプション:ON)
◆キャラクターの動作指定:主人公,一時停止(動作を繰り返す:ON)
◆変数の操作:[0002:X座標]代入,主人公のX座標
◆変数の操作:[0003:Y座標]代入,主人公のY座標
◆変数の操作:[0005〜0008]代入,0
◆条件分岐:主人公が上を向いている
 ◆変数の操作:[0006:正面マスへ±Y]代入,-1
 ◆変数の操作:[0007:左手マスへ±X]代入,-1
 ◆戦闘アニメの表示:剣A 上向き,主人公
 ◆
:分岐終了
◆条件分岐:主人公が下を向いている
 ◆変数の操作:[0006:正面マスへ±Y]代入,1
 ◆変数の操作:[0007:左手マスへ±X]代入,1
 ◆戦闘アニメの表示:剣A 下向き,主人公
 ◆
:分岐終了
◆条件分岐:主人公が左を向いている
 ◆変数の操作:[0005:正面マスへ±X]代入,-1
 ◆変数の操作:[0008:左手マスへ±Y]代入,1
 ◆戦闘アニメの表示:剣A 左向き,主人公
 ◆
:分岐終了
◆条件分岐:主人公が右を向いている
 ◆変数の操作:[0005:正面マスへ±X]代入,1
 ◆変数の操作:[0008:左手マスへ±Y]代入,-1
 ◆戦闘アニメの表示:剣A 右向き,主人公
 ◆
:分岐終了
◆変数の操作:[0002:X座標]加算,変数[0005]の値
◆変数の操作:[0003:Y座標]加算,変数[0006]の値
◆指定位置の地形ID取得:(V[0002],V[0003]),[0009:地形ID]
◆条件分岐:変数[0009:地形ID]が2
 ◆指定ラベルへ飛ぶ:1番
 ◆
:分岐終了

◆指定位置のイベントID取得:(V[0002],V[0003]),[0004:イベントID]
◆条件分岐:変数[0004:イベントID]が2以上
 ◆注釈:------------------------------
 :  :攻撃処理
 :  : 

 ◆効果音の演奏:斬る1
 ◆指定ラベルへ飛ぶ:1番
 ◆
:分岐終了
◆変数の操作:[0002:X座標]加算,変数[0005]の値
◆変数の操作:[0003:Y座標]加算,変数[0006]の値
◆指定位置のイベントID取得:(V[0002],V[0003]),[0004:イベントID]
◆条件分岐:変数[0004:イベントID]が2以上
 ◆注釈:攻撃処理
 ◆効果音の演奏:斬る1
 ◆
:分岐終了
◆ラベルの設定:1番

◆ウェイト:0.2秒
◆キャラクターの動作指定:主人公




■コモンイベント「主人公の攻撃(2マス)」
イベント開始条件:呼び出されたとき
◆キー入力の処理:[0001:キー入力]
◆キャラクターの動作指定:主人公,一時停止
◆変数の操作:[0002:X座標]代入,主人公のX座標
◆変数の操作:[0003:Y座標]代入,主人公のY座標
◆変数の操作:[0005〜0008]代入,0

◆条件分岐:主人公が上を向いている
 ◆変数の操作:[0006:正面マスへ±Y]代入,-1
 ◆変数の操作:[0007:左手マスへ±X]代入,-1
 ◆戦闘アニメの表示:剣A 上向き,主人公
 ◆
:分岐終了
◆条件分岐:主人公が下を向いている
 ◆変数の操作:[0006:正面マスへ±Y]代入,1
 ◆変数の操作:[0007:左手マスへ±X]代入,1
 ◆戦闘アニメの表示:剣A 下向き,主人公
 ◆
:分岐終了
◆条件分岐:主人公が左を向いている
 ◆変数の操作:[0005:正面マスへ±X]代入,-1
 ◆変数の操作:[0008:左手マスへ±Y]代入,1
 ◆戦闘アニメの表示:剣A 左向き,主人公
 ◆
:分岐終了
◆条件分岐:主人公が右を向いている
 ◆変数の操作:[0005:正面マスへ±X]代入,1
 ◆変数の操作:[0008:左手マスへ±Y]代入,-1
 ◆戦闘アニメの表示:剣A 右向き,主人公
 ◆
:分岐終了
◆変数の操作:[0002:X座標]加算,変数[0005]の値
◆変数の操作:[0003:Y座標]加算,変数[0006]の値
◆指定位置の地形ID取得:(V[0002],V[0003]),[0009:地形ID]
◆条件分岐:変数[0009:地形ID]が2
 ◆指定ラベルへ飛ぶ:1番
 ◆
:分岐終了
◆指定位置のイベントID取得:(V[0002],V[0003]),[0004:イベントID]
◆条件分岐:変数[0004:イベントID]が2以上
 ◆注釈:------------------------------
 :  :攻撃処理
 :  : 

 ◆効果音の演奏:斬る1
 ◆指定ラベルへ飛ぶ:1番
 ◆
:分岐終了
◆変数の操作:[0002:X座標]加算,変数[0005]の値
◆変数の操作:[0003:Y座標]加算,変数[0006]の値
◆指定位置のイベントID取得:(V[0002],V[0003]),[0004:イベントID]
◆条件分岐:変数[0004:イベントID]が2以上
 ◆注釈:------------------------------
 :  :攻撃処理
 :  : 

 ◆効果音の演奏:斬る1
 ◆
:分岐終了
◆ラベルの設定:1番
◆ウェイト:0.2秒
◆キャラクターの動作指定:主人公




☆装備している武器に合わせて攻撃範囲を変える
装備している武器によって、攻撃範囲を変えます。

武器として「槍(やり)」を用意してください。

槍を装備していない時には、前方1マスの攻撃のみ。
槍を装備している時には、前方2マスの攻撃とします。

装備の変更は、通常のメニュー画面が行うようになります。



■コモンイベント「主人公の攻撃(1マス)」
イベント開始条件:定期的に並列処理する
出現条件スイッチ:[0021:戦闘システム起動]
◆キー入力の処理:[0001:キー入力](決定/オプション:ON)
◆キャラクターの動作指定:主人公,一時停止(動作を繰り返す:ON)
◆変数の操作:[0002:X座標]代入,主人公のX座標
◆変数の操作:[0003:Y座標]代入,主人公のY座標
◆変数の操作:[0005〜0008]代入,0
◆条件分岐:主人公01が槍を装備している<槍を装備している時
 ◆イベントの呼び出し:主人公の攻撃(2マス)
 ◆イベント処理の中断
 ◆
:分岐終了

◆条件分岐:主人公が上を向いている
 ◆変数の操作:[0006:正面マスへ±Y]代入,-1
 ◆変数の操作:[0007:左手マスへ±X]代入,-1
 ◆戦闘アニメの表示:剣A 上向き,主人公
 ◆
:分岐終了
◆条件分岐:主人公が下を向いている
 ◆変数の操作:[0006:正面マスへ±Y]代入,1
 ◆変数の操作:[0007:左手マスへ±X]代入,1
 ◆戦闘アニメの表示:剣A 下向き,主人公
 ◆
:分岐終了
◆条件分岐:主人公が左を向いている
 ◆変数の操作:[0005:正面マスへ±X]代入,-1
 ◆変数の操作:[0008:左手マスへ±Y]代入,1
 ◆戦闘アニメの表示:剣A 左向き,主人公
 ◆
:分岐終了
◆条件分岐:主人公が右を向いている
 ◆変数の操作:[0005:正面マスへ±X]代入,1
 ◆変数の操作:[0008:左手マスへ±Y]代入,-1
 ◆戦闘アニメの表示:剣A 右向き,主人公
 ◆
:分岐終了
◆変数の操作:[0002:X座標]加算,変数[0005]の値
◆変数の操作:[0003:Y座標]加算,変数[0006]の値
◆指定位置のイベントID取得:(V[0002],V[0003]),[0004:イベントID]
◆条件分岐:変数[0004:イベントID]が2以上
 ◆注釈:------------------------------
 :  :攻撃処理
 :  : 

 ◆効果音の演奏:斬る1
 ◆
:分岐終了
◆ウェイト:0.2秒
◆キャラクターの動作指定:主人公


コモンイベント「主人公の攻撃(2マス)」の設定はそのままです。



☆溜め攻撃
決定キーが1秒以上押し続けると、溜め攻撃が実行されるようにします。
1秒以上溜めた時には、主人公のグラフィックを白く光らせます。

通常攻撃の時には主人公の攻撃(1マス)をそのまま実行し、
溜め攻撃の時には主人公の攻撃(2マス)を実行します。

なお、ラベル2番の所には、2つのキー入力の設定がありますが、
これはキー押し続けの不具合対策のための設定です。
【キー押し続けの不具合対策のページを見る】



■コモンイベント「主人公の攻撃(1マス)」
イベント開始条件:定期的に並列処理する
◆キー入力の処理:[0001:キー入力](決定/オプション:ON)
◆変数の操作;[0010:キー押し時間]代入,0
◆変数の操作:[0011:マップID]代入,主人公のマップID
◆ラベルの設定:2番<追加
◆変数の操作:[0012:マップID2]代入,主人公のマップID
◆条件分岐:変数[0012:マップID2]がV[0011]以外<別のマップへ移動した時
 ◆イベント処理の中断<溜め処理を中断
 ◆
:分岐終了
◆キー入力の処理:[0001:キー入力](決定/オプション:OFF)
◆ウェイト:0.0秒
◆条件分岐:変数[0001:キー入力]が0
 ◆キー入力の処理:[0001:キー入力](決定/オプション:OFF)
 ◆
:分岐終了
◆条件分岐:変数[0001:キー入力]が1以上<決定キーを押し続けている
 ◆変数の操作;[0010:キー押し時間]加算,1
 ◆条件分岐:変数[0010:キー押し時間]が60以上
  ◆キャラクターのフラッシュ:主人公,1.0秒(赤31、緑31、青31、強さ15)
  ◆
 :分岐終了
 ◆指定ラベルへ飛ぶ:2番
 ◆
:分岐終了
◆キャラクターのフラッシュ:主人公,0.0秒(赤31、緑31、青31、強さ0)

◆キャラクターの動作指定:主人公,一時停止(動作を繰り返す:ON)
◆変数の操作:[0002:X座標]代入,主人公のX座標
◆変数の操作:[0003:Y座標]代入,主人公のY座標
◆変数の操作:[0005〜0008]代入,0
◆条件分岐:変数[0010:キー押し時間]が60以上<溜め攻撃の時
 ◆イベントの呼び出し:主人公の攻撃(2マス)
 ◆イベント処理の中断
 ◆
:分岐終了

◆条件分岐:主人公が上を向いている
 ◆変数の操作:[0006:正面マスへ±Y]代入,-1
 ◆変数の操作:[0007:左手マスへ±X]代入,-1
 ◆戦闘アニメの表示:剣A 上向き,主人公
 ◆
:分岐終了
◆条件分岐:主人公が下を向いている
 ◆変数の操作:[0006:正面マスへ±Y]代入,1
 ◆変数の操作:[0007:左手マスへ±X]代入,1
 ◆戦闘アニメの表示:剣A 下向き,主人公
 ◆
:分岐終了
◆条件分岐:主人公が左を向いている
 ◆変数の操作:[0005:正面マスへ±X]代入,-1
 ◆変数の操作:[0008:左手マスへ±Y]代入,1
 ◆戦闘アニメの表示:剣A 左向き,主人公
 ◆
:分岐終了
◆条件分岐:主人公が右を向いている
 ◆変数の操作:[0005:正面マスへ±X]代入,1
 ◆変数の操作:[0008:左手マスへ±Y]代入,-1
 ◆戦闘アニメの表示:剣A 右向き,主人公
 ◆
:分岐終了
◆変数の操作:[0002:X座標]加算,変数[0005]の値
◆変数の操作:[0003:Y座標]加算,変数[0006]の値
◆指定位置のイベントID取得:(V[0002],V[0003]),[0004:イベントID]
◆条件分岐:変数[0004:イベントID]が2以上
 ◆注釈:------------------------------
 :  :攻撃処理
 :  : 

 ◆効果音の演奏:斬る1
 ◆
:分岐終了
◆ウェイト:0.2秒
◆キャラクターの動作指定:主人公


コモンイベント「主人公の攻撃(2マス)」の設定はそのままです。



なお、溜めている時に主人公の移動ができないようにする時には、
一時停止を実行しているキャラクターの動作指定の設定位置を変更してください。

■コモンイベント「主人公の攻撃(1マス)」
イベント開始条件:定期的に並列処理する
出現条件スイッチ:[0021:戦闘システム起動]
◆キー入力の処理:[0001:キー入力](決定/オプション:ON)
◆キャラクターの動作指定:主人公,一時停止(動作を繰り返す:ON)<設定位置を移動
◆変数の操作;[0010:キー押し時間]代入,0
◆ラベルの設定:2番
◆変数の操作:[0012:マップID2]代入,主人公のマップID
◆条件分岐:変数[0012:マップID2]がV[0011]以外
 ◆イベント処理の中断
 ◆
:分岐終了
◆キー入力の処理:[0001:キー入力](決定/オプション:OFF)
◆ウェイト:0.0秒
◆条件分岐:変数[0001:キー入力]が0
 ◆キー入力の処理:[0001:キー入力](決定/オプション:OFF)
 ◆
:分岐終了
◆条件分岐:変数[0001:キー入力]が1以上
 ◆変数の操作;[0010:キー押し時間]加算,1
 ◆条件分岐:変数[0010:キー押し時間]が60以上
  ◆キャラクターのフラッシュ:主人公,1.0秒(赤31、緑31、青31、強さ15)
  ◆
 :分岐終了
 ◆指定ラベルへ飛ぶ:2番
 ◆
:分岐終了
◆キャラクターのフラッシュ:主人公,0.0秒(赤31、緑31、青31、強さ0)
◆変数の操作:[0002:X座標]代入,主人公のX座標
◆変数の操作:[0003:Y座標]代入,主人公のY座標
◆変数の操作:[0005〜0008]代入,0
◆条件分岐:主人公が上を向いている
 ◆変数の操作:[0006:正面マスへ±Y]代入,-1
 ◆変数の操作:[0007:左手マスへ±X]代入,-1
 ◆戦闘アニメの表示:剣A 上向き,主人公
 ◆
:分岐終了
◆条件分岐:主人公が下を向いている
 ◆変数の操作:[0006:正面マスへ±Y]代入,1
 ◆変数の操作:[0007:左手マスへ±X]代入,1
 ◆戦闘アニメの表示:剣A 下向き,主人公
 ◆
:分岐終了
◆条件分岐:主人公が左を向いている
 ◆変数の操作:[0005:正面マスへ±X]代入,-1
 ◆変数の操作:[0008:左手マスへ±Y]代入,1
 ◆戦闘アニメの表示:剣A 左向き,主人公
 ◆
:分岐終了
◆条件分岐:主人公が右を向いている
 ◆変数の操作:[0005:正面マスへ±X]代入,1
 ◆変数の操作:[0008:左手マスへ±Y]代入,-1
 ◆戦闘アニメの表示:剣A 右向き,主人公
 ◆
:分岐終了
◆条件分岐:変数[0010:キー押し時間]が60以上
 ◆イベントの呼び出し:主人公の攻撃(2マス)
 ◆イベント処理の中断
 ◆
:分岐終了
◆変数の操作:[0002:X座標]加算,変数[0005]の値
◆変数の操作:[0003:Y座標]加算,変数[0006]の値
◆指定位置のイベントID取得:(V[0002],V[0003]),[0004:イベントID]
◆条件分岐:変数[0004:イベントID]が2以上
 ◆注釈:------------------------------
 :  :攻撃処理
 :  : 

 ◆効果音の演奏:斬る1
 ◆
:分岐終了
◆ウェイト:0.2秒
◆キャラクターの動作指定:主人公




☆取消キーで別の攻撃を実行
取消キーを押した時に、別の攻撃が実行されるように設定します。

決定キーの時には主人公の攻撃(1マス)をそのまま実行し、
取消キーの時には主人公の攻撃(2マス)を実行します。

メニュー画面を開くボタンはShiftキーに変更します。
Shiftキーは、攻撃可能時に押す事ができます。



■コモンイベント「主人公の攻撃(1マス)」
イベント開始条件:定期的に並列処理する
出現条件スイッチ:[0021:戦闘システム起動]
◆メニュー画面禁止の変更:禁止する<取消キーを押してもメニュー画面が開かないようにする
◆キー入力の処理:[0001:キー入力](決定・取消Shift/オプション:ON)<取消とShiftを追加する
◆条件分岐:変数[0001:キー入力]が7<Shiftキーが押された時
 ◆メニュー画面の呼び出し
 ◆イベント処理の中断
 ◆
:分岐終了

◆キャラクターの動作指定:主人公,一時停止(動作を繰り返す:ON)
◆変数の操作:[0002:X座標]代入,主人公のX座標
◆変数の操作:[0003:Y座標]代入,主人公のY座標
◆変数の操作:[0005〜0008]代入,0
◆条件分岐:変数[0001:キー入力]が6<取消キーが押された時
 ◆イベントの呼び出し:主人公の攻撃(2マス)
 ◆イベント処理の中断
 ◆
:分岐終了

◆条件分岐:主人公が上を向いている
 ◆変数の操作:[0006:正面マスへ±Y]代入,-1
 ◆変数の操作:[0007:左手マスへ±X]代入,-1
 ◆戦闘アニメの表示:剣A 上向き,主人公
 ◆
:分岐終了
◆条件分岐:主人公が下を向いている
 ◆変数の操作:[0006:正面マスへ±Y]代入,1
 ◆変数の操作:[0007:左手マスへ±X]代入,1
 ◆戦闘アニメの表示:剣A 下向き,主人公
 ◆
:分岐終了
◆条件分岐:主人公が左を向いている
 ◆変数の操作:[0005:正面マスへ±X]代入,-1
 ◆変数の操作:[0008:左手マスへ±Y]代入,1
 ◆戦闘アニメの表示:剣A 左向き,主人公
 ◆
:分岐終了
◆条件分岐:主人公が右を向いている
 ◆変数の操作:[0005:正面マスへ±X]代入,1
 ◆変数の操作:[0008:左手マスへ±Y]代入,-1
 ◆戦闘アニメの表示:剣A 右向き,主人公
 ◆
:分岐終了
◆変数の操作:[0002:X座標]加算,変数[0005]の値
◆変数の操作:[0003:Y座標]加算,変数[0006]の値
◆指定位置のイベントID取得:(V[0002],V[0003]),[0004:イベントID]
◆条件分岐:変数[0004:イベントID]が2以上
 ◆注釈:------------------------------
 :  :攻撃処理
 :  : 

 ◆効果音の演奏:斬る1
 ◆
:分岐終了
◆ウェイト:0.2秒
◆キャラクターの動作指定:主人公


コモンイベント「主人公の攻撃(2マス)」の設定はそのままです。



ページタイトル 内容
備考
基礎ページ 制作を始める前に必ず見ておく基礎ページです。
必見!
制作に必要な情報を見る事ができます。
イベントIDの管理 イベントIDの管理に関するページです。
制作テクニックです。
主人公の攻撃処理 決定キーを押すと攻撃を行う処理。
必要な処理。
様々な攻撃範囲の設定 様々な攻撃範囲の設定方法を紹介。
「主人公の攻撃処理」の後に見てください。
武器とキー処理 武器装備時、または溜め攻撃時の攻撃範囲の変更を紹介。
「主人公の攻撃処理」の後に見てください。
敵の設定 基本的な敵キャラの設定方法を紹介。
必要な処理。「主人公の攻撃処理」の後に見てください。
ダメージ&命中率の計算 攻撃力や防御力を使ったダメージ&命中率の計算を設定。
「敵の設定」の後に見てください。
マップごとに敵HPを管理 別のマップへ移動しても敵HPが初期化しないように設定。
「敵の設定」の後に見てください。
敵の位置を記憶 別のマップへ移動する前に敵の位置を記憶します。
「敵の設定」の後に見てください。
戦闘アニメの表示制限 宝箱などを調べても戦闘アニメが表示されないように設定。
「敵の設定」の後に見てください。
主人公のHPを表示 主人公のHP表示を設定します。
敵の設定までが終わりましたらご覧ください。
敵のHPを表示 敵のHP表示を設定します。
敵の設定までが終わりましたらご覧ください。


YADOTトップ  このサイトは何?  気紛れな空間へ戻る  メール