イベント高速化機能を拡張【RPGツクールMZ&MVプラグイン】

2024年01月20日

 ツクールMV〜MZにはイベント実行中に、決定キーを押しっぱなしにすると動作が倍速化する機能があります。
 それなりに便利ではありますが、標準で強制的に付いているため融通が利きません。
 そこでいくつかの拡張を行います。


 上記は8倍速でイベントを実行した例です。
 この機能によって、一度見たイベントをスキップできるようにしておくと親切です。開発テスト時も余計なイベントを飛ばせるので便利!

主な機能

  • 描画処理(アニメーション、フキダシなど)の高速化
  • 使用するキーの変更
  • 実行速度の変更
  • 実行までの押しっぱなし時間の変更
  • タッチUI側の設定も別途指定可

 このプラグインにはメッセージを高速化する機能はありませんが、既存のメッセージ高速化プラグインと併用できます。例えば、メッセージスキップ系のプラグインとキーを合わせることで、イベント全体を高速化することも可能です。
 ※上の動画ではMessageSkip.js(トリアコンタン様)と併用しています。

目次


導入方法(Install)

更新履歴(History)

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

高速化キー(FastKey)

速度倍率(SpeedMultiply)

速度倍率の変数(SpeedVariableId)

開始プレス時間(PressWait)

描画処理を高速化(FastSprite)

メッセージウェイトを有効化(NotCancelMessageWait)

タッチ関連のプラグインパラメータ(Touch)

速度倍率(タッチ)(TouchSpeedMultiply)

速度倍率の変数(タッチ)(TouchSpeedVariableId)

開始プレス時間(タッチ)(TouchPressWait)

謝辞(Acknowledgements)


導入方法(install)


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

 NRP_EventFastForward.js ver1.02(2024/01/20)

更新履歴(History)


2024/01/20(ver1.02)

  • メッセージウェイトを有効化を追加。
    ※ツクールMZ1.8の更新にて、高速化キーを押しっぱなしにした際にメッセージウェイトを飛ばすようになりましたが、それを無効化するための機能です。

2022/02/11(ver1.01)


2021/10/09(ver1.00)

  • 公開!

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


高速化キー(FastKey)

 イベント高速化を実行するキーです。
 候補から選択してください。

速度倍率(SpeedMultiply)

 高速化時のイベント速度の倍率です。
 1以下なら高速化は無効になります。

 ※あまり倍率が高すぎると処理落ちしたりするので、ご注意ください。

速度倍率の変数(SpeedVariableId)

 イベント高速化の倍率を設定する変数です。
 値が1以下なら高速化無効。速度倍率より優先されます。

開始プレス時間(PressWait)

 キーを押し始めてから、高速化を開始するまでの所要時間です。
 1/60秒単位で指定してください。

描画処理を高速化(FastSprite)

 描画処理を高速化します。
 アニメーションやフキダシなども高速化されます。

メッセージウェイトを有効化(NotCancelMessageWait)

 高速化時にメッセージウェイトを無効化しないようにします。

 ※ツクールMZ1.8の更新にて、高速化キーを押しっぱなしにした際にメッセージウェイトを飛ばすようになりました。
 しかしながら、それまでのバージョンとはイベントのタイミングがズレるため、不具合が起こる可能性があります。MZ1.7までの挙動に戻すことでそれに対処できます。


タッチ関連のプラグインパラメータ(Touch)


 以下はタッチ操作時のイベント高速化設定です。
 特に指定しなければ、上記と同じ設定を使用します。

速度倍率(タッチ)(TouchSpeedMultiply)

 高速化時のイベント速度の倍率です。
 1以下なら高速化は無効になります。

速度倍率の変数(タッチ)(TouchSpeedVariableId)

 イベント高速化の倍率を設定する変数です。
 値が1以下なら高速化無効。速度倍率より優先されます。

開始プレス時間(タッチ)(TouchPressWait)

 キーを押し始めてから、高速化を開始するまでの所要時間です。
 1/60秒単位で指定してください。

謝辞(Acknowledgements)


 当プラグインはトリアコンタン様作成のFastForwardCustomize.jsを参考にさせて頂きました。

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

バトルイベント拡張【RPGツクールMZプラグイン】

