RPGツクール2000/自作戦闘【サイトトップへ戻る】
アクションRPGの戦闘システムを作る
■武器とキー処理
(更新:2020/08/08)


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

ショートカット
■スイッチ・変数
■2種類の攻撃処理を用意する
■装備している武器に合わせて攻撃範囲を変える
■溜め攻撃
■取消キーで別の攻撃を実行

このページは続きとなっているページです
最初のページをご覧の上でこのページをご覧ください。
【アクション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トップ  このサイトは何?  気紛れな空間へ戻る  メール