誰でも簡単FE改変法  2024/03/11 三竦みの実装方法を追記 2024/03/10 クリティカル発生率の計算式にミスを発見。以前のままだとエラーを吐くので注意! 2024/03/09 技の実装法について追記、全体的に誤字脱字、よりわかりやすい表現に変更。追撃判定変更方法を追記。 2024/03/08 初版 ※これはRPGツクールMZにSRPGギアを導入した状態からあらゆる戦闘バランスをFE準拠に変更するための手順一覧です。 ※未完成状態のため今後加筆修正の可能性があります。 第一章 ステータスのFE準拠化 第二章 成長率と成長限界、追加補正の実装 第三章 ダメージ計算式と回避、命中、会心の計算 第四章 奥義(確率発動スキル)の実装方法 第五章 魔道書(武器) 第六章 補正値込みのステータス画面の表示方法 第七章 三すくみの実装 第八章 追撃判定の変更 おまけ 神器や奥義の演出追加  おまけ2 よりらしくするコツ 第一章 ステータスのFE準拠化 ツクールの初期設定ではアクターのステータスは「最大HP, 最大MP, 攻撃力,防御力,魔法力,魔法防御,俊敏性,運」が実装されています。 このとき原作にしかないステータスは「技,体格, 武器レベル」です。これらをステータスは現状簡単に追加実装できる状態ですが更に確率でレベル成長させるという方法が中々上手くいっていませんでした。 正直なくてもそんなに問題ないと個人的に思っている体格と武器レベルについてはひとまず省略させていただきます。 ただし「技」はFEの戦闘において非常に重要なパラメータのためこれだけはなんとしてでも実装させたかった。なのでここで解説します。 方法1:最大MPを技表記にしてしまう 恐らく最も簡単かつ現実的な手段。  FEにはMPの概念がないので最大MPのコード(mmp)をそのまま拝借してしまえという考えです。 この場合「魔法や戦技」のコストはどうするかという問題が出てきますが ・Echoesのように「MPではなくHPをコストに使う」 ・聖戦や覚醒の奥義のように「技%の確率発動」にしてしまう ・「技=最大MPであることはそのままにして魔法や戦技のコストは普通に技(mp)消費として扱う」 (因みにこの方法で技を最大MP(mmp)ではなく現MP(mp)参照にさせると戦技や魔法を使えば使うだけ命中率とクリ率が下がっていくというシステムにできます。 FEとは離れますがSRPGの1要素としては中々面白いと思うのでわりとアリな気がする) これらの方法が考えられます。どれを実装するかは自由ですし他にも方法はいくらでもあります。 方法2:追加パラメータとして「技」を実装 「」によると下記のファイアーエムブレム風レベルアッププラグインに9個目の成長項目を追加して参照コードを追加パラメータ技と繋げられればできるらしい。 こちらで試したものの上手くいかず。恐らく一部異なるプラグインを使用していることが原因。 こちらの方がスマートな方法でコードを改変することが可能です。 雑感:付け焼き刃の知識であれやろうこれやろうは無茶があった。代替手段とは言え技そのものの実装はできたのであとは勉強して知識を身に着けてからリベンジしたい。 せっかく改変したプラグインごと公開してくれたのにごめんね…ヒントはいただいてる状態なのでいつかできるはず。 第二章 成長率と成長限界、追加補正の実装 ◇成長率 ファイアーエムブレム風レベルアップ(えーしゅん様作) - FeLevelUpMZ.js https://plugin-mz.fungamemake.com/archives/4433 こちらを実装することで可能です。初期値も設定できるので非常に楽。最大MP=技にするとこれを改変なしでそのまま流用できるため技=最大MP案を推奨する最大のポイントでもあります。 プラグイン内の説明通りメモ欄に書くだけなので非常簡単です。 ◇成長率限界 NUUN アクターステータスの最大値設定 - NUUN_StatusParamEX.js https://plugin-mz.fungamemake.com/archives/4312 こちらを実装することでアクターや職業にステータス上限値を設定できます。 インフレを防げますしバランス調整もしやすいのが利点。 ただしこの限界値は装備による補正との合算値となるので「攻撃力限界値を30」と設定した場合攻撃力50の武器を装備しようと強制的に30で頭打ちとなります。 そのため実装したい場合は次に記述する追加補正の実装を推奨します ◇追加補正の実装 オリジナルのパラメータを追加するプラグインv1.3 FTKR_AddOriginalParameters.js https://plugin.fungamemake.com/archives/1301#google_vignette こちらを導入することでオリジナルパラメータを最大10個増やせます。武器の攻撃力や神器による補正、エンゲージのような感じのステータス強化はこちらを参照させれば成長限界と共存可能です。 MV用のプラグインですが問題なく動作します。 使用例 新規パラメータとして武器の攻撃力(wpn)を追加。 武器のメモ欄に と記載すれば攻撃力+10という形にできますね。あとはこれをダメージ計算式にも反映させれば完了です。 以後の解説では 追加物理攻撃力 wpn 追加魔法攻撃力 mwpn 追加防御    amr 追加魔法防御  men 追加幸運    hap 追加俊敏性   spd 追加技     tec として解説していきます (技についてはmmpを使用、別個で技を設けたい場合はここに追加する形でよいと思います) 第三章 ダメージ計算式と回避、命中、会心率の計算 ・ダメージ計算式 FEのダメージ計算式は攻撃力−防御という非常に単純な計算式なのでa.atk - b.defで再現できます。 上述の補正も込みにしたい場合は以下の通りです。 例 追加パラメータとして 武器攻撃力 wpn 防具による補正 amr を定義した上で通常攻撃やダメージ計算式の部分を a.atk + a.wpn - b.def - b.amr と記述すれば良いです。このとき「分散率」は0%に設定すれば一切ばらつきのないダメージになります。 魔法攻撃についても同じく追加パラメータとして魔法武器威力(例:mwpn)と装備による魔防補正値(例:men)を設定して同様のことをすれば良いです。 記述例 a.mat + a.mwpn - b.mdf - b.men   ・回避と命中 回避については原作が速さ×2+幸運×0.5(エンゲージ), あるいは速さ×2+幸運(gbaシリーズ)としている場合が多いです なので速さや幸運を参照させるために 命中回避拡張 - HitAndEvasionExtend.js https://plugin-mz.fungamemake.com/archives/3603 の導入をオススメします ここで知っておきたいのがツクールの命中回避判定の仕様で 攻撃側の命中判定→受ける側の回避判定→ダメージ計算 という処理を行っています。 なので命中120%のスキルで回避100の相手を攻撃する場合、feなら120-100=20で命中率20%となりますが、ツクールの場合「攻撃側の命中判定成功」→「受ける側の回避判定成功」→結果攻撃失敗という処理になります。 なので今回は「命中判定に全ての計算式をぶち込み回避判定はなくす処理をする」という方法で解決させました 補正値用の技、速さ、幸運をtec, spd, hap等と定義した場合、 攻撃側の命中率 a.luk*0.01 + a.hap*0.01 + a.mmp*0.02 + a.tec*0.02 +a.hit 受ける側の回避率 b.agi * 0.02 + b.eva +b.spd * 0.02 + b.luk*0.01 という式になります。これを物理命中計算式の中に全てぶち込んで a.luk*0.01 + a.hap*0.01 + a.mmp*0.02 +a.hit - b.agi*0.02 - b.eva - b.spd*0.02 - b.luk*0.01 としたうえで物理回避計算式は0とすることでFEと同様の命中処理が実現します。 また命中,回避,必殺,必殺回避,はアクターには設定せず武器側に個別設定するといいと思います。(鉄の剣の命中率補正を+80%、鋼の剣は+70%みたいに) 魔法の計算式も同様にしたい場合はただ同じ式を記述すれば良いです。 ※ただし例えばスリープやバサークのようなバステ系の杖の命中率を原作のように魔防と幸運参照にさせたい場合は 「スキルの魔法攻撃を全て物理判定としてバステ系の魔法だけ魔法判定とする」ことでバステだけ別計算にできます こうするとティルフィングを持ってれば異常杖なんざ怖くねぇぜ!という原作再現ができたりするわけです。 逆に魔法の計算式に一切回避補正や技による命中補正を入れないことでEchoesみたいに避けられねえのに肝心なときには当たらない仕様にもできます。 ・クリティカルとクリティカル回避 クリティカルの発生率とダメージ倍率を変更するプラグイン - YKP_CriticalCalculation.js https://plugin-mz.fungamemake.com/archives/4617 まずこちらを導入しステータスのクリティカル率を変更できるようにします 会心計算式は原作だと技×0.5となっていることが多いので 追加技(例:tec)を設定した上で 追加補正値を a.mmp*0.5 + a. tec*0.5 と記述すればいけるはずです。 また会心回避は基本的に幸運が参照されるので 上記の式に追加する形で a.mmp*0.5 + a.tec*0.5 - b.luk - b.hap と記述すれば必殺回避率も反映されるようになるはずです 第四章 奥義(確率発動スキル)の実装方法 太陽剣や月光のような奥義系スキルを通常攻撃時に確率で発生させたい場合、以下のプラグインを使ってみてください。 Torigoya_SkillChangeTo https://torigoya-plugin.rutan.dev/battle/skillChangeTo/ 使用例 例えば月光を習得しているキャラの通常攻撃を「確率で月光が発生する通常攻撃」など個別に用意してやります。 記述例(技をmmpと規定している場合) 「確率で太陽が発生する通常攻撃」のメモ欄に と記載すれば技%の確率で通常攻撃がスキル12に変化します そしてスキル12を月光仕様にする a.atk + a.wpn みたいに相手の防御を一切考慮してみたり判定を「必中」にすると月光剣になりますね *処理の問題か割とバグる「戦闘開始時にコモンイベント発生」があまりよくないのかもしれない。 第五章 魔道書(武器)の設定 ※武器耐久値を追加したいばあいは適宜プラグインの追加を推奨します。私は武器の使用回数に面白みをあんまり感じないタイプなのでこうしました。 魔法をスキルにする形式もいいですがもし魔導書を装備して対応する魔法で攻撃するという風にしたい場合は、武器装備時の通常スキルが変更になるsrpgギアに搭載されてる機能を利用します。 例えば威力5、命中80、射程1~2、炎属性の「ファイアーの魔導書」を作製したい場合はまず武器欄でファイアーの魔導書の項目を作り、 追加能力値から命中+80%を追加して能力補正値は全て0とする そしてメモ欄に と記述します。これで命中+80%、魔力補正+5でスキル10を実行する武器ができました。 あとはスキル10番に 命中タイプ物理 攻撃属性 炎 アニメーションに炎攻撃を指定 HP攻撃を指定してダメージ計算式を a.mat + a.mwpn - b.mdf - b.men そしてメモ欄に と記述してやればファイアーの魔導書装備時に威力5、命中80、射程1~2、炎属性のファイアーを実行する仕様にできます。 第六章 補正値込みのステータス画面の表示方法 これが単純ながら結構大変。あと私の場合この辺りでセーブデータの持越しができなくなったので追加するなら優先して行うことをお勧めします。 要はオリジナルパラメータを参照可能な仕様のステータス画面改変プラグインであればよいので下記はあくまで一例として捉えてください。 まずベースプラグインの NUUN Base - NUUN_Base.js https://plugin-mz.fungamemake.com/archives/1856 (基本ベースプラグインは上の方に置きます) 次に NUUN ステータス画面詳細表示 - NUUN_StatusScreen.js https://plugin-mz.fungamemake.com/archives/1871 を入れてステータス画面をカスタマイズできるようにします。 そしてオリジナルパラメータを追加として参照式を打ち込めばオーケーです。 例えば物理攻撃力を追加したいならプラグインを開いて「表示ページ項目1」を開くするとステータス画面1ページ目に表示される項目一覧が出てくるので 新規追加をし表示パラメータを50(オリジナルパラメータ)を指定 名称を「物理攻撃力」とし評価式を 'actor.wpn + actor.atk' と記述すればステータス画面に力と武器の合算値が参照された物理攻撃力という欄ができます。座標は他の項目をずらしつつ調整してみてください 回避や命中はあくまで装備込みのアクターの素の数値しか表示されていないので正しく表示したい場合は評価式をに速さや幸運こみの計算式を記述してください。 記述例:命中(幸運 + 技×2 + 武器攻撃力の場合) 'actor.luk + actor.hap + actor.mmp*2 +actor.tec*2 + actor.hit*100' あとは必殺と命中、必殺回避あたりもあるとFEらしさが増しますね体格や武器レベルも実装させたい場合はここに表示させるといいと思います 工夫すれば見栄えが物凄くよくなるので色々試してみてください 第七章 三すくみ 「」のお力添えとGPT4の力によって実現しました。 原理としては 1.自身と相手のステートを比較し、特定の組み合わせの時に三竦み状態が発生するようなプラグインを作製 2.武器装備時にステートを付与するプラグインを導入 3.戦闘開始時に敵にステートを付与するプラグインを導入 以上の流れで再現できました 1.自身と相手のステートを比較し、特定の組み合わせの時に三竦み状態が発生するようなプラグインを作製 FEの三竦みは有利時命中+10、与ダメ+1、 不利時に命中-10、与ダメ-1等がメジャーです。 今回はステートID50 = 斧, 51 = 槍, 52 = 剣として ・命中計算式に三竦み有利時+10%、不利時-10%を追加するプラグイン 更に ・三竦み有利時にatk+1、不利時atk-1を追加するプラグイン をGPT4に書いてもらうことで「攻撃予測画面にも反映される形での三竦みの実装」が可能となりました。 命中計算式のプラグインに関しては命中回避拡張 - HitAndEvasionExtend.jsより上に配置することをお勧めします。 2.武器にステート装備時にステートを付与するプラグインを導入 plugindesc ステート付与装備 v1.1.0(うなぎおおとろ様) url https://raw.githubusercontent.com/unagiootoro/RPGMZ/master/EquipState.js こちらを使用し武器のメモ欄に 斧なら 槍なら と記載すれば該当装備時にステートをが付与されるようになります。 この方法だとステータスアイコンをそのままステータス画面や戦闘画面に表示できるため視認性もかなりよくなるはずです。 ※初期装備にはステートが反映されませんが全回復処理を行うことで反映されます。 ※敵が装備した場合は反映されないため敵側は別個以下の用意する必要があります 3.戦闘開始時に敵にステートを付与する ▼初期ステート(トリアコンタン様作) - InitialState.js https://plugin-mz.fungamemake.com/archives/4240 敵キャラに初期状態でステートを付与します。 こちらを利用し敵キャラのメモ欄に <初期ステート:50> と記載すれば斧ステータスが付与された敵をつくれます。 暗器や弓にも三竦みを適用させたい場合は適宜プラグインを改変してください。 第八章 追撃判定の変更 追撃判定はSRPG.core内にある二回行動判定のコードによって決定されています。 デフォルトの状態では 攻撃側俊敏性 - 迎撃側の俊敏性 を計算し 0以上なら攻撃側が追撃、0未満なら相手が追撃という仕様になっています。 つまり同速の場合攻撃側だけ追撃という処理になっているわけですね。 FEの追撃基準はいくつかパターンがあり「速さが1でも高ければ追撃」、「速さの差が2以上なら追撃」(GBA)、「速さの差が5以上なら追撃」(FEH)等があります。 今回は速さの差が2以上なら追撃」に仕様変更を試みました。 これを SRPG.coreの8570行目あたりの記述を // 行動順序の作成 var _SRPG_AAP_BattleManager_makeActionOrders = BattleManager.makeActionOrders; BattleManager.makeActionOrders = function() { _SRPG_AAP_BattleManager_makeActionOrders.call(this); if ($gameSystem.isSRPGMode() === false) return; // 敏捷, 速度補正をもとに行動順を作成する // 敏捷差で2回攻撃する場合、敏捷差から行動確率を計算し、行動を保存する var user = $gameSystem.EventToUnit($gameTemp.activeEvent().eventId())[1]; var target = $gameSystem.EventToUnit($gameTemp.targetEvent().eventId())[1]; if (_srpgUseAgiAttackPlus === 'true') { if (user.agi >= target.agi) { var firstBattler = user; var secondBattler = target; } else { var firstBattler = target; var secondBattler = user; } if (!firstBattler.currentAction() || !firstBattler.currentAction().item()) { return; } if (firstBattler.currentAction().isForOpponent() && firstBattler.currentAction().item().meta.doubleAction !== 'false') { var dif = firstBattler.agi - secondBattler.agi; // difMax = secondBattler.agi * _srpgAgilityAffectsRatio - secondBattler. // (difMax === 0) { // this._agilityRate = 100; //} else { // this._agilityRate = dif / difMax * 100; //} this._agilityRate = dif >= 2 ? 100 : 0 ; firstBattler.reserveSameAction(); this._actionBattlers.push(firstBattler); } } }; これで戦闘中の追撃判定を速さの差が2以上に変更できました。 this._agilityRate = dif >= 2 ? 100 : 0 ;の2を好きな数字に変えることで追撃判定を自由に変更可能なはず。 ただ戦闘予測画面の表記は別個で計算して行っているのでこのままだと戦闘予測画面の追撃予想は以前のままです。なのでこちらも弄ります。 (疲れたので後日更新予定) おまけ 神器や奥義の演出追加  神器を持ってるとフォン…と例の演出が出たり流星が発動するときにキラキラするあれを入れたいときは 例 まず発動前コモンプラグイン https://plugin-mz.fungamemake.com/archives/1442 を導入し 次に流星剣の演出をコモンイベントで作成して スキル「流星剣」のメモ欄に記載でおっけー。 これがあればカットインとかもいれられます。 例えばアクターごとに攻撃スキルを別々に割り振ればFEHみたいに一枚絵がスライドしたあと攻撃モーションみたいにもできるはずです。 神器の場合はその武器を装備したときだけ通常攻撃が神器演出つきになるよう通常攻撃と全く同じ計算式のものに発動前コモンイベントを入れた「神器攻撃」という個別スキルを作ってました。 おまけ2 よりらしくするコツ ・戦闘画面の改変 「」が提供してくださいました 戦闘開始前に予測ダメージと命中をそれぞれ変数に格納するプラグインと戦闘開始時にコモンイベントが発生するプラグイン、動的文字列ピクチャ生成プラグインを組み合わせることで戦闘中の画面に命中とダメージを表記できます クリ率はまだ試行錯誤してる途中ですが上手く行き次第こちらも解説します あとはSRPG.coreを書き換えて戦闘中に装備武器や武器アイコンが表示されるように改変するのもアリだと思いますね 三すくみ実装できたらより視覚的に判りやすくなるはず おまけ3 もっとらしくするコツ パラメータの表記を力、速さ、魔力、魔防、幸運みたいにすればよりそれっぽさがでるぞ!