スキルの効果を拡張する【RPGツクールMZ&MVプラグイン】

2025年08月13日

 スキルの効果を拡張します。


 例えば、以下のようなスキルが作成できます。

  • 会心率の高いスキル
  • 成功率が100を超えるスキル
  • ランダムでステートを付加するスキル
  • 条件によって属性や範囲が変化するスキル
  • 全てのMPを消費するスキル

 ※TorigoyaMZ_AddStateSkill.jsとタグ名(<AddState>)が被っていて併用できないらしいので、ご注意ください。その代わりとして、似たような機能を提供しています。
 また、スキル連結プラグインでも色々とできるのでオススメです。


目次


導入方法(Install)

更新履歴(History)

使用方法(Usage)

会心率を加算

成功率を変更

ステート付加率を変更

追加ステートを付与

自身にステートを付与

属性を変更

範囲を変更

ダメージタイプを変更

連続回数を変更

ランダム回数を変更

TP回復

自身にダメージ

消費MPを変更

消費TPを変更

防御ステートを無視

数式用の変数


導入方法(install)


 以下のリンクを右クリックで保存し 、[プロジェクト]\js\plugins に放り込みます。ツクールのプラグイン管理から機能をONにしてください。
 ※このプラグインはMV、MZの両方で有効です。

 NRP_SkillEX.js ver1.076(2025/08/13)

更新履歴(History)


2024/10/09 -> 2025/08/13(ver1.07 -> 1.076)


2024/09/08(ver1.06)


2024/06/24 -> 2024/07/22(ver1.05 -> 1.051)

  • 消費MP消費TPを変更する機能を追加した。
  • TP回復量に小数が含まれる場合、正しく表示されないため、四捨五入するようにした。(2024/07/22 ver1.051)

2024/05/21(ver1.04)

  • ステート付加率が100倍で計算されていた不具合を修正。
    <StateRate:100>は命中率100%となるのが正しいです。
    ※影響が大きいので注意してください!

2023/10/02 -> 2023/12/28(ver1.03 -> 1.031)


2023/09/19(ver1.02)


2023/09/01(ver1.01)

  • 公開!

使用方法(Usage)


 スキル、アイテムのメモ欄に以下を記載してください。
 以下はいずれも数式が使用できます。

会心率を加算

<AddCriticalRate:50>

 会心率を50%加算します。

成功率を変更

<SuccessRate:150>

 スキルの成功率を150%にします。
 (元の値は無視されます。)

 例えば、以下のようにすればレベルが上がるに従い命中率が上がります。
<SuccessRate:100 + a.level>


ステート付加率を変更

<StateRate:150>

 使用効果のステート付加率を150%にします。
 (元の値は無視されます。)

追加ステートを付与

<AddState:4>
<AddStateRate:50>

 4番のステートを50%の確率で付加します。
 ※<AddStateRate>を省略すると100%になります。

 例えば、以下は4,5,6のステートをランダムで付加します。
<AddState:4 + Math.randomInt(3)>

 例えば、以下は4,7,10のステートをランダムで付加します。
<AddState:[4,7,10][Math.randomInt(3)]>

 ※Math.randomInt(3)は3未満の整数をランダムで選択します。この場合は0〜2となり、3は含みません。

自身にステートを付与

<AddSelfState:4>

 スキルの使用者に4番のステートを付加します。

属性を変更

<ChangeElement:2>

 属性を2:炎に変更します。

範囲を変更

<ChangeScope:1>

 範囲を指定した値へ変更します。
 0:なし, 1:敵単体, 2:敵全体, 3:敵1体ランダム, 4:敵2体ランダム,
 5:敵3体ランダム, 6:敵4体ランダム, 7:味方単体, 8:味方全体,
 9:味方単体(戦闘不能), 10:味方全体(戦闘不能), 11:使用者,
 12:味方単体(無条件), 13:味方全体(無条件), 14:敵味方全体

 例:スキル100を覚えている場合は敵全体。それ以外は敵単体
<ChangeScope:a.isLearnedSkill(100) ? 2 : 1>


ダメージタイプを変更

<ChangeDamageType:3>

 ダメージタイプを指定した値へ変更します。
 1:HPダメージ, 2:MPダメージ, 3:HP回復, 4:MP回復, 5:HP吸収, 6:MP回復

 例:味方全体のHPを回復するが、自分はダメージを受ける。
