敵キャラの『仲間を呼ぶ』を実装【RPGツクールMZ&MVプラグイン】

2024年10月27日

 敵キャラのスキルに『仲間を呼ぶ』機能を追加します。


主な特徴

  • 現れた敵キャラは自動で、空白のある場所に登場。
  • プラグインコマンド(MZのみ)を使えば、任意の座標に配置可能。
  • DynamicAnimation&Motionとの連携により、登場演出も作成可能。

 ※animatedSVEnemies.jsを適用したバトラーは呼び出せません。

目次


導入方法(Install)

更新履歴(History)

使用方法(Usage)

スキルのメモ欄(オプション)(Note of Skills)

敵キャラのメモ欄(オプション)(Note of Enemies)ver1.01

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

MZ用プラグインコマンド(Plugin Command MZ)

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

敵キャラの最大数(MaxEnemyNo)

成功メッセージ(SuccessMessage)

失敗メッセージ(FailureMessage)

DynamicAppearと連携(LinkDynamicAppear)ver1.01

参考(Reference)


導入方法(install)


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

 NRP_CallEnemy.js ver1.051(2024/10/27)
 NRP_TroopRandomFormation.js ver1.081(2024/05/04)(解説

 ※敵キャラの配置方法はNRP_TroopRandomFormation.jsのプラグインパラメータに依存しますので、調整はそちらで行ってください。
 なお、NRP_TroopRandomFormation.jsを導入すると、グループ名が『#』から始まる敵グループが自動配置の対象となります。この機能を利用したくない場合はご注意ください。


 また、以下のプラグインと併用する場合は最新化をお願いします。競合上の問題が起こらないように、不具合を解消しております。


更新履歴(History)


2024/10/27(ver1.051)


2024/08/05(ver1.04)


2024/03/02 -> 2024/05/04(ver1.03)

  • 敵キャラの画像サイズをうまく計算できないことがある不具合を修正。
  • 連続かつ高速で仲間を呼ばれた際、配置座標が正しく計算できない問題に対処。(2024/05/04 NRP_TroopRandomFormation.js ver1.081)

2023/06/10(ver1.021)


2022/04/21(ver1.01 -> 1.011)

  • 影プラグインの浮遊処理と組み合わせた際、適切に配置できない問題に対処。
    ※影プラグイン側も最新化してください。
  • 敵キャラ毎にデフォルトの登場演出を設定可能に。
  • それに伴い、パラメータにDynamicAppearと連携を追加。
  • 登場演出を指定しなかった場合に、敵が表示されなくなる不具合修正。(ver1.011)
  • 上空から登場のサンプルにて登場前にチラ見えする不具合修正。(2022/04/21)

2022/03/04 -> 2022/03/10(ver1.00 -> 1.001)

  • 公開!
  • MVにて敵キャラのサイズが考慮されない不具合を修正。
    (2020/03/10 ver1.001)

使用方法(Usage)


 『仲間を呼ぶ』用のスキルを作成します。

 まず、スキルの範囲は『使用者』など、単体を対象とするものにしてください。
 範囲が『なし』だと機能しませんのでご注意を。


 次にスキルのメモ欄に以下を記入してください。
<CallEnemy: x>

 これでIDがx番の敵キャラを呼び出します。
 省略して<CallEnemy>とだけ記入すると、スキルの使用者と同一の敵キャラを呼び出します。スキル使用者側の敵に呼び出す対象を設定することも可能です。

 また、複数指定にも対応しています。
<CallEnemy: 1~3>

 ならば、IDが1〜3の敵キャラをランダムで呼び出します。
<CallEnemy: 1,3,5>

 ならば、IDが1,3,5の敵キャラをランダムで呼び出します。

 ちなみに連続回数を増やせば、一度に複数の仲間を呼びます。

スキルのメモ欄(オプション)(Note of Skills)


<CallEnemyDynamic: x>

 DynamicAnimation&Motionプラグインと連携し、x番のスキルに指定された演出で登場します。
 当然ながら、該当のプラグインを導入している必要があります。

<CallEnemyXY:[X座標], [Y座標]>

 指定された座標に敵を出現させます。
 例えば、以下は変数1をX座標、変数2をY座標として参照します。
 <CallEnemyXY:$gameVariables.value(1), $gameVariables.value(2)>

<CallEnemyCtbWt:[数値]>

 ※NRP_CountTimeBattle.jsとの連携用
 CTBにおける登場時の待ち時間を指定した値(100が標準)に変更します。
 例えば、<CallEnemyCtbWt:0>なら即時行動します。
 <CallEnemyCtbWt:50>ならば、1/2ターンで行動開始します。

敵キャラのメモ欄(オプション)(Note of Enemies)ver1.01


<DynamicAppear: x>

 DynamicAnimation&Motionプラグインと連携し、x番のスキルに指定された演出で登場します。

 スキルか敵キャラか、好きな指定方法を選んでください。
 両方の指定がある場合はスキル側が優先されます。

 なお、この設定はNRP_DynamicAppear.js(登場演出プラグイン)による登場演出と共有されます。

<CallEnemy: x>

 該当の敵キャラが仲間を呼んだ場合に呼び出される敵のIDです。
 仲間を呼ぶスキルにIDの指定がないことが条件です。
 複数指定も可能です。

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


画面左から登場

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


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

 『a』で呼び出された敵キャラ、『b』でスキルの使用者を参照できます。
 『a._homeX』『a._homeY』が配置地点となるので、最終的にそこへ移動するように実装してください。

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

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


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

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

 なお、敵キャラの影の表示については、影プラグインが必要です。

アニメーションと共に登場

 アニメーションと共に登場します。


// 目的地へ移動&透明化
<D-Motion:invisible&soon>
sx = a._homeX // 始点X座標
sy = a._homeY // 始点Y座標
</D-Motion>

// アニメーションを自身に表示
<D-Animation:self>
delay = 1
</D-Animation>

// 透明解除
<D-Motion:visible&wait>
sx = a._homeX
sy = a._homeY
frame = 7
</D-Motion>

 アニメーションの内容は自由に設定してください。
 ただし、EffekseerによるMZアニメはdelayを入れないと表示されないようです。MVアニメならdelayは不要です。

 ポイントは<D-Animation:self/>です。
 単にアニメーションを表示すると、スキルの使用者側に表示されてしまうことに注意してください。self型にすることで、モーションの実行者に表示されるようになります。

MZ用プラグインコマンド(Plugin Command MZ)


敵キャラを呼ぶ

 バトルイベント内で自由に敵キャラを呼び出します。
 スキルによる呼び出しとは異なり、座標を指定することも可能です。

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


敵キャラの最大数(MaxEnemyNo)

 同時に出現できる敵キャラの最大数です。
 それ以上呼び出そうとすると失敗します。

成功メッセージ(SuccessMessage)

 呼び出しに成功した際に表示する文章です。

失敗メッセージ(FailureMessage)

 呼び出しに失敗した際に表示する文章です。

DynamicAppearと連携(LinkDynamicAppear)ver1.01

 NRP_DynamicAppear.jsと連携し、登場演出を実行します。
 具体的には、NRP_DynamicAppear.jsのプラグインパラメータに設定した『敵キャラの開始演出』を取得し、仲間を呼ばれた際の登場演出の既定値とします。

参考(Reference)


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

 EnemyCallsAlly.js(神無月サスケ様)
 https://forum.tkool.jp/index.php?threads/4795/

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

戦闘開始演出をシームレスにする【RPGツクールMZ&MVプラグイン】

2024年10月26日

 暗転を挟まないシームレスな戦闘開始演出を提供します。
 ズームや回転などの演出も同時に可能です。


 なお、シームレスといっても最低限のロード時間は必要となります。特にゲームを開始してから初回の戦闘では、読み込むデータ量が多くなるのでローディングが発生しやすいです。
 なので、初期状態ではズームおよび回転演出を入れることでごまかしています。


 

目次


導入方法(Install)

更新履歴(History)

使用方法(Usage)

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

戦闘開始演出リスト(EncounterList)

戦闘開始演出パラメータ(Encounter Parameters)

メモ(Note)

スイッチ(Switch)

開始演出時間(BeforeDuration)

ズーム速度(ZoomSpeed)

回転速度(RotationSpeed)

フェードイン時間(FadeInDuration)

フェードインを待つ(WaitFadeIn)

効果音(Se)

演出なし(NoEffect)


導入方法(install)


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

 NRP_SeamlessEncounter.js ver1.03(2024/10/26)

更新履歴(History)


2024/10/26(ver1.03)

  • ver1.02にて通常のエンカウント演出が重複して表示されてしまう不具合修正。

2024/05/15(ver1.02)

  • 『演出なし』を設定できるようにした。
    ※外部のエンカウント演出プラグインとの併用に使えます。
  • 演出毎に効果音を設定できるようにした。

2024/04/12(ver1.01)

  • 戦闘終了演出(フェード処理、逃げる処理)が正しく実行されなくなる不具合修正。

2024/02/27(ver1.00 -> 1.001)

  • 公開!
  • 回転速度にマイナス(逆回転)を指定可能に。(ver1.001)

使用方法(Usage)


 戦闘開始演出リストに設定を登録してください。
 上側にある設定が優先して使用されます。
 スイッチを条件にすることで、ボス戦のみ演出を変更するといったことができます。

 また、『演出なし』をオンにすると、当プラグインによる演出が実行されなくなります。他のプラグインによる演出と併用したい場合に有用です。

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


戦闘開始演出リスト(EncounterList)

 戦闘開始演出の一覧です。
 詳細は以下の『戦闘開始演出パラメータ』をご覧ください。

戦闘開始演出パラメータ(Encounter Parameters)


メモ(Note)

 説明用のメモです。
 処理には使用しません。

スイッチ(Switch)

 条件とするスイッチです。

開始演出時間(BeforeDuration)

 フェードイン開始までの時間(1/60秒単位)です。
 0にしても最低限のロード時間は発生します。

ズーム速度(ZoomSpeed)

 戦闘開始演出時のズーム速度(1/60秒当たり)です。

回転速度(RotationSpeed)

 戦闘開始演出時の回転速度(1/60秒当たり)です。

フェードイン時間(FadeInDuration)

 ロード完了後に戦闘画面をフェードイン表示するまでの時間です。

フェードインを待つ(WaitFadeIn)

 フェードイン処理の終了を待ってから操作を有効にします。

効果音(Se)

 演奏する効果音です。

演出なし(NoEffect)

 当プラグインによる演出を実行しなくなります。
 外部の戦闘開始演出系プラグインと併用したい場合に有効です。

 ただし、効果音だけは演奏されます。

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

敵行動ルーチンの改善【RPGツクールMZ&MVプラグイン】

2024年10月12日

 敵の行動ルーチン(AI)を改善するプラグインです。

初めに(introduction)


 ツクールMZ&MVの初期状態では、敵キャラはあまり賢く行動してくれません。

 例えば、回復魔法を使わせても対象は完全ランダムです。
 高確率で無駄撃ちするので、怖さや鬱陶しさがありません。ドラクエがファミコン時代から実現していたホイミスライムのようなモンスターすら作成が困難です。

 また、蘇生魔法を使わせれば、戦闘不能者がいようがいまいが無駄撃ちする始末。ドラクエ4のブラックマージ(マイナーかも……)のような蘇生を使ってくる敵もまともに作れません。

 一応、HPを行動の条件に使えますが、参照できるのは自分のHPのみ。
 そもそも、ツクールMZ&MVの仕様では行動を決定するタイミングがターンの最初だけです。ターンの途中で自分が瀕死になっても、次のターンまで回復行動は取りません。その隙に、プレイヤーは容赦なく敵を葬ってしまうでしょう。
 
 そんなこんなを改善するのが、このプラグインです。

  • HP&MP回復時に最も減っている対象を選択する。
  • 有効な対象が存在しない場合、回復や治療、蘇生を行わない。
  • ターン開始時だけでなく行動直前にも行動再選択を行う。
  • 既にかかっているステートを重ねがけしない。
  • 既に限界となっている能力変化を重ねがけしない。
  • MPが0の相手にMP吸収スキルを使わない。
  • 一人しかいない場合、身代わりスキルを使用しない。

 以上のような修正によって、賢く個性的な敵を実現します。

 この動画はその例です。敵は意味のない行動を取らず、的確に回復やステートを使ってきます。
※画面が小さい場合は右下の全画面表示をクリックしてください。

  • 導入方法(install)
  • 更新履歴(history)
  • パラメータ(parameter)

    導入方法(install)


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

     NRP_EnemyRoutineKai.js ver1.101(2024/10/12)

    更新履歴(history)


    2024/09/13 -> 2024/10/12(ver1.10 -> 1.101)

    • NRP_SkillEX.jsとの併用に対応。ステート付加率がNRP_SkillEX.js側で変更されている場合も制御できるようにした。
    • 回復スキルを無効な相手には使わないように修正。(2024/10/12 ver1.101)
      ※特にNRP_TraitsPlus.jsでアンデッドが回復でダメージを受ける設定にした場合など。

    2024/08/05(ver1.09)

    • TPBで『行動直前の再設定』をオンにした場合、行動が不発になってしまう不具合を修正。

    2022/08/19 -> 2024/07/21(ver1.08 -> 1.083)

    • 敵が自分しかいない場合、身代わりステートつきのスキルを使用しないように改善。
    • 『行動直前の再設定』がオンかつ複数回行動かつ速度補正技の後に非速度補正技を使用した際、行動回数が増えてしまう不具合修正。
      (2023/06/06 ver1.081)
    • 敵に範囲が味方かつ『ステート付加 通常攻撃』のスキルを使わせるとエラーになる不具合修正。(2023/11/11 ver1.082)
    • 不要な競合を引き起こす不具合修正。(2024/07/21 ver1.083)

    2021/07/18(ver1.07)

    • MPが0の相手にMP吸収/ダメージスキルを使わない機能を追加。
    • 『戦闘行動の強制』などで有効な対象が存在しないスキルを実行した場合、対象なしのまま実行する仕様を修正。普通に無効な対象に対して実行します。
      ※DynamicAnimationと組み合わせた場合、自分にアニメーションを表示してしまう問題への対処です。

    2020/10/04(ver1.06)

    • MVでエラーになる不具合修正。

    2020/09/13(ver1.05 -> 1.051)

    • MZのタイムプログレスで行動が不発する不具合修正。
    • タイムプログレスで速度補正技が選択されない不具合修正。(ver1.051)

    2020/09/06(ver1.04 -> 1.042)

    • 『行動直前の再設定』が有効なら、複数回行動時も毎回考慮するように修正。
    • 1.04で行動が不発する不具合修正。(ver1.042)

    2020/08/22(ver1.03 -> 1.031)

    • ツクールMZ向けにヘルプを修正。
    • 『行動直前の再設定』が有効だと、複数回行動の敵が無限に行動してしまう不具合修正。(09/03 ver1.031)

    2020/06/14(ver1.02)

    • 英語対応。

    2020/01/27(ver1.01)

    • ツクールMVの本体verが古い場合でも動作するよう修正。

    2020/01/24(ver1.00)

    • 公開開始!

    パラメータ(parameter)


     以下のプラグインパラメータで、敵全体の初期値を設定します。
     基本的にはほとんどONでいいと思います。
     ただし『対アクターの使用効果制御』をONにすると、わりと嫌らしくなるので取り扱い注意です。

     個別の敵キャラごとに設定したい場合は、メモ欄に記述することで切替可能です。

    パラメータ(基本設定)


    行動直前の再設定(resetAction)

     ONならば、行動直前にも再度の行動決定を行います。
     ※一人ずつ行動するCTBでは無意味なので、OFF推奨です。
     ※CTBでも複数回行動時には有効です。(ver1.04)

     ※ターン開始時に速度補正技が選ばれた場合は、行動再選択を行いません。また、行動再選択時に速度補正技を選ぶこともありません。速度補正の処理はターン開始時に行われるため、整合性が取れないためです。

     個別設定時は以下をメモ欄に記入してください。
    <RoutineReset:[true or false]>

     ※[]は条件式内部に書かないでください。
     <RoutineReset:true>でON、<RoutineReset:false>でOFFという意味です。
     ちなみに、<RoutineReset>と省略しても、trueと同じ扱いになるみたいです。

    行動判定の実行(testApply)

     ONならば効果の得られないスキルは使用しなくなります。
     例えば、HPの減った仲間が存在しなければ回復を行いません。
     戦闘不能の仲間がいなければ、蘇生を行いません。
     既に仲間の全員がステートにかかっていれば、同一のステートをかけません。

     この設定がOFFの場合、以下の回復関連や使用効果関連の制御がONでも優先されます。

     個別設定時は以下をメモ欄に記入してください。
    <RoutineTest:[true or false]>

    パラメータ(回復関連)


    回復系行動の制御(controlRecover)

     ONならば回復系スキルの制御を行います。
     HP(MP)が最も減った仲間に対して回復スキルを使います。また、減った仲間がいなければ、優先度によらずスキルを使いません。

     ※タイプが『HP回復』『MP回復』のスキルが対象となります。使用効果などに回復値を設定するだけでは、制御を行いませんので注意してください。

     個別設定時は以下をメモ欄に記入してください。
    <RoutineRecover:[true or false]>

    HP回復行動の条件(ifHpRecover)

     指定した条件式でHP回復を行います。
     『回復系行動の制御』がONの時のみ有効です。
     初期値の『b.hpRate() < 1.0』は、誰かのHPが100%未満になった時を意味します。
     例えば、50%以下に変更したい場合は、『b.hpRate() <= 0.5』にしてください。

     参照できる値はスキルの計算式と同じで、aは行動主体、bは対象者を意味します。基本的には『b.hpRate()』以外を使う必要はありません。

     個別設定時は以下をメモ欄に記入してください。
    <RoutineIfHp:[条件式]>

     ※[]は条件式内部に書かないでください。
     実際には以下のようになります。
    <RoutineIfHp:b.hpRate() <= 0.5>

     ※>(大なり)は条件式に使わないでください。タグ全体を閉じる記号と混同されるらしく認識できません。<(小なり)の使用をオススメします。

    MP回復行動の条件(ifMpRecover)

     指定した条件式でMP回復を行います。
     『回復系行動の制御』がONの時のみ有効です。
     初期値の『b.mpRate() < 1.0』は、誰かのMPが100%未満になった時を意味します。

     個別設定時は以下をメモ欄に記入してください。
    <RoutineIfMp:[条件式]>

    MP吸収の制御(controlMpDrain) ver1.07

     ONならばMP吸収/ダメージスキルの制御を行います。
     MPが0の相手に対してスキルを使用しなくなります。
     ※項目名は吸収になっていますが、MPダメージにも対応しています。

     個別設定時は以下をメモ欄に記入してください。
    <RoutineMpDrain:[true or false]>

    蘇生系行動の制御(controlForDead)

     ONならば戦闘不能者を対象にしたスキルの制御を行います。
     行動の優先度を高めに設定しておけば、戦闘不能者が出るなり即座に蘇生を行う厄介な敵も作れます。

     個別設定時は以下をメモ欄に記入してください。
    <RoutineForDead:[true or false]>

    パラメータ(使用効果関連)


    対エネミーの使用効果制御(controlEnemyEffect)

     ONならば仲間(エネミー)サイドに対する使用効果系スキルの制御を行います。
     例えば、支援系ステートの無意味な重ねがけをせず、かかっていない対象を選ぶようになります。

     ※タイプが『なし』のスキルが対象となります。タイプが『HP回復』などの使用効果にステートを設定しても、制御を行いませんので注意してください。

     個別設定時は以下をメモ欄に記入してください。
    <RoutineEnemyEffect:[true or false]>

    対アクターの使用効果制御(controlActorEffect)

     ONならば相手(アクター)サイドに対する使用効果系スキルの制御を行います。

     例えば、異常系ステートの無意味な重ねがけをせず、かかっていない対象を選ぶようになります。
     つまり、一人ずつ着実に異常スキルをしかけてきます。行動異常の場合、必然的にハメ殺しが発生しやすくなります。取り扱いには若干の注意が必要です。

     ※タイプが『なし』のスキルが対象となります。タイプが『HPダメージ』などの使用効果にステートを設定しても、制御を行いませんので注意してください。

     個別設定時は以下をメモ欄に記入してください。
    <RoutineActorEffect:[true or false]>

    ステート耐性を見るか(watchResist)

     ONならば対象の耐性を確認し、無効なステートを使用しなくなります。

     ちなみにツクールMVの仕様では、命中タイプが『必中』だと、有効度が0%の相手にまでステートがかかります。
     必中スキルを無効化したい場合は、ステート無効化を設定する必要があります。

     個別設定時は以下をメモ欄に記入してください。
    <RoutineWatchResist:[true or false]>


    身代わりを改善(improveSubstitute)

     ONならば一人しかいない状態で身代わりステート付きのスキルを使用しません。

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