RPGツクール2000/自作戦闘【サイトトップへ戻る】
アクションRPGの戦闘システムを作る
■武器とキー処理
(更新:2020/08/08)
装備する武器によって攻撃内容を変更する方法と、
溜め攻撃の方法、取り消しキーも攻撃ボタンにする方法を紹介します。
この色の設定は、主人公の攻撃処理のページにある2マス先までの攻撃と、
同じ設定である事を示しています。
■スイッチ・変数
使用するスイッチと変数の名前と使用内容は以下の通りです。
変数 |
番号 |
名前 |
使用内容 |
初使用ページ |
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表示を設定します。 |
▲トップへ戻る▲ |