<ChangeDamageType:a == b ? 1 : 3>


連続回数を変更

<ChangeNumRepeats:2>

 連続回数を指定した値へ変更します。

ランダム回数を変更

<ChangeNumRepeats:5>

 範囲がランダムの場合の対象数を指定した値へ変更します。
 通常は不可能な5回以上も有効です。

 例:2〜4回、ランダムに実行する。
<ChangeNumRandom:2 + Math.randomInt(3)>

 ※Math.randomInt(3)は3未満の整数をランダムで選択します。

TP回復

<RecoverTp:100>

 TPを100回復します。
 マイナスならダメージになります。

 例:使用者の魔力分だけTPを回復。
<RecoverTp:a.mat>


自身にダメージ

<SelfDamage:a.mhp / 10>

 自身に最大HPの1/10のダメージを与えます。

消費MPを変更

<ChangeMpCost:100>

 消費MPを指定した値へ変更します。
 例:全MPを消費
<ChangeMpCost:a.mp>

 なお、MP消費率は無視されるようになります。
 もし、含みたい場合は以下のように数式にMP消費率(mcr)を組み込んでください。
<ChangeMpCost:a.mpa.mcr>

 ダメージ計算式に消費前のMPを使用したい場合は以下で参照できます。
a.startMp()


消費TPを変更

<ChangeTpCost:100>

 消費TPを指定した値へ変更します。

 ダメージ計算式に消費前のTPを使用したい場合は以下で参照できます。
a.startTp()


防御ステートを無視

<IgnoreGuard>

 防御ステートを無視して、半減されずにダメージを与えます。

数式用の変数


 当プラグインの数式では以下の変数を使用できます。

targetNo(対象番号)

 例えば、範囲が『敵4体 ランダム』だった場合、0,1,2,3の数値で区別できます。
 以下は4撃目のみ炎属性、それ以外は物理属性となります。
<ChangeElement:targetNo == 3 ? 2 : 1>


 >RPGツクールMZ&MV目次に戻る
posted by 砂川赳 at 19:27 | RPGツクールMZ&MV | このブログの読者になる | 更新情報をチェックする

スキルの結果計算を演出より先に実行【RPGツクールMZプラグイン】

2025年08月12日

 スキルの結果計算を演出より先に実行します。

 ツクールの従来の仕様では、アニメーションの表示→ダメージ計算という順序で処理をしていました。
 そのため、ダメージ計算(命中)の内容を演出に反映するような凝った処理は不可能でした。当プラグインはこの仕様を変更して、複雑なスキルの演出を実現可能とします。
 ※処理の流れを変えてしまうという性質上、当プラグインは競合もしやすいのでご注意ください。
 特に反撃、身代わりなどの動作を挿入するプラグインと相性が悪いです。NRP系プラグインについては動作確認済みですが、外部のプラグインについては保証できません。開発終盤などで十分なテスト時間を取れないなら採用を見送ったほうが無難だと思われます。


 具体的には以下のような処理が可能になります。

DynamicAnimation&Motionの成功分岐


 DynamicAnimation&Motionにて、スキルが成功した時と失敗した時によって演出を分岐させます。
 上記は攻撃が外れた場合にコケるようにした演出です。

対象がランダムな複数回攻撃の無駄打ちを停止


 範囲がランダムのスキルで対象を撃破できた場合は、対象を生存者へと修正します。これにより、敵を全滅させるまではランダム攻撃の無駄打ちをしないようになります。
 必要な場合は該当のパラメータをオンにしてください。
 

目次


導入方法(Install)

更新履歴(History)

使用方法(DynamicAnimation & Motion)

成功判定(Judgment of Success)

計算結果の取得(Obtaining Calculation Results)

撃破判定(Judgment of Dead)

スキル演出のサンプル(Dynamic Sample)

プラグインパラメータ(Plugin Parameters)

ランダム対象を修正(CorrectRandomTarget)

ステート無効は失敗(StateResistToFailure)


導入方法(install)


 以下2つのファイルをダウンロードし 、[プロジェクト]\js\plugins に放り込みます。ツクールのプラグイン管理から機能をONにしてください。
 ※このプラグインはMZ専用です。

 NRP_CalcResultFirst.js ver1.05(2025/08/12)
 NRP_CalcResultFirstAfter.js ver1.00(2025/03/27)

 ※NRP_CalcResultFirst.jsはプラグイン一覧の上側に配置してください。
 ※NRP_CalcResultFirstAfter.jsはプラグイン一覧の下側に配置してください。


 以下のプラグインを併用する場合は最新化をお願いします。バージョンが古いと正常に動作しない箇所があります。


