バトラー&キャラクターに残像効果を付与【RPGツクールMZ&MVプラグイン】

2023年01月03日

 バトラーまたはキャラクターに対して残像効果を付与します。


 DynamicMotionとの連携によって、スキルの演出が可能です。
 残像の表示時間、間隔、色調などをプラグインパラメータで調整可能です。
 戦闘時については、DynamicMotionから呼び出すことを想定しています。


 ver2.00よりマップ上での使用にも対応しました。
 マップ版DynamicMotionでの使用はもちろん、スクリプトから直接実行することも可能です。

目次


導入方法(Install)

更新履歴(History)

基本的な使用法(Basic Usage)

DynamicMotionのサンプル(Sample)

移動ルートの設定の記述例(Sample2)

オプション(Option)

DynamicMotionのサンプル(Sample)

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

表示時間(Duration)

間隔(Interval)

不透明度(Opacity)

色調(Color)

合成方法(BlendMode)

参考(Reference)


導入方法(install)


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

 NRP_Afterimage.js ver2.02(2023/01/03)

更新履歴(History)


2023/01/03(ver2.02)

  • 戦闘開始直後に残像処理を実行するとエラーになる不具合修正。

2022/04/17(ver2.01)

  • マップのスクロール時に残像位置がズレる不具合修正。

2022/02/19 -> 2022/03/31(ver2.00 -> 2.004)

  • マップ上でのキャラクターにも対応。
  • 処理を見直して軽量化。
  • 残像消去時に、キャラの描画が乱れる不具合修正。
  • 回転時に残像の位置がズレる不具合修正。(ver2.001)
  • マップ版DynamicAnimationを導入していないと動作しない不具合修正。
    (2022/02/24 ver2.002)
  • DynamicMotionの空中処理用に微調整。(2022/03/04 ver2.003)
  • ChangeEquipOnBattleMZ.jsによって戦闘中の装備変更を行うと、無限循環エラーとなる問題に対応。(2022/03/31 ver2.004)

2021/11/13(ver1.01)

  • EnemyCallsAlly.jsなどの外部プラグインで敵キャラを追加した場合、エラーになる競合に対処。

2021/08/27(ver1.00 -> 1.001)

  • 公開!
  • 戦闘終了後に再度戦闘すると残像処理でエラーになる不具合修正。(08/27 ver1.001)

基本的な使用法(Basic Usage)


 バトラーまたはキャラクターを指定して、以下のスクリプトを呼び出せば実行できます。
 ※aはバトラー(アクター/敵)またはキャラクターです。

a.afterimage().start();

 残像を開始する。

a.afterimage().end();

 残像を終了する。
 ※省略した場合、アクション終了時に自動で終了します。
 ※マップ上では自動終了しないので注意してください。

DynamicMotionのサンプル


<D-Setting:NoStep>
<D-Motion:near>
script = a.afterimage().start();
</D-Motion>

<D-Motion:attack>
script = a.afterimage().end();
</D-Motion>

<D-Animation/>
<D-Motion:return/>


移動ルートの設定の記述例

 マップ上で使用したい場合は『移動ルートの設定』のスクリプトで以下のように記述すればOKです。
this.afterimage().start();

 終了時は以下のようになります。
this.afterimage().end();



 aではなくthisを対象にする以外は全く同じです。
 下記のオプションも同じ要領で使用できます。

オプション(Option)


 通常はプラグインパラメータの設定値を使用しますが、スキル毎に設定を変更することもできます。

a.afterimage().setInterval(4);

 残像の表示間隔を4フレーム(4/60秒)に設定する。

a.afterimage().setDuration(30);

 残像の表示時間を30フレーム(30/60秒)に設定する。

a.afterimage().setOpacity(128);

 残像の初期不透明度を128/255に設定する。

a.afterimage().setColor([255, 255, 255, 255]);

 残像の色調を[255, 255, 255, 255]に設定する。
 ※赤、緑、青、強さの順番

a.afterimage().setBlendMode(1);

 残像の合成方法を1:加算に変更する。
 ※0:通常, 1:加算, 2:乗算, 3:スクリーン

DynamicMotionのサンプル


 以下のように開始処理の後でオプションを設定してください。
 ※改行すると動作しませんのでご注意を。

<D-Setting:NoStep>
<D-Motion:near&jump>
script = a.afterimage().start(); a.afterimage().setInterval(4); a.afterimage().setDuration(60); a.afterimage().setOpacity(255); a.afterimage().setColor([0, 0, 255, 255]); a.afterimage().setBlendMode(1);
</D-Motion>

<D-Motion:attack>
script = a.afterimage().end();
</D-Motion>

<D-Animation/>
<D-Motion:return/>


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


表示時間(Duration)

 残像が消滅するまでの時間です。

間隔(Interval)

 残像を生成する間隔です。1/60秒単位で設定してください。

不透明度(Opacity)

 残像を生成する際の不透明度です。
 残像はこの不透明度で生成された後、徐々に薄くなっていきます。

