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


アクションRPG用の敵の設定を行います。



ショートカット
■スイッチ・変数
■敵キャラの攻撃について(無敵時間の設定)
■敵キャラのマップイベントを設定
■初期設定と主人公の攻撃処理にイベントを追加する
■ダメージ量について
■命中率について
■敵HPについて

このページは続きとなっているページです
最初のページをご覧の上でこのページをご覧ください。
【アクション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番の値と比較してマップ移動の有無を確認。 武器とキー処理
0013 無敵時間 向き変更や攻撃を受けた時に無敵時間を設定。1以上=無敵。 敵の設定
0014 主人公の向き 現在の主人公の向きを代入します。 敵の設定
0015 主人公の前の向き 変数14番の値と比較して向き変更を監視します。 敵の設定
0016 乱数 命中率の説明で使用。 敵の設定
 
0021 敵イベントID開始番 一番小さい敵イベントIDを設定します。 敵の設定
0022 1ページ目 敵キャラの1ページ目を呼び出す時に使います。 敵の設定
0023 敵HP変数番号 敵HPの変数番号を設定します。 敵の設定
0024 敵HP 敵HPを呼び出す時に使います。 敵の設定
0025 倒した敵移動X 倒した敵を壁のあるマスへ移動する時に使います。 敵の設定
0026 倒した敵移動Y 倒した敵を壁のあるマスへ移動する時に使います。 敵の設定
 
0102 敵HP02 イベントID「2番」の敵HPを記録します。 敵の設定

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


▲トップへ戻る▲


  
■敵キャラの攻撃について(無敵時間の設定)

敵キャラの2ページ目に敵の攻撃処理を設定します。

最も簡単な攻撃実行方法は「イベント開始条件:イベントから触れたとき」を使って、
イベントが主人公に触れたら攻撃を行うものです。

ただこの設定には1つ問題があります。

イベントから触れたとき主人公から触れた時にも実行されます。

つまり主人公の隣りに敵キャラがいて、敵キャラの方向に主人公の向きを変えた時に、
主人公がダメージを受けてしまいます。

右を向く

ダメージを受ける

このような問題を防ぐために、
主人公の向きを変更した時に0.1秒間の無敵になるように設定します。

この無敵の設定は、主人公がダメージを受けた時に、
連続で敵キャラからの攻撃を受けないようにする時にも使います。

この設定により、敵に囲まれても連続で攻撃を受ける事がなく、
またプレイヤーが敵キャラに向かって移動し続けても連続で攻撃を受ける事もなくなります。



イベントの設定はコモンイベントに行ってください。

■コモンイベント「無敵時間」

イベント開始条件:定期的に並列処理する
出現条件スイッチ:[0021:戦闘システム起動]

◆変数の操作:[0013:無敵時間]減算,1
◆変数の操作:[0014:主人公の向き]代入,主人公の向き
◆条件分岐:変数[0015:主人公の前の向き]がV[0014]以外<向き変更を行った時
 ◆変数の操作:[0015:主人公の前の向き]代入,主人公の向き
 ◆条件分岐:変数[0013:無敵時間]が6以下
  ◆変数の操作:[0013:無敵時間]代入,6
  ◆
 :分岐終了
 ◆
:分岐終了

変数[0013:無敵時間]の値が1以上の時には無敵になります。
変数[0013:無敵時間]に「60」を設定すると約1秒間の無敵になります。


▲トップへ戻る▲


  
■敵キャラのマップイベントを設定

敵キャラのマップイベントを設定します。

1ページ目には攻撃を受けた時の設定。
2ページ目には敵キャラの攻撃処理を設定します。



HPが0になって倒した敵キャラは、壁のマスなどの移動できないマスへ移動させます。

移動しておかないと、倒した敵キャラのマスに他の敵キャラが重なった時に、
攻撃しても倒した敵キャラのイベントIDを読み取ってしまい、
倒していない敵キャラへの攻撃が出来なくなる可能性があります。

移動できないマスへ移動させる設定では…
変数[0025:倒した敵移動X]
変数[0026:倒した敵移動Y]
を使い、指定したマスへ移動させます。

この移動先の設定は、あとでマップイベント「初期設定」に設定します。



敵キャラのHPを記録する変数番号は…
敵キャラのイベントID+100=この敵キャラのHPを記録する変数番号
と言った感じで変数番号を決定します。

イベントID:」の敵キャラの場合は、
変数番号:105」に現在のHPを記録します。



■マップイベント「敵キャラID:02」※イベントID=2番の時

