DynamicMotion(戦闘モーションを自在に制御)【RPGツクールMVプラグイン】

2020年11月17日

 スキル実行時の戦闘モーションを自在に制御するプラグインです。
 ※このプラグインはMV版です。MZ版はこちら!

 Click here for the English manual.(By Ryan Bram)

 自由なタイミングでバトラーを移動したりモーションを実行したりできます。
 さらにDynamicAnimationとの連動によって、アニメーションを自在に挿入できます。

 YEP_BattleEngineCoreなど、既存のモーションプラグインより敷居が低いものを目指しました。

 以下は紹介動画です。
※画面が小さい場合は右下の全画面表示をクリックしてください。

目次


導入方法

更新履歴

使用方法


テンプレートの解説


その他情報


サンプル技


競合について ver1.04


導入方法


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

 NRP_DynamicAnimation.js ver1.25(2021/08/06)
 NRP_DynamicMotion.js ver1.20(2021/09/11)

 ※アニメーション用プラグイン(NRP_DynamicAnimation.js)については、解説ページをご覧ください。

オプション

DynamicAnimationをマップ上で起動(詳細

 NRP_DynamicAnimationMap.js ver1.09(2021/04/24)

DynamicMotionをマップ上で起動(詳細

 NRP_DynamicMotionMap.js ver1.06(2021/05/07)

DynamicAnimation&Motionの定義をtxtから読み込む(詳細

 NRP_DynamicReadTxt.js ver1.06(2021/03/04)

MV用アニメーションの軽量化(詳細

 NRP_LightAnimation.js

 ※プラグイン同士の配置順に注意してください。上記の掲載順にそのまま配置すれば安全です。

更新履歴


2021/09/11(ver1.20)


2021/08/06 -> 08/07(ver1.19 -> 1.191)

  • 仲間向けのスキルは反転しないように調整。
    ※NRP_DynamicAnimationも最新に更新してください。
  • 動作対象を変更した場合、ミラーリングが逆方向に動作する不具合修正。(08/07 ver1.191)

2021/04/24(ver1.18)

  • マップ版DynamicAnimationの『途中から再生』に対応。
    ※各関連プラグインも最新に更新してください。

2020/11/26 -> 01/20(ver1.17 -> 1.171)

  • 影プラグインとの連携用に調整。
  • VE系プラグインと関数名がかぶっていたので調整。
    ※DynamicAnimationも最新に更新してください。
  • "subject"でスキルの使用者を参照できるよう調整(01/20 ver1.171)

2020/11/20(ver1.16)

  • 『animatedSVEnemies.js』との連携用に調整。
    ※DynamicAnimationも最新に更新してください。

2020/11/08 -> 11/17(ver1.15 -> 1.152)

  • テンプレート一覧の表示情報を整理。テンプレートIDが収まるように調整。
  • 各モーション用のテンプレートを追加し、全てのモーションを呼び出されるようにした。『svGuard』というように頭にsvをつけて指定します。
  • 『reverse』『pattern0』『pattern1』『pattern2』のテンプレートを追加。モーションを逆再生したり、特定のパターンで固定したりできます。
  • 『ifAdjacent(隣接)』『ifDistant(遠隔)』のテンプレートを追加。マップ上でイベント同士が「隣接している時」「していない時」のみ実行する処理を作成できます。
  • マップ版『near』『crash』『back』の定義を拡張性を考慮して調整。
  • マップ版『return』で移動がない場合はジャンプしないように調整。
  • マップ版『clear』のテンプレートを追加。用途は後日説明予定。
  • マップ版にて『a』の参照先が常にスキルの使用者になっていた不具合を修正。(11/10 ver1.151)
  • 逃げる失敗時にエラーとなる不具合修正。(11/17 ver1.152)
    ※各関連プラグインも最新に更新してください。

    ※テンプレートの追加・修正はプラグインを再登録しないと反映されません。
    ただし、再登録すると全ての設定変更が初期化されてしまいます。
    それを避けたい場合、テンプレート定義一覧からのコピペをオススメします。


2020/11/05 -> 11/06(ver1.14 -> 1.141)


2020/10/17 -> 11/01(ver1.13 -> 1.135)

  • マップ用テンプレート定義一覧をプラグインパラメータに追加。同一IDのテンプレートでも、マップ上では異なる動作をさせられます。
  • ↑に伴いnear, back, stepForward, stepBack, return, homeの各テンプレートがマップ上では別仕様に。
  • 対象を向く(turnToward)、反対を向く(turnAway)をマップ用テンプレートに追加。
  • 戦闘中(ifBattle)、マップ中(ifMap)のテンプレートを追加。
    ※マップ関連のテンプレートについては、マップ版DynamicMotionのページを参照してください。
  • バトラー画像の変更が戦闘終了後に解除されない不具合修正。(10/20 ver1.131)
  • マップ版から戦闘背景として実行した際、戦闘再開でエラーになる不具合修正。(10/20 ver1.131)
  • マップ版の移動処理でスクロールが考慮されていない不具合修正。(10/20 ver1.132)
  • 頭上位置が反映されない不具合修正。(10/29 ver1.133)
  • 各種モーションの設定プラグインで設定した武器振り速度が適用されない不具合修正。(10/29 ver1.134)
  • モーション実行時の切れ目をなくすため微調整。(11/01 ver1.135)

2020/10/15(ver1.12)


2020/10/10(ver1.11)


2020/10/07(ver1.10)


2020/10/04(ver1.09)


2020/09/22(ver1.08 -> 1.081)

  • 実行条件(condition)をリピート項目に変更。
    例:『condition = b.isStateAffected(10)』で対象が睡眠中の場合のみモーション表示。
  • 範囲がなしの場合に対象を取得できずエラーとなる不具合修正。(自身をデフォルトの対象としています。)(09/27 ver1.081)

2020/06/07(ver1.07 -> 1.072)

  • プラグインコマンドに対応。
    例:『plugin = hoge 100 200』という感じで呼び出せます。
    サンプル技も追加しました。
  • ダメージ処理終了後、モーションがクリアされる不具合修正。
  • Z座標をリアルタイム計算するように修正。(ver1.071)
  • v1.06でのテンプレートの修正が、プラグイン本体に反映されていなかったので修正。(09/03 ver1.072)

2020/05/18(ver1.06 -> 1.063)

  • 参照先バトラー(a, b)の変更機能を追加。(※設定はDynamicAnimation側)
  • それに伴い『貫通(pierce)』『前進(stepForward)』『後退(stepBack)』『味方のみ(ifActor)』『敵のみ(ifEnemy)』型のテンプレートを修正。
    ※互換性があるため、反映しなくとも動作上の差は出ません。
  • プラグインの配置がDynamicAnimationより上だと動作遅延する不具合修正。
  • 開発中のダメージ一括表示プラグイン用に調整。(ver1.062)
  • 後発のダメージ表示を前面表示するよう修正。(ver1.061)
  • 空中のキャラを前面表示するよう修正。(ver1.063)
    DynamicAnimation側も多数更新しているため、ご確認ください。

2020/05/09(ver1.05)

  • 大量アニメーションの動作を大幅軽量化。
    それに合わせてモーション側も処理効率化。

2020/05/06(ver1.04)


2020/04/10(ver1.03 -> 1.031)


2020/03/29(ver1.02 -> 1.022)


2020/03/23(ver1.01)

  • コモンイベントの実行機能追加。(詳細
  • スクリプトの実行機能追加。
    サンプル技Aにスクリプトによるズーム処理を追加しました。
  • 実行時間が0だとジャンプしない不具合修正。

2020/03/21(ver1.00 -> 1.002)

  • 公開!
  • パーティが3人以下だとエラーになる不具合修正。(ver1.001)
  • 途中のセーブデータで実行するとエラーになる不具合修正。(ver1.002)

使用方法


 スキル(アイテム)のメモ欄からテンプレートを呼び出すことでバトラーが動作します。以下は接近(near)型のテンプレートを呼び出した例です。
<D-Motion:near/>

 さらにテンプレートに対して、パラメータの追加・上書が可能です。
<D-Motion:near>
frame = 8 // 移動時間
</D-Motion>

 最低限の使用法は上記の通りですが、パラメータは非常に多くあります。
 まずは以下の『基本的な使用法』のページから見ると分かりやすいでしょう。
 その後、『テンプレートの解説』や『プラグインパラメータ一覧』を参照していくのがスムーズです。

 面倒なら『サンプル技』のページがオススメです。ほぼコピペでスキルが作れるので手っ取り早いです。


テンプレートの解説



その他情報



サンプル技



競合について ver1.04


 ver1.04より、表示優先度の変更ができるようになりました。
 ただし、この機能は影響が大きいので競合などの問題が発生する場合は、オフにすることも可能です。

 例えば、『YEP_BattleEngineCore』なども同様の機能を持っています。競合が起きるようなら機能を切って、あちらに任せたほうが無難です。

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

ため技を作成【RPGツクールMZ&MVプラグイン】

2020年11月15日

 ため技を作成するためのプラグインです。
 ツクールMVでまともに動かなくなっていた重大な不具合、および敵が使うとエラーになる不具合を修正しました!(2020/11/15)

 主にターン制やCTB向けです。
 ※ツクールMZのタイムプログレスは想定していません。というか、普通に速度補正で実現できるっぽい?

 ため技は既存プラグインの複合でもある程度は実現可能ですが、少し手順が複雑になります。
 このプラグインはため技の作成に特化し、スキルの作成に必要な手順を簡略化しました。さらにCTBプラグインとの連携でチャージタイムを実現できます。

 主な特徴。

  • CTBプラグインとの連携で技毎にチャージタイム(ため時間)を設定可能。
    ※通常のターン制でも使用できます。
  • チャージタイムを短縮する装備、ステートなども設定可能。
  • MP・TPを消費するタイミングなど詳細な設定も可能。

 以下は紹介動画です。
※画面が小さい場合は右下の全画面表示をクリックしてください。

目次


導入方法

更新履歴

使用方法

本体スキル用のパラメータ

ChargeState(ためステート)

ChargeSkill(ため演出用スキル)

ChargeName(ため演出用名称)

ChargeActionSkill(実行スキル)

ChargeCost(ため演出時に消費)

ChargeTurnException(チャージターンの経過無効)

IfNoCharge(即時発動条件)


ため演出スキル用のパラメータ

NoResult(結果表示なし)

NoStartAction(開始アクションなし)


スキル・装備・ステート用のパラメータ(CTB向け)

ChargeSpeed(チャージ速度)


装備・ステート用のパラメータ(CTB向け)

ChargeSkillType(速度補正用スキルタイプ)


ステート用のパラメータ

StateMotion(ステート中のモーション)

RemoveState(ステート消去)


プラグインパラメータ

chargeTurnException(チャージターンの経過無効)


導入方法


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

 NRP_ChargeSkill.js ver1.022(2020/11/15)

更新履歴


2020/09/12 -> 11/15(ver1.02 -> 1.022)

  • ツクールMZに対応。
  • ため開始演出用スキルを指定しないと落ちる不具合修正。
  • ツクールMVでまともに動かなくなっていた不具合修正。(11/15 ver1.021)
  • 敵が使うとエラーになる不具合修正。(11/15 ver1.022)

2020/06/19(ver1.01)

  • 英語対応。

2020/04/05(ver1.00)

  • 公開!

使用方法


最低限の設定

 まず、ため状態用のステートが必要です。(以下は設定例)

  • 行動制約:『〜を攻撃』のいずれか
  • 解除条件:戦闘終了後に解除
  • 自動解除:行動終了時
  • 継続ターン:1


 後はスキルのメモ欄に『ため状態用ステート』のIDを指定します。
<ChargeState:[ステートID]>

 以上で、次ターンに実行されるスキルの完成です。

 この際、ステートの内容次第で様々な設定が可能です。例えば、魔法詠唱中は防御力が下がるといった設定ができます。また『継続ターン』を伸ばすと、複数ターン勝手にスキルを実行する暴走技などが作れます。

ため開始演出

 ため開始時の演出が必要な場合は、『ため演出用スキル』を指定できます。


 演出だけなので効果は『なし』で構いません。ただし、アニメーションを表示したい場合は範囲を指定してください。

 なお、メッセージを表示する設定の場合、「効果はなかった」というメッセージが表示されてしまいます。『演出用スキル』のメモ欄に以下を記入すれば防げます。
<NoResult>

 次に『本体スキル』のメモ欄に『ため演出用スキル』を呼び出す設定を記述します。(以下例)
<ChargeSkill:99>
<ChargeName:ファイア>

  • 『ChargeSkill』により、99番の演出用スキルを実行します。
  • 『ChargeName』により、該当スキルの技名を「ファイア」に書き換えます。
    これによりためを開始する際、画面に表示する技名を自由に変更できます。

CTB用の設定

 CTB用プラグインと併用すれば、チャージタイムの設定が可能です。
<ChargeSpeed:+50>

 上記のように記述すれば、速度補正+50%となります。元の値が100%なので、通常の1.5倍速でためを実行します。

 上記の指定は『スキル』『装備』『ステート』のそれぞれに有効です。
 さらに『装備』『ステート』の場合はスキルタイプの指定も可能です。

<ChargeSkillType:1>

 初期状態では1:魔法、2:必殺技です。カンマ区切りで『1,2』というように複数指定も可能です。(指定がなければ全てが対象)
 これにより「魔法のチャージタイムを半減する装備やステート」などが実現できます。

 大まかな機能は以上ですが、当プラグインではより詳細な設定が可能です。
 メモ欄に記入できる機能を以下で解説します。

本体スキル用のパラメータ


 一部はJavaScript計算式を使えます。その際、行動主体は『a』で参照可能です。

<ChargeState:[ステートID]>(ためステート)

 スキル発動までの『ため状態』となるステートを指定します。
 これがなければ、当プラグインのため技は機能しません。

<ChargeSkill:[スキルID]>(ため演出用スキル)

 ため開始演出用スキルのIDを設定します。
 ため開始時のアニメーションを表示したり、メッセージを表示することができます。
 指定がない場合、何も表示せずため状態に入ります。

<ChargeName:[名称]>(ため演出用名称)

 『ChargeSkill』の指定がある場合、ため開始演出用スキルの表示名を設定します。
 [名称]をブランクにすれば、技名を表示しないことも可能です。

 オススメは以下のような書き方です。
<ChargeName:item.name>

 『item.name』には本体スキルの名称が入っています。つまり、ため開始演出用スキルに本体スキル名を引き継げます。

<ChargeActionSkill:[スキルID]>(実行スキル)

 ため終了後に発動するスキルのIDを指定します。

 通常はそのまま本体スキルを使用するので不要です。
 JavaScriptの式と組み合わせれば、ランダムで発動するスキルなども作れます。

<ChargeCost>(ため演出時に消費)

 MP・TPをため開始時に消費するよう変更します。
 ※初期状態だとMP・TPは本体スキル実行時に消費されます。

<ChargeTurnException:[true/false]>(チャージターンの経過無効)

 『true』を指定すると、ため開始時にステートなどのターン経過を無視します。具体的には『ステート&能力変化のターン経過』『毒のダメージ効果』を行いません。

 この設定はプラグインパラメータで初期値を指定可能です。

<IfNoCharge:[条件]>(即時発動条件)

 指定した式を満たす場合、ためを省略してスキルを即時発動します。

ため演出スキル用のパラメータ


<NoResult>(結果表示なし)

 スキル使用時の結果表示を行いません。
 メッセージを表示する設定の際、「効果がなかった」のメッセージを表示したくない場合など。

<NoStartAction>(開始アクションなし)

 スキル使用時の一歩前進や技名表示を行いません。
 アニメーションだけ表示したい場合など。

スキル・装備・ステート用のパラメータ(CTB向け)


<ChargeSpeed:[数値]>(チャージ速度)

 元の値を100%(=1ターン)として、ため速度を変更します。
 『+-*/』いずれの符号も使用できます。例えば『*2』ならば2倍速です。
 符号を省略すると+として扱います。

 『スキル』『装備』『ステート』のそれぞれに設定可能です。
 なお、CTBでは値が2000を超えると即時発動となる仕様です。

 また、計算順序はスキル→装備→ステートの順番になっています。
 例えばスキルに『+100』、装備に『*2』を指定した場合、『(100 + 100) * 2 = 400』。つまり、4倍速でためを行います。

 その他にもJavaScript計算式と組み合わせれば、「魔力が上がるほど詠唱が速くなる」などの設定も可能です。

装備・ステート用のパラメータ(CTB向け)


<ChargeSkillType:[数値]>(速度補正用スキルタイプ)

 特定のスキルタイプのみ『ChargeSpeed』による速度補正をかけます。
 初期状態では1:魔法、2:必殺技です。カンマ区切りで『1,2』というように複数指定も可能です。(指定がなければ全てが対象)
 これにより「魔法のチャージタイムを半減する装備やステート」などが実現できます。

ステート用のパラメータ


<StateMotion:[モーション名]>(ステート中のモーション)

 ステート中の待機モーションを設定します。

■モーション一覧(※アルファベットで指定してください)
  • attack(攻撃)
  • walk(前進)
  • wait(通常待機)
  • chant(詠唱待機)
  • guard(防御)
  • damage(ダメージ)
  • evade(回避)
  • thrust(突き)
  • swing(振り)
  • missile(飛び道具)
  • skill(汎用スキル)
  • spell(魔法)
  • item(アイテム)
  • escape(逃げる)
  • victory(勝利)
  • dying(瀕死)
  • abnormal(状態異常)
  • sleep(睡眠)
  • dead(戦闘不能)

 具体的にどのようなモーションかを知りたければ、ツクールMVヘルプにある『サイドビューキャラ規格』を参照するとよいかもしれません。

<RemoveState:[ステートID]>(ステート消去)

 ステートにかかった際、指定したIDの別ステートを解除します。
 例えば、「沈黙にかかった際に魔法スキルのため状態を解除する」といった用途を想定しています。

プラグインパラメータ


chargeTurnException(チャージターンの経過無効)

 『true』を指定すると、初期状態でため開始時にステートなどのターン経過を無視するようになります。
 上記の『ChargeTurnException』の初期設定に相当します。

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

ゲームウィンドウのサイズを変更&オプションに追加【RPGツクールMZ&MVプラグイン】

2020年11月09日

 ゲーム全体のウィンドウサイズを変更します。また、オプション画面にも変更機能を追加できます。


 主な特徴。

  • 解像度とは別に独立してウィンドウサイズを設定可能。
  • YEP_CoreEngineのウィンドウサイズを解像度に合わせる仕様を無効化。
    ※この仕様は妨げになるため、無効化する必要があります。
  • オプション画面にウィンドウサイズの変更機能を追加可能。
    変更すると以降、起動時にも反映されます。

 なお、モバイルやブラウザ起動では意味がないので、このプラグインは自動で無効化されます。

目次


導入方法

更新履歴

使用方法

注意点

プラグインパラメータ

ウィンドウ横幅 (windowWidth )

ウィンドウ縦幅 (windowHeight )


プラグインパラメータ(オプション)

オプションに表示 (useOption )

オプション挿入位置 (optionPosition) ver1.021

オプション表示名 (optionName )

オプション表示形式 (optionDispType )

最小ウィンドウサイズ (windowSizeMin )

最大ウィンドウサイズ (windowSizeMax )

変更単位(windowSizeOffset )


プラグインパラメータ(外部連携)

SceneManager.runを上書 (overWriteSceneManagerRun )


導入方法


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

 NRP_GameWindowSize.js ver1.021(2020/11/09)

 ※YEP_CoreEngineと併用する場合は、このプラグインをすぐ下へ配置してください。解像度とは独立してウィンドウサイズだけを変更できます。

更新履歴


2020/11/09(ver1.02 -> 1.021)

  • MZにてオプションからウィンドウサイズを変更した際、マウスカーソル下の項目にフォーカスが移動してしまう問題に対応。
  • オプション挿入位置を変更可能にした。(ver1.021)
    ※MZの場合、デフォルトの挿入位置が以前のverと変化しますのでご注意!

2020/08/26(ver1.01)

  • ツクールMZに対応。

2020/06/03(ver1.00)

  • 公開!

使用方法


 導入すれば、タイトル&メニューのオプション画面にウィンドウサイズの項目が追加されます。
 後はプラグインパラメータの説明を参考にお好みで調整してください。

 もちろん、初期状態のウィンドウサイズも設定可能です。

注意点


 注意点として、ゲームを起動した瞬間のウィンドウサイズは、このプラグインでは変更できません。通常は一拍遅れて、ウィンドウサイズが切り替わるはずです。

 起動した瞬間のウィンドウサイズは、プロジェクト直下の『package.json』で設定できます。
 標準のウィンドウサイズを変更する場合は、こちらの値も合わせておくとベターです。起動直後にウィンドウサイズが切り替わる挙動を抑制できます。

 ※ツクールMZではデータベースのシステム2にある『画面の幅』『画面の高さ』によって、『package.json』の値が上書きされます。ファイルを直接書き換えても意味がないのでご注意ください。
 ただし、ここで設定を変更しても表示上の解像度が変化せず、ゲームのウィンドウサイズだけが変化してなんかおかしいです。これについては調査中です。

プラグインパラメータ


ウィンドウ横幅 (windowWidth )

ウィンドウ縦幅 (windowHeight )

 標準とするウィンドウの横幅と縦幅(枠除く)です。
 初期値の『Graphics.width』と『Graphics.height』は解像度と同じ値になります。

 値を変更する場合も『Graphics.width * 2/3』というようにすれば、解像度に対する比率で入力できます。細かい計算が不要となるので便利です。

 ※ver1.00では『SceneManager._screenWidth, screenHeight』を使用していましたが、MZでは無効となるため『Graphics.width, height』に変更しました。こちらはMV、MZの両方で有効です。

プラグインパラメータ(オプション)


オプションに表示 (useOption )

 ウィンドウサイズの変更機能をオプション画面(タイトル、メニュー)に追加します。

オプション挿入位置 (optionPosition)ver1.021

 オプション画面に項目を挿入する位置です。
 初期値は2。コマンド記憶の下になります。

オプション表示名 (optionName )

 オプション画面での表示名を設定します。

オプション表示形式 (optionDispType )

 オプション画面での表示形式を設定します。
 例えば、以下のように表示されます。

  • %表示:100%
  • 横*縦表示:816*624

 66.6...%など半端な%表示になる場合も『横*縦表示』ならごまかせます。

最小ウィンドウサイズ (windowSizeMin )

最大ウィンドウサイズ (windowSizeMax )

 変更可能な最小〜最大のウィンドウサイズです。
 初期値は50〜150(%)です。

変更単位(windowSizeOffset )

 ウィンドウサイズの変更単位(間隔)です。
 初期値は25(%)です。

 100/3(=33.3..)というように分数などの式も使えます。
 ※分数のほうが綺麗な比率(ドットが崩れにくい)を求めやすいという利点もあります。

 あまりないと思いますが、最小・最大ウィンドウサイズと噛み合わない場合は、表示がおかしなことになるので注意です。例えば、変更単位が50なのに、最小・最大が75〜125など。

プラグインパラメータ(外部連携)


SceneManager.runを上書 (overWriteSceneManagerRun )

 SceneManager.run関数を上書きします。

 一見、意味不明ですが、要するにYEP_CoreEngineのウィンドウサイズ変更を無効化するための機能です。
 YEP_CoreEngineを併用しない場合は余計なので、オフ推奨です。

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