2024年01月19日

 バトルイベントを補助し、拡張するプラグインです。
 当サイトのCTB・CTTBおよびデフォルトのターン制、タイムプログレスいずれでも使用できます。
 ※このプラグインはMZ版です。MV版はこちら!

できること


  • 敵の戦闘行動をバトルイベントによって詳細に制御する。

 以下の動画はバトルイベントによって、敵の行動制御をした例です。
 行動回数を自在に変えたり、味方の戦闘不能状況で行動を変えたり、時を止めたりとやりたい放題です。
※画面が小さい場合は右下の全画面表示をクリックしてください。

目次(index)


導入方法(install)

更新履歴(history)

説明(introduction)

プラグインコマンド(command)

スキル使用者設定(forceSubject)

スキル対象設定(絞込) (forceTargetFilter)

スキル対象設定(最大最小)(forceTargetMost)

対象検索→スイッチに格納(setConditionSwitch)

行動判定の無効化(superForce)

プラグインパラメータ(parameter)

強制行動時のスキル使用判定(forceValid)

スキル使用判定の影響軽減(forceValidFlexible)

aで行動主体を参照(aIsSubject)

コモンイベント時の終了処理を調整(adjustCommonEventActionEnd)

補足(repletion)


導入方法(install)


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

 NRP_BattleEventEXMZ.js ver1.062(2024/01/19)
 ※NRP_EnemyRoutineKaiと併用の際は、当プラグインを下に置いてください。

更新履歴


2023/08/27 -> 2024/01/19(ver1.06 -> 1.062)

  • 強制行動時のスキル使用判定がオンの場合でも、イベントコマンドによる実行以外には影響を与えないようにした。
    ※他プラグインで内部的に強制行動を行う場合に、影響を与えないための措置です。
  • ver1.06にて『スキル使用判定の影響軽減』がオン、かつスキル使用者設定が行われていた場合、使用判定が行われない不具合修正。
    (2023/12/30 ver1.061)
  • NRP_EnemyRoutineKai.jsと併用時、対象サイド変更が有効にならない競合に対応。(2024/01/19 ver1.062)

2022/12/21 -> 2023/08/14(ver1.05 -> 1.052)

  • メッセージ表示時、コモンイベントを呼び出す際(<NoStartAction>)の不要なウェイトを削除。
    ※アニメーションがなしの場合が対象です。
  • NRP_ChainSkill.jsに対応して戦闘終了判定を修正。
    (2023/02/22 ver1.051)
  • ダメージタイプがなし、かつ使用効果がなしのスキルが意図せず『コモンイベント時の終了処理を調整』の対象になってしまう不具合修正。
    (2023/08/14 ver1.052)
  • NRP_ChargeSkill.jsとの競合に対処するため、当プラグインを先に登録するよう明記。(2023/08/14 ver1.052)

2021/07/19 -> 08/31(ver1.04 -> 1.041)

  • DynamicAnimationと組み合わせた場合、『条件外なら行動しない』が有効でもアニメーションを表示してしまう問題に対応。
  • 魔法反射プラグインかつダメージタイミングの調整プラグインと組み合わせた状態で『コモンイベント時の終了処理を調整』をオンにしていると、反射ダメージが重複して表示される不具合修正。(2021/08/31 ver1.041)

2021/05/14(ver1.03)

  • スキルからコモンイベントを呼んだ際、行動終了処理(ステートの解除など)が実際の行動前に行われてしまう問題に対処。
    それに伴い『コモンイベント時の終了処理を調整』のプラグインパラメータを追加。

2021/05/09(ver1.02)

  • 『スキル対象設定』の対象が存在しなかった場合に、ランダムで狙うよう修正。

2020/09/26 -> 10/19(ver1.01 -> 1.011)

  • 敵全滅時は戦闘行動の強制を実行しないよう修正。
  • 『条件外なら行動しない』をfalseにした場合もオンになってしまう不具合修正。※空白なら正常に動作。
  • 『条件外なら行動しない』をオンにして、かつ対象が存在しない状態で全体攻撃を行うとエラーとなる不具合修正。
  • ターン終了時のバトルイベントで行動を不発させた場合、次のターンで最速行動してしまう不具合修正。(10/19 ver1.011)

2020/09/21(ver1.00)

  • 公開開始!