▼1ページ目

イベント出現条件:変数[0102:敵HP ID:02]が1以上
イベント開始条件:決定キーが押されたとき

◆キャラクターのフラッシュ:このイベント,0.5秒(赤31、緑0、青0、強さ31)
◆キャラクターの動作指定:このイベント,向き固定,
             主人公から逃げる,向き固定解除(移動できない場合は無視:ON)
◆条件分岐:変数[0024:敵HP]が1以上(オプション:ON)<まだHPが残っている時
 ◆効果音の演奏:斬る1
 ◆
:それ以外の場合<HPが0以下
 ◆効果音の演奏:消滅2
 ◆イベントの位置を設定:このイベント(V[0025],V[0026])<壁のマスへ移動
 ◆
:分岐終了




▼2ページ目

イベント出現条件:変数[0102:敵HP ID:02]が1以上
イベント開始条件:イベントから触れたとき
グラフィック:敵キャラの絵
移動タイプ:主人公に近寄る

◆条件分岐:決定キーでこのイベントを開始した
 ◆イベント処理の中断
 ◆
:分岐終了
◆条件分岐:変数[0013:無敵時間]が1以上<無敵中の時
 ◆イベント処理の中断
 ◆
:分岐終了
◆変数の操作:[0014:主人公の向き代入,主人公の向き
◆条件分岐:変数[0014:主人公の向き]がV[0015]以外<主人公の向きが変わった時
 ◆イベント処理の中断
 ◆
:分岐終了
◆注釈:------------------------------------------------------------
:  :敵の攻撃
:  : 

◆効果音の演奏:打撃1
◆キャラクターのフラッシュ:主人公,0.5秒(赤31、緑0、青0、強さ31)
◆HPの増減:メンバー全員のHPを1減らす
◆変数の操作:[0013:無敵時間]代入,30<0.5秒間は無敵にします



■移動設定について

移動タイプを「移動ルート指定」にすれば、単純に「主人公に近寄る」の移動だけでなく、
急に移動速度が上がるような特殊な移動設定を行う事ができます。

但し、移動ルートの設定では、止まっている敵キャラに主人公が近づくと、
急に移動を始めるような状況に合わせた移動を設定する事はできません。

状況に合わせた移動を行うには、
定期的に並列処理するで常に主人公と敵キャラとの距離(マス数)を監視して、
指定された距離に近づいたら、移動を開始するような設定を行う必要があります。

なお、移動ルートの設定キャラクターの動作指定で敵キャラを動かす場合は、
オプション:移動できない場合は無視」にチェックを入れてください。


▲トップへ戻る▲


  
■初期設定と主人公の攻撃処理にイベントを追加する

マップイベント「初期設定」に敵キャラに関する設定を追加します。



変数[0021:敵イベントID開始番]には、
このマップの敵キャラの中で最も小さい敵イベントIDを設定します。

例えば…
イベントID1〜5番=敵ではないイベント
イベントID6〜8番=
敵イベント
と言った場合は、
変数[0021:敵イベントID開始番]には「6」を代入します。



■マップイベント「初期設定」

イベント出現条件:なし
イベント開始条件:自動的に始まる
グラフィック:透明

◆変数の操作:[0021:敵イベントID開始番]代入,2<最小の敵イベントが「2番」の時
◆変数の操作:[0022:1ページ目]代入,1<敵キャラの1ページ目を呼び出す時に使用
◆変数の操作:[0025:倒した敵移動X]代入,0<敵を倒した時を移動するマスのX座標
◆変数の操作:[0026:倒した敵移動Y]代入,0<敵を倒した時を移動するマスのY座標
◆変数の操作:[0102:敵HP02 ID:02]代入,10
<イベントID2番の敵キャラのHPを設定
◆スイッチの操作:[0021:戦闘システム起動]をONにする
◆画面の表示:フェードイン
◆イベントの一時消去



コモンイベント「主人公の攻撃処理」に敵キャラの攻撃に関する設定を追加します。

■コモンイベント「主人公の攻撃処理」

イベント開始条件:定期的に並列処理する
出現条件スイッチ:[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]がV[0021]以上<変数21番を設定
 ◆注釈:------------------------------
 :  :攻撃処理
 :  : 

 ◆効果音の演奏:斬る1<敵キャラの1ページ目に移動したので削除
 ◆変数の操作:[0023:敵HP変数番号]代入,変数[0004]の値<イベントIDを代入
 ◆変数の操作:[0023:敵HP変数番号]加算,100
 ◆変数の操作:[0024:敵HP]代入,変数[V[0023]]の値<敵HPを呼び出す
 ◆条件分岐:変数[0024:敵HP]が1以上
  ◆変数の操作:[0024:敵HP]減算,1<敵のHPを減らす
  ◆変数の操作:[V[0023]]代入,変数[0024]の値<減らした敵のHPを設定
  ◆イベントの呼び出し:V[4][V[22]]<敵キャラの1ページ目を呼び出す
  ◆指定ラベルへ飛ぶ:1番<設定場所を移動
  ◆
 :分岐終了

 ◆
:分岐終了
◆変数の操作:[0002:X座標]加算,変数[0005]の値
◆変数の操作:[0003:Y座標]加算,変数[0006]の値
◆指定位置のイベントID取得:(V[0002],V[0003]),[0004:イベントID]
◆条件分岐:変数[0004:イベントID]がV[0021]以上
 ◆注釈:------------------------------
 :  :攻撃処理
 :  : 

 ◆効果音の演奏:斬る1<削除
 ◆変数の操作:[0023:敵HP変数番号]代入,変数[0004]の値
 ◆変数の操作:[0023:敵HP変数番号]加算,100
 ◆変数の操作:[0024:敵HP]代入,変数[V[0023]]の値
 ◆条件分岐:変数[0024:敵HP]が1以上
  ◆変数の操作:[0024:敵HP]減算,1
  ◆変数の操作:[V[0023]]代入,変数[0024]の値
  ◆イベントの呼び出し:V[4][V[22]]
  ◆
 :分岐終了

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


▲トップへ戻る▲


  
■ダメージ量について

攻撃を与えた時のダメージ量は、いくつかの設定方法があります。



■攻撃1回=HP1減らす

現在設定されているダメージの減らし方です。

主人公も敵キャラも1回ダメージを受けるごとに「減算1」になります。

敵HPが「10」の場合は、10回の攻撃で倒せる事になります。



■攻撃力=ダメージ量

主人公の攻撃力をそのまま敵キャラへのダメージ量にする事ができます。

攻撃力を使う場合は…
◆変数の操作:[0024:敵HP]減算,1
の設定を…
◆変数の操作:[0024:敵HP]減算,主人公の攻撃力
に変えてください。

装備品を替える事で攻撃力を変えると言った設定が可能になります。



■ダメージの計算処理

YADOT通常攻撃のダメージの計算処理」の設定を使ってダメージ処理を作る事ができます。
【ダメージ計算&命中率の設定のページへ行く】

ダメージの計算では、イベントコマンド:ダメージ処理を使う方法もありますが、
攻撃力が変えられないなどの問題があり、使い勝手はあまり良くありません。


▲トップへ戻る▲


  
■命中率について

現在の設定では、100%の確率で攻撃が当たります。

なお、次のマスに移動を開始している場合は、
まだ前のマスに体が残っていても、攻撃の当たり判定は次のマスへ移動します。



■乱数を使う

コモンイベント「主人公の攻撃処理」では、
1マスずつ敵がいるかどうかを調べて攻撃を行っていますので、
例えば2マス目では命中率が3分の2になるような設定を行う事もできます。

▼設定例
◆変数の操作:[0016:乱数]代入,乱数[0〜2]
◆条件分岐:変数[0016:乱数]が1以下<命中した時
 ◆変数の操作:[0023:敵HP変数番号]代入,変数[0004]の値
 ◆変数の操作:[0023:敵HP変数番号]加算,100
 ◆変数の操作:[0024:敵HP]代入,変数[V[0023]]の値
 ◆条件分岐:変数[0024:敵HP]が1以上
  ◆変数の操作:[0024:敵HP]減算,1
  ◆変数の操作:[V[0023]]代入,変数[0024]の値
  ◆イベントの呼び出し:V[4][V[22]]
  ◆
 :分岐終了

 ◆
:分岐終了



■命中率の計算を使う

YADOT通常攻撃の命中率の計算処理」の設定を使ってダメージ処理を作る事ができます。
【ダメージ計算&命中率の設定のページへ行く】


▲トップへ戻る▲


  
■敵HPについて

別のマップへ移動すると敵HPは初期化(全回復)になります。
そして倒した敵キャラは復活します。

もしも別のマップへ移動しても、敵HPが初期化されないようにしたい時には、
マップごとに敵HPを管理の処理を設定してください。


▲トップへ戻る▲



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


▲トップへ戻る▲

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