更新履歴(History)


2025/08/12(ver1.05)

  • プラグインの組み合わせによってHP再生(毒)が表示されないことがある競合へ対処した。

2025/03/27(ver1.04)

  • NRP_ChargeSkill.jsによる溜め攻撃の事前計算ができていない競合に対処。
  • 処理を大幅に見直し、プラグインを二つに分割した。これにより、身代わりなどの対象を操作するプラグインとの競合を大幅に抑えられます。
    ※また、それに伴いNRP_SkillEX.jsを更新しています。

2025/03/20(ver1.03)

  • 他プラグイン(NRP_CountTimeBattle.jsなど)によるステート系処理が重複してしまう競合対策のために調整した。

2025/03/19(ver1.02)

  • NRP_Substitute.jsなど他プラグインとの併用でエラーになる問題に対応するため、処理を大幅に見直した。

2025/03/16(ver1.01)

  • 撃破処理用の関数(b.isDeadReserved())を実装した。
  • 不要な変数(removedDebuffs)を参照していたため削除した。

2025/03/15(ver1.00)

  • 公開!

使用方法(DynamicAnimation & Motion)


成功判定(Judgment of Success)

 NRP_DynamicAnimationMZ.jsおよびNRP_DynamicMotionMZ.jsから、以下のスクリプトを呼び出すことで成功判定を使用できます。
BattleManager.isReservedSuccess(targetNo)


例:成功時のみアニメーションを実行

<D-Animation>
condition = BattleManager.isReservedSuccess(targetNo)
</D-Animation>

 ※1ヒットの単体スキルならtargetNoは省略可
 ちなみに『targetNo』は現在のアニメーションが何番目の攻撃かを指しています。
 数字を指定しても構いませんが、そのまま『targetNo』の文字列を指定しておけば、大抵は問題ないはずです。

計算結果の取得(Obtaining Calculation Results)

 以下のスクリプトでダメージ計算の結果を取得できます。
 中身はGame_ActionResult型のオブジェクトです。
BattleManager.reservedResult(targetNo)


例:ダメージ > 0 の場合のみアニメーションを実行

<D-Animation>
condition = BattleManager.reservedResult(targetNo).hpDamage > 0
</D-Animation>


撃破判定(Judgment of Dead)

 以下のスクリプトで対象が戦闘不能になったかどうかを判定できます。
b.isDeadReserved()


例:撃破時のみアニメーションを実行

<D-Animation>
condition = b.isDeadReserved()
</D-Animation>


スキル演出のサンプル(Dynamic Sample)



 DynamicAnimation&Motionを使用したサンプルについては、以下の記事をご覧ください。
 https://newrpg.seesaa.net/article/511771250.html

プラグインパラメータ(Plugin Parameters)


ランダム対象を修正(CorrectRandomTarget)

 範囲がランダムのスキルで対象を撃破できた場合は、対象を生存者へと修正します。

ステート無効は失敗(StateResistToFailure)

 ステートが無効な場合は失敗として扱い、成功判定しません。
 ツクールの仕様では、命中したステートが無効化された場合でも成功と判定されてしまいます。この仕様は不自然なので、失敗として扱われるように修正します。

 >RPGツクールMZ&MV目次に戻る
posted by 砂川赳 at 21:21 | RPGツクールMZ&MV | このブログの読者になる | 更新情報をチェックする

DynamicMotionの帰還中に行動【RPGツクールMZ&MVプラグイン】

2025年08月09日

 DynamicMotionの帰還動作中にも次の行動を実行できるようにします。
 戦闘をとことんスピーディにしたい方にオススメです。


 なお、不自然な挙動を避けるため帰還中のバトラーがスキルの対象者および使用者になった場合は、帰還するまでウェイトを実行します。

 仕様上、NRP_DamageTiming.js(ダメージタイミングの調整)などと組み合わせて戦闘を高速化していないと効果が実感しづらいです。

 同様の理由でメッセージ表示との相性もよくありません。SimpleMsgSideViewMZ.js(公式ローンチプラグイン)との併用が無難だと思います。

目次