説明(introduction)


 ツクールMZのバトルイベント(コモンイベント)は極めて強力です。特に『戦闘行動の強制』は非常に便利で、様々な用途があります。
 これは対象にスキルを使わせるというもの。理論上はこれで敵の行動を制御したり、複合技のような複雑なスキルを作成することも可能です。

 しかしながら、かゆいところに手が届かないのも事実。その素晴らしさがあまり知られていませんでした。
 以下、『戦闘行動の強制』が持つ問題点。

  • 行動異常やMP枯渇を常に無視してスキルを発動してしまう。
  • バトルイベントを起動するタイミングが限られる。敵が行動したタイミングでの制御ができない。
  • スキルからコモンイベントを呼び出せるが、不要な演出が入る。
  • 行動主体やスキルの対象を、変数指定など柔軟に選択できない。

 このプラグインはこれらの問題点に対応し、バトルイベントの真価を引き出すことを目的とします。

 逆に言えば、プラグイン自体が大きな機能を果たすわけではありません。
 あくまでユーザの工夫を助けるものとなります。

 とはいっても、ピンと来ない方が大半でしょう。
 実際にどのようにバトルイベントを使えばよいかを以下で解説していきます。


プラグインコマンド(command)


スキル使用者設定(forceSubject)

 『戦闘行動の強制』を行う行動主体を上書きします。
 エディタ上の表示より優先されます。

スキル対象設定(絞込) (forceTargetFilter)

 『戦闘行動の強制』の対象を指定条件で絞り込んだ上で上書きします。
 エディタ上の表示より優先されます。

スキル対象設定(最大最小)(forceTargetMost)

 『戦闘行動の強制』の対象を上書きします。
 比較によって最大、最小値を持つ対象を求めます。
 エディタ上の表示より優先されます。

対象検索→スイッチに格納(setConditionSwitch)

 条件を満たす対象がいるか検索し、結果をスイッチに格納します。

 ※なお、スキルの使用者が確定できない状況ではエラーになります。基本的には、スキルから呼び出したコモンイベント内で使用する想定です。

行動判定の無効化(superForce)

 true : パラメータの設定に関わらず『戦闘行動の強制』で強制行動を実行します。
 false: パラメータの設定に関わらず『戦闘行動の強制』で行動判定を実行します。

プラグインパラメータ(parameter)


強制行動時のスキル使用判定(forceValid)

 戦闘行動の強制時もスキルの有効判定を行うようになります。
 つまり、行動異常やMP枯渇時は行動を行わなくなります。
 初期値はtrue。MZの元の挙動はfalseです。

 trueにしている場合でも、イベントなどでスキルを強制実行したいという場合は『行動判定の無効化』のプラグインコマンドで切替可能です。

スキル使用判定の影響軽減(forceValidFlexible)

 強制行動時のスキル使用判定がオンの場合でも、イベントコマンドによる実行以外には影響を与えないようにします。

aで行動主体を参照(aIsSubject)

 バトルイベント上で常に『a』で行動主体を参照できるようにします。この値はスクリプトから参照可能です。
 ちなみに、プラグインコマンドについてはこの設定がなくとも『a』での参照は有効です。

コモンイベント時の終了処理を調整 (adjustCommonEventActionEnd)

 スキルの使用効果でコモンイベントを呼び出した際、行動終了処理のタイミングを調整します。

 オンにすると、コモンイベントの終了時に一度だけ行動終了処理を実行するようになります。
 これにより、解除のタイミングが『行動終了時』のステートが、コモンイベントを起動した直後に解除されてしまう問題に対処できます。
 
 対象となる条件はダメージタイプが『なし』かつ、使用効果がコモンイベントのみの場合です。何らかの設定がされていると機能しないのでご注意ください。
 
 なお、これらの制御はCTBでは不要です。
 ※NRP_CountTimeBattle.js内の制御で考慮済み。

 また、スキル毎に切り替えたい場合は以下をメモ欄に記入してください。
<AdjustCommonEventActionEnd:[true/false]>


補足(repletion)


 動画で確認できる以下の機能はトリアコンタン様のプラグインによるものです。

  • 戦闘不能の相手サイドを蘇生:ScopeExtend.js
  • 時間停止中のモーション停止:BattlerGraphicExtend.js

 このプラグインでやっているのは「ターン毎に行動回数を変更する」「相手のステートを確認して行動を変える」「時間停止をイベントコマンドで演出する」といった部分です。ご注意ください。

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

