RPGツクール2000/自作戦闘
アクションRPGの戦闘システムを作る
■敵の設定
(更新:2010/11/27)


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



このページは続きとなっているページです
このページは、アクション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 障害物があるかどうかを調べる時に使います。 主人公の攻撃処理
0013 無敵時間 向き変更や攻撃を受けた時に無敵時間を設定。1以上=無敵。 敵の設定
0014 主人公の向き 現在の主人公の向きを代入します。 敵の設定
0015 主人公の前の向き 変数14番の値と比較して向き変更を監視します。 敵の設定
0016 乱数 命中率の説明で使用。 敵の設定
 
0021 敵イベントID開始番 一番小さい敵イベントIDを設定します。 敵の設定
0022 1ページ目 敵キャラの1ページ目を呼び出す時に使います。 敵の設定
0023 敵HP変数番号 敵HPの変数番号を設定します。 敵の設定
0024 敵HP 敵HPを呼び出す時に使います。 敵の設定
0025 倒した敵移動X 倒した敵を壁のあるマスへ移動する時に使います。 敵の設定
0026 倒した敵移動Y 倒した敵を壁のあるマスへ移動する時に使います。 敵の設定
 
0102 敵HP02 イベントID2番の敵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トップ  このサイトは何?  気紛れな空間へ戻る  メール