色調(Color)

 残像の色調です。例:[128, 128, 255, 255]

合成方法(BlendMode)

 残像の合成方法です。

参考(Reference)


 このプラグインの制作に当たり、以下のプラグインを参考にさせていただきました。

 SAN_ResidualSprites.js(サンシロ様)
 https://github.com/rev2nym/SAN_ResidualSprites

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

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

2022年12月21日

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

できること


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

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

目次(index)


導入方法(install)

更新履歴(history)

説明(introduction)

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

スキル使用者設定(forceSubject)

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

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

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

行動判定の無効化(superForce)

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

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

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

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

補足(repletion)


導入方法(install)


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

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

更新履歴


2022/12/21(ver1.05)

  • メッセージ表示時、コモンイベントを呼び出す際(<NoStartAction>)の不要なウェイトを削除。
    ※アニメーションがなしの場合が対象です。

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

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

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

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

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

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

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


補足(repletion)


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

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

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

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

戦闘開始時に登場演出を実行【RPGツクールMZ&MVプラグイン】

2022年12月10日

 戦闘開始時にバトラーの登場演出を実行します。
 演出はDynamicAnimation&Motionプラグインによって作成します。



目次


導入方法(Install)

更新履歴(History)

使用方法(Usage)

アクター、敵キャラ、職業のメモ欄(Note)

DynamicMotionによる演出の例(Sample of DynamicMotion)

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

アクターの開始演出(ActorDynamicId)

敵キャラの開始演出(EnemyDynamicId)


導入方法(install)


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

 NRP_DynamicAppear.js ver1.01(2022/12/10)

 動作には、さらに以下のプラグインが必須となります。

MZ版

 NRP_DynamicAnimationMZ.js詳細
 NRP_DynamicMotionMZ.js詳細

MV版

 NRP_DynamicAnimation.js詳細
 NRP_DynamicMotion.js詳細

更新履歴(History)


2022/12/10(ver1.01)

  • 戦闘開始直後に逃げると移動演出がなくなる不具合を修正。

2022/03/11 -> 2022/04/21(ver1.00)

  • 公開!
  • 上空から登場のサンプルにて登場前にチラ見えする不具合修正。(2022/04/21)

使用方法(Usage)


 DynamicAnimation&Motionプラグインの説明に従って、演出用のスキルを作成してください。
 ※必要なのはメモ欄の定義だけなので、その他の設定は不問です。

 後はアクター(または職業)、敵キャラのメモ欄に以下の通り、スキルIDを設定すればOKです。
 個別の指定がない場合は、プラグインパラメータの初期値が使用されます。

アクター、敵キャラ、職業のメモ欄(Note)


<DynamicAppear: x>

 DynamicAnimation&Motionプラグインと連携し、x番のスキルに指定された演出で登場します。
 なお、職業のメモ欄に設定した場合は、アクターの設定よりも優先されます。

DynamicMotionによる演出の例(Sample of DynamicMotion)


画面外から登場

 オーソドックスに画面外から登場します。


// 戦闘開始時に時間差
<D-Motion>
condition = BattleManager._phase == "start"
wait = a.index() * 3 // 時間差
</D-Motion>


<D-Motion>
frame = 5 // 移動時間
sx = a._homeX + 500 * mirroring // 始点X座標(画面外)
sy = a._homeY // 始点Y座標
ex = a._homeX // 終点X座標
ey = a._homeY // 終点Y座標
</D-Motion>

 『a』で登場するバトラーを参照できます。
 『a._homeX』『a._homeY』が配置地点となるので、最終的にそこへ移動するように実装してください。

 赤字部分によって、登場時の時間差を表現しています。
 戦闘開始時のみウェイトをかけるようにしているため、仲間を呼ぶプラグインと同じ定義を流用することもできます。
 ※この機能(condition)はDynamicAnimation&Motionを最新化(2022/03/10〜)していないとうまく動作しないので、ご注意ください。

上空から登場(2022/04/21更新)

 上空から登場します。飛行系の魔物などに最適です。


<D-Motion:soon>// 戦闘開始時に時間差
<D-Motion>
condition = BattleManager._phase == "start"
wait = a.index() * 3 + 1 // 時間差
</D-Motion>

airY = -500 // 空中Y座標
ex = a._homeX // 終点X座標
ey = a._homeY // 終点Y座標
</D-Motion>

<D-Motion>
frame = 8 // 移動時間
airY = 0 // 空中Y座標
</D-Motion>

 赤字部分ですが、アクターの場合はなぜか『+1』しておかないと動きません……。
 なお、敵キャラの影の表示については、影プラグインが必要です。

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


アクターの開始演出(ActorDynamicId)

 アクターの戦闘開始演出(初期値)です。
 演出を定義したスキルを指定してください。

敵キャラの開始演出(EnemyDynamicId)

 敵キャラの戦闘開始演出(初期値)です。
 演出を定義したスキルを指定してください。

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