反撃スキルを作成する【RPGツクールMZ&MVプラグイン】

2024年01月18日

 反撃として発動するスキルを作成できます。


 アクター、エネミー、職業、装備、ステート、スキルのそれぞれに対して、反撃を行う特徴として設定できます。
 スキルについては覚えているだけで、反撃するパッシブスキルとなります。

 反撃系プラグインは処理が非常に複雑なので、外部の反撃系プラグインと当サイトのプラグイン(DynamicMotion、CTB、連結スキルなど)を組み合わせると競合が起きやすいです。
 当プラグインはそういった問題が起きないように実装されています。
 

目次


導入方法(Install)

更新履歴(History)

反撃の設定

スキルのメモ欄

ステートのメモ欄

反撃グループ

DynamicAnimation & Motionとの連携

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

対象のダメージタイプ(TargetDamageType)

対象の命中タイプ(TargetHitType)

対象のスキルタイプ(TargetSkillType)

回避時の反撃判定(CounterEvadeCondition)

アイテムにも反撃(CounterItem)

連撃時の判定(ComboJudgeType)

MPTPを消費しない(NoMpTpCost)

スキルの使用判定を無視(IgnoreSkillConditions)

対象死亡時は中断(AbortTargetDeath)

仲間のスキルにも反撃(CounterFriendSkill)

デフォルトの反撃処理を上書(CoverDefaultCounter)

反撃有効グループ(DefaultCounterGroup)

反撃無効グループ(DefaultCounterGroupNG)

100%超えに対応(SupportOver100)


導入方法(install)


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

 NRP_CounterSkill.js ver1.03(2024/01/18)

更新履歴(History)


2024/01/18(ver1.03)

  • DynamicMotion併用時、反撃後にアクターが一歩前進してしまう不具合修正。

2023/10/23(ver1.02)

  • 味方のパーティアタックに対して反撃すると、敵を狙ってしまう不具合を修正。
  • それに伴い、味方に対しても反撃するかを設定可能にした。
    ※味方へ反撃するにはNRP_PartyAttack.jsが必要です。
  • 反撃グループに数式を適用できるように修正。

2023/10/04(ver1.01)

  • CounterGroupExcept、CounterGroupIncludeに文字列を設定すると、エラーになる不具合修正。

2023/08/20 -> 2023/08/27(ver1.00 -> 1.001)


反撃の設定


 アクター、エネミー、職業、装備、ステート、スキル、アイテムのメモ欄に、反撃スキルの設定を行います。
 ※各項目は数式も使用可です。

<CounterSkill:100>

 スキル100番を反撃として実行するようになります。
 数値を省略(<CounterSkill>)した場合は通常攻撃で反撃します。

<CounterRate:50>

 反撃スキルを50%の確率で発動します。
 省略すると100%になります。

<CounterDamageType:1,5>

 ダメージタイプ1,5のスキルを反撃の対象にします。
 1:HPダメージ, 2:MPダメージ, 3:HP回復, 4:MP回復, 5:HP吸収, 6:MP回復です。
 省略時はプラグインパラメータの設定を使用します。
 空欄にした場合は全て有効となります。

<CounterHitType:1>

 命中タイプ1のスキルを反撃の対象にします。
 0:必中, 1:物理攻撃, 2:魔法攻撃です。
 省略時はプラグインパラメータの設定を使用します。
 空欄にした場合は全て有効となります。

<CounterSkillType:0,2>

 スキルタイプ0,2のスキルを反撃の対象にします。
 スキルタイプはデータベースで設定できます。
 通常だと1は魔法、2:必殺技です。
 また、0は通常攻撃として扱われます。
 省略時はプラグインパラメータの設定を使用します。
 空欄にした場合は全て有効となります。

<CounterEvadeCondition:0>

 スキルの、命中/回避による反撃発動条件を設定します。
 0:常に反撃, 1:命中時のみ反撃, 2:回避時のみ反撃
 省略時はプラグインパラメータの設定を使用します。

<CounterGroupInclude:attack>

 スキルの反撃グループ名が『attack』の場合に反撃します。
 ※反撃グループに対しては後述します。

<CounterGroupExcept:attack>

 スキルの反撃グループ名が『attack』の場合に反撃しません。

