WOLF RPGエディター(ウディタ)[3.337]/基本システム【サイトトップへ戻る】 ■戦闘処理の当たり判定(命中率・回避率)について (更新:2024/05/18) ウディタに初めから用意されている戦闘システムの当たり判定(命中率・回避率)について解説します。
画像の当たり判定については、別ページで紹介しています。 ■当たり判定(命中率・回避率)の基本 戦闘中の当たり判定の処理には「技能を使用する者の命中率」と「技能を受ける者の回避率」を使います。 基本的に「命中率−回避率=攻撃が当たる率」となっているため、 例えば「命中率=80」「回避率=20」の場合は「80−20=60」となり、60%の確率で攻撃が当たります。 命中率よりも回避率の方が高い場合は、全ての攻撃が攻撃ミスになります。 キャラクターごとの命中率や回避率は、 主人公の場合は可変DB[0:主人公ステータス]の項目[15][16]で設定し、 敵キャラの場合はユーザーDB[9:敵キャラ個体データ]の項目[9][10]で設定します。 命中率や回避率は状態異常で変動する事があり、また主人公の場合は武器や防具を装備する事で変動する事があります。 そのため、戦闘時の処理では、キャラクターごとの基本命中率や基本回避率に、 状態異常や装備品による変動値を加えたものを可変DB[10:×┏ 戦闘一時ステータス[基]]の項目[53][54]へ保存し、 この項目[53][54]に保存した値を使って当たり判定を処理します。 命中率や回避率には上限が無いため、キャラクターごとに設定した基本命中率や基本回避率(レベルアップ時の増加量)、 状態異常の増加率、装備品の増加量などによって、100を超えた値になる事があります。 そのため「回避率=100」であっても、命中率が100を超えている場合は、攻撃が当たります。 基本的には「命中率−回避率=攻撃が当たる率」になっていますが、 ユーザーDB[0:技能]の設定によっては「回避率を無視する(使わない)」となる場合があります。 以下は当たり判定の処理に関係があるユーザーDB[0:技能]の設定の一覧です。
当たり判定で「攻撃が当たらなかった」と判断された場合は、技能を使う対象者の上に「ミス!」が表示されます。 この「ミス!」の表示はコモンイベント[181:X[戦]ダメージ・回復ポップアップ]を呼び出して表示しているので、 もしも「ミス!」の表示を「MISS」などに変えたい場合は、 コモンイベント[181:X[戦]ダメージ・回復ポップアップ]の177行目の設定を変えてください。 なお、当たり判定で「攻撃が当たった」と判断されても、攻撃相手の防御力が高かったり、 攻撃相手の属性耐性が「0%[無効化]」だった場合は、ダメージ量が「0」になる事があります。 マップ移動中にメニュー画面から技能を使用した場合は、無条件に100%の命中率になります。 ▲トップへ戻る▲ ■当たり判定のイベント処理を解説 戦闘中の当たり判定のイベント処理は、コモンイベント[165:X[戦]┗単体処理]の312〜329行目にあります。 なお、312〜329行目はウディタ[3.282]の時の行数であるため、バージョンが異なるウディタでは行数がずれる可能性があります。
技能の使用者の命中率をセルフ変数[40]に保存します。 ユーザーDB[0:技能]の項目[7:成功率[%] [-1:命中依存]]が「0以上」の場合は、 項目[7:成功率[%] [-1:命中依存]]の値をそのまま命中率としてセルフ変数[40]に保存します。 ユーザーDB[0:技能]の項目[7:成功率[%] [-1:命中依存]]が「-1以下」の場合は、 可変DB[10:×┏ 戦闘一時ステータス[基]]の項目[53:[一時]計算済み命中率]に、 ユーザーDB[0:技能]の項目[31:武器依存時命中補正±%]を足したものをセルフ変数[40]に保存します。
ユーザーDB[0:技能]の項目[33:相手の回避率を]が「[1]考慮する」の場合は、 命中率を保存したセルフ変数[40]に、技能を受ける者の回避率を減算します。
セルフ変数[40]に乱数[0〜99]を減算して、「0以下=攻撃ミス」「1以上=攻撃が当たった」と判断します。 例えば「セルフ変数[40]=80」(命中率80%)の場合は、セルフ変数[40]を乱数[0〜99]で減算すると「-19〜80」となり、 「-19〜0=攻撃ミス(確率20%)」「1〜80=攻撃が当たった(確率80%)」と処理されます。 ▲トップへ戻る▲ ■回復系の技能の設定について 回復系の技能を実行した時に、ユーザーDB[0:技能]の設定内容によっては、 回復処理をミスしたり、回復量が「0」になったりする事があります。 もしも回復系の技能が上手く処理できない場合は、ユーザーDB[0:技能]にある以下の項目を見直してください。
▲トップへ戻る▲ ■敏捷性について パラメータの設定項目に「敏捷性」と言ったものがあります。 この敏捷性は戦闘時のターン処理にて、行動を開始する順を決める時に使います。 敏捷性が高いほど、毎ターンごとの行動順が早くなりますが、 敏捷性がいくら高くても、当たり判定(攻撃を避ける能力)には影響しません。 ▲トップへ戻る▲ ◎関連ページ ◆【戦闘時】当たり判定を[命中率−回避率]から[命中率×(100−回避率)]に変える ◆コモンイベント[165:X[戦]┗単体処理] ◆コモンイベント[181:X[戦]ダメージ・回復ポップアップ] ◆「基本システム」って何? ┣◆コモンイベントの一覧と補足説明 ┣◆メニュー画面の処理構造 ┗◆戦闘処理の処理構造 ◆画像の当たり判定について |