導入方法(Install)

更新履歴(History)

スキルのメモ欄

注意点

プラグインパラメータ(Plugin Parameters)

対象ならウェイト(WaitIfTarget)

使用者ならウェイト(WaitIfUser)

帰還中はモーション維持(KeepReturningMotion)

戦闘終了時はウェイト(WaitBattleEnd)

ターン終了時はウェイト(WaitTurnEnd)

再生表示を待つ(WaitRegeneration)ver1.02


導入方法(install)


 以下のファイルをダウンロードし 、[プロジェクト]\js\plugins に放り込みます。ツクールのプラグイン管理から機能をONにしてください。
 ※このプラグインはMV、MZの両方で有効です。

 NRP_DynamicReturningAction.js ver1.05(2025/08/09)

 ※当然ながらDynamicMotionを使用できることが前提です。

 ※NRP_TroopRandomFormation.jsと併用する場合はあちらを最新(2024/06/20 ver1.082)に更新してください。『再生表示を待つ』が機能しない不具合があります。

更新履歴(History)


2025/08/09(ver1.05)

  • 不具合対策のため帰還時の判定をゆるめた。

2025/06/09(ver1.04 -> 1.041)

  • ver1.03の修正が不安定だったので、破棄して処理を見直した。
    ※行動したバトラーが毒(HP再生がマイナス)の時には帰還中の動作をせずウェイトするようにした。
  • 処理が安定するように調整。(ver1.041)

2025/06/07(ver1.03 -> 1.031)

  • 再生表示を待つがオンかつ毒ダメージで敵を倒した場合、毒ダメージの表示より先に撃破演出が実行されてしまう不具合修正。
  • 競合エラーの対処用に微調整。(ver1.031)

2024/03/14 -> 2025/03/22(ver1.02 -> 1.021)

  • 毒や再生効果によるダメージの表示タイミングを帰還後に表示するように調整。
  • DynamicMotionのairY(空中Y座標)が考慮されていない問題を修正。(2025/03/22 ver1.021)

2023/09/28(ver1.01 -> 1.011)

  • モーションの終了タイミングを適切に判断できていない不具合修正。
  • 実装に不備があったので再修正。(2023/09/28 ver1.011)

2023/05/08 -> 2023/07/17(ver1.00 -> 1.003)

  • 公開!
  • スキル発動時の前進を待たずに演出を開始してしまう不具合修正。(2023/06/08 ver1.001)
  • スキルで自分を攻撃した際、死亡モーション等が適切に反映されない不具合修正。(2023/06/28 ver1.002)
  • ver1.002の不具合が全滅時のみ発生してしまう不具合修正。
    (2023/07/17 ver1.003)

スキルのメモ欄


<ReturningWait>

 スキル実行中にバトラーの帰還を待つようになります。
 大技などを強調したい場合にどうぞ。

注意点


 挙動としては「全てのダメージ処理が終わっており、かつスキル使用者が帰還を開始するタイミング」で次のアクションに移ります。

 相手を吹き飛ばすような演出を含む場合、相手が元のポジションに戻ってから帰還動作をさせることを推奨します。さもないと、次のスキルで移動中の相手の座標に向かっていくような不自然な演出になる可能性があります。
 そういったスキルの場合は上記の<ReturningWait>を指定する方法もあります。

プラグインパラメータ(Plugin Parameters)


対象ならウェイト(WaitIfTarget)

 帰還中のバトラーがスキルの対象となった際、ウェイトを実行します。

使用者ならウェイト(WaitIfUser)

 帰還中のバトラーがスキルの使用者となった際、ウェイトを実行します。

帰還中はモーション維持(KeepReturningMotion)

 帰還中はモーションを維持し、コマンド入力時のモーションを無効化します。

戦闘終了時はウェイト(WaitBattleEnd)

 戦闘終了時にバトラーの帰還を待ちます。

ターン終了時はウェイト(WaitTurnEnd)

 ターン終了時にバトラーの帰還を待ちます。

再生表示を待つ(WaitRegeneration)ver1.02

 HP再生や毒などの表示を帰還後に表示するように調整します。
 帰還中に再生ダメージが表示されると表示が分かりづらいので、そのための調整です。

 >RPGツクールMZ&MV目次に戻る
posted by 砂川赳 at 14:41 | RPGツクールMZ&MV | このブログの読者になる | 更新情報をチェックする