<CounterItem> / <CounterItem:false>

 アイテムに対しても反撃を実行します。(falseでオフ)
 省略時はプラグインパラメータの設定を使用します。

<CounterAbortDeath> / <CounterAbortDeath:false>

 対象死亡時に反撃スキルを停止します。(falseでオフ)
 省略時はプラグインパラメータの設定を使用します。

スキルのメモ欄


 スキル(およびアイテム)のメモ欄に指定してください。

<CounterGroup:attack>

 反撃グループを『attack』に設定します。

<CounterDisabled>

 このスキルでは反撃を受けないようにします。

ステートのメモ欄


<CounterIgnoreRestrict>

 通常、行動制約ステートにかかっているバトラーは反撃を実行しませんが、例外的に反撃を実行できるようになります。
 攻撃系の行動制約のみが有効です。

反撃グループ(Counter Group)


 スキル毎の詳細な反撃判定を行いたい場合は反撃グループが有効です。
 例えば、弓スキルはトゲステートによる反撃を受けないといった場合は次のように設定すればOKです。

 弓スキルのメモ欄を設定し、反撃グループを『bow』にする。
<CounterGroup:bow>


 次にトゲステートのメモ欄を設定し、反撃グループ『bow』を無効にする。
<CounterGroupExcept:bow>


 逆に弓スキルのみ反撃対象とするステートを作成したい場合は、メモ欄に以下のように設定します。
<CounterGroupInclude:bow>


 なお、反撃グループを設定した場合でも、スキルタイプなどの条件は有効なままです。ご注意ください。

DynamicAnimation & Motionとの連携


スキルのメモ欄に以下のように条件を指定すれば、
反撃時のみ専用の演出を挿入できます。
<D-Animation:self&wait>
condition = BattleManager.isInCounter(); // 反撃用の条件
id = 52 // アニメーションID
</D-Animation>


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


対象のダメージタイプ(TargetDamageType)

 反撃対象とするダメージタイプ。複数可。
 0:なし, 1:HPダメージ, 2:MPダメージ, 3:HP回復, 4:MP回復, 5:HP吸収, 6:MP吸収

対象の命中タイプ(TargetHitType)

 反撃対象とするスキルの命中タイプです。複数可。
 0:必中, 1:物理攻撃, 2:魔法攻撃

対象のスキルタイプ(TargetSkillType)

 反撃対象とするスキルタイプです。複数可。
 標準だと0で通常攻撃、2で必殺技が対象になります。

回避時の反撃判定(CounterEvadeCondition)

 スキルが命中/回避された際に、反撃スキルを実行するかの判定です。

アイテムにも反撃(CounterItem)

 アイテムにも反撃を実行します。

連撃時の判定(ComboJudgeType)

 連撃を受けた際の判定方法です。
 『毎回』なら連撃回数だけ反撃率が上がります。

MPTPを消費しない(NoMpTpCost)

 反撃スキル発動時にMPTPを消費しません。

スキルの使用判定を無視(IgnoreSkillConditions)

 反撃時にスキルの使用判定(沈黙ステートなど)を無視します。

対象死亡時は中断(AbortTargetDeath)

 対象死亡時は以降の反撃スキルを発動しません。

仲間のスキルにも反撃(CounterFriendSkill)

 仲間のスキルへ反撃するかどうかです。
 ※本来と異なるサイドへ反撃するには、NRP_PartyAttack.jsが必要です。

デフォルトの反撃処理を上書(CoverDefaultCounter)

 デフォルトの反撃(追加能力値の反撃率)も当プラグインで処理するように上書きします。

 デフォルトの反撃処理は攻撃を完全回避した上で、動作の終了を待たずに反撃する仕様なのでクセが強いです。そこで、当プラグインの処理に置き換えることでオーソドックスな反撃処理に変更します。
 なお、攻撃を完全回避する仕様はなくなります。

反撃有効グループ(DefaultCounterGroup)

 デフォルトの反撃処理の有効な反撃グループです。

反撃無効グループ(DefaultCounterGroupNG)

 デフォルトの反撃処理の無効な反撃グループです。

100%超えに対応(SupportOver100)

 反撃率が100%を超えた場合に、反撃を複数回実行します。
 つまり反撃率が150%だと、1回確実に反撃した後、50%でもう一撃加えます。

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