イベント実行中の自律移動を停止【RPGツクールMZ&MVプラグイン】

2022年03月31日

 イベント実行中に、各イベントの自律移動を停止します。
 イベント時に町人や敵シンボルが好き勝手に動かないよう制御できます。


 並列処理でイベントが実行されている場合は、対象外となります。
 ただし、メッセージ表示処理のみ例外的に対象となります。

 ※既存の『StopSelfMovementWithPlayer.js』と同等の機能ですが、イベント数の二乗に比例して負荷が激増する問題に対処しています。

目次


導入方法(Install)

更新履歴(History)

使用方法(Usage)

イベントのメモ欄(Note of Events)

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

停止スイッチ(StopSwitch)

並列メッセージ中も停止(StopParallelMessage)

参考(Reference)


導入方法(install)


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

 NRP_StopSelfMovement.js ver1.00(2022/03/31)

関連プラグイン

[MZ]CommonMoveRouteMZ.jsに機能追加

 CommonMoveRouteMZ.jsに対して自律移動の停止機能を追加するプラグインです。今回の更新に伴い、こちらにも軽量化処理を施しています。

更新履歴(History)


2022/03/31(ver1.00)

  • 公開!

使用方法(Usage)


 プラグインを適用するだけで有効になります。

 状況によって切り替えたい場合は、プラグインパラメータの『停止スイッチ』を指定してください。
 スイッチがオンの場合のみ、イベント実行中の自律移動が停止します。

イベントのメモ欄(Note of Events)


<ForceSelfMovement>

 状況に関わらず、強制的に自律移動を実行させます。
 例えば、自律移動でアニメーションさせているオブジェクトなど、イベント中に停止しては違和感があるものに活用できます。

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


停止スイッチ(StopSwitch)

 イベント実行中の自律移動を停止するスイッチです。
 未指定の場合は常に有効とします。

並列メッセージ中も停止(StopParallelMessage)

 並列処理によるメッセージ表示中も自律移動を停止します。

参考(Reference)


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

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

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

DynamicMotionをマップ上で起動【RPGツクールMZ&MVプラグイン】

2022年03月22日

 DynamicMotionをマップ上から起動します。
 回転や拡大、自在な移動など通常では困難な動作をキャラクターにさせられます。


 このプラグインの動作には、以下のプラグインが必要です。
 ※このプラグイン自体はMVとMZの両方で有効です。

MZ版


MV版


 登録すれば、マップ上でのDynamicMotionが有効となります。
 起動はNRP_DynamicAnimationMapのプラグインコマンドから行います。

目次


導入方法(install)

更新履歴(history)

サンプル(sample)

DynamicMotion:追加テンプレ―ト(Map Template)

戦闘中(ifBattle)

マップ中(ifMap)

遠隔(ifDistant) ver1.04

隣接(ifAdjacent) ver1.04


DynamicMotion:マップ用の変更テンプレ―ト(Mod Map Template)

接近(near)

背後(back)

前進(stepForward)

後退(stepBack)

帰還(return)

ホーム(home)


DynamicMotion:マップ用の追加テンプレ―ト(Add Map Template)

対象を向く(turnToward)

反対を向く(turnAway)

モーションクリア(clear) ver1.04


DynamicMotion:マップ用の追加パラメータ(Map Parameter)

グリッド終点X座標(gridEx)

グリッド終点Y座標(gridEy)

向き(direction)

パターン(pattern)

画像(image)

画像インデックス(imageIndex)


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

重複実行禁止(NoMultipleMotion)

移動先座標の四捨五入(RoundCoordinate)

移動時の足踏み(StepOnMove)

プレイヤーのスクロール連動(PlayerOnScroll)


プラグインパラメータ(接近時)(Plugin Parameter Near)

対象の大きさを考慮(ConsiderSize)

接近時の座標の丸め方(RoundTypeNear)


戦闘時との挙動の差異

テンプレートの挙動

a, bの参照先(上級者向け)


導入方法(install)


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

 NRP_DynamicMotionMap.js ver1.09(2022/03/22)

 さらに以下のプラグインを最新に更新してください。
 ※バージョンに食い違いがあると動作しない可能性があります。

MZ版

 NRP_DynamicAnimationMZ.js ver1.16(2021/04/24)
 NRP_DynamicMotionMZ.js ver1.12(2021/04/24)
 NRP_DynamicAnimationMapMZ.js ver1.09(2021/04/24)

MV版

 NRP_DynamicAnimation.js ver1.24(2021/04/24)
 NRP_DynamicMotion.js ver1.18(2021/04/24)
 NRP_DynamicAnimationMap.js ver1.09(2021/04/24)

 ※上記3つのプラグインよりも、必ず下に配置してください。

更新履歴(history)


2022/03/22(ver1.09)

  • プレイヤーを移動させたら、画面スクロールの中心がわずかにズレる不具合を修正。

2022/01/20(ver1.08)

  • CharacterGraphicExtend.jsおよびEventEffect.jsとの競合対策。回転処理が無効になってしまう問題に対応しました。
    ※それらのプラグインより当プラグインを下に配置してください。

2021/07/24(ver1.07)

  • MZにてプレイヤーを移動させた場合、スクロールがわずかにズレる不具合を修正。

2021/05/07(ver1.06)

  • イベント全体の動作が重くなる重大な不具合を修正。

2021/04/24(ver1.05)

  • 並列処理からマップ版DynamicAnimationMZを起動した場合、セーブデータの作成に失敗することがある重大な不具合を修正。
    ※各関連プラグインも最新に更新してください。

2020/11/08 -> 11/10(ver1.04)

  • 『ifAdjacent』『ifDistant』テンプレートの追加に伴い機能改修。
  • 他、マップ版テンプレート用にソースを調整。
  • 『a』の参照先が常にスキルの使用者になっていた不具合を修正。(11/10)
    ※修正はNRP_DynamicMotion側なので、そちらを更新してください。

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


2020/11/05(ver1.03)

  • 外部プラグインとの連携用に調整。
  • ウェイトの数値指定がない場合、アニメーションの終了までウェイトされない不具合修正。
  • 衝突(crash)のテンプレートを追加。
    ※外部プラグインとの連携用の変更であるため、動作に大差はありません。

2020/10/18 -> 11/01(ver1.02 -> 1.023)

  • プレイヤーキャラを動作させた場合、スクロールを連動させるようにした。
  • それに伴い『プレイヤーのスクロール連動』のプラグインパラメータを追加。
  • DynamicAnimationMapで戦闘からプラグインコマンドを実行した場合、エラーになる不具合修正。(ver1.021)
    ※NRP_DynamicAnimationMap側も1.06に更新してください!
  • 設定に反してジャンプ時に足踏みしてしまう不具合修正。(10/20 ver1.022)
  • MVの移動処理でスクロールが考慮されていない不具合修正。(10/20)
    ※修正はDynamicMotion側(ver1.132)なので、そちらを更新してください。
  • モーション実行時の切れ目をなくすため微調整。(11/01 ver1.023)

2020/10/17(ver1.01)


2020/10/15(ver1.00)

  • 公開!

サンプル(sample)



 マップ用に特化したサンプルを用意しましたので、参考にどうぞ。



DynamicMotion:追加テンプレ―ト(Add Template)


 スキルに設定できるテンプレートです。既存のテンプレートについては、DynamicMotionのページをご覧ください。
 以下は共通のテンプレート一覧に登録されているのですが、マップ用を想定しているためここでも紹介します。

戦闘中(ifBattle)

マップ中(ifMap)

 戦闘画面およびマップ画面、それぞれでのみ動作する処理を作成できます。
<D-Motion:ifBattle&near/>
<D-Motion:ifMap&back/>

 上記の例ならば戦闘画面ではnear、マップ画面ではbackが実行されるスキルとなります。

遠隔(ifDistant)ver1.04


 マップ上にて、モーションの実行者と対象者が隣接していない場合のみ実行します。
<D-Motion:turnToward&soon/>
<D-Motion:near&ifDistant/>
<D-Animation:wait/>
<D-Motion:return&ifDistant/>


 例えば、上記では対象と離れたマスにいる場合のみ、接近&帰還処理を行います。対象と隣接している場合は、即座にアニメーションを表示します。このように無駄な移動演出をさせたくない場合に有効です。
 また、戦闘時には常に有効となります。

 それから、上記の場合はアニメーションにwaitの指定を行う必要があることに注意してください。<D-Motion:return&ifDistant/>の省略によって、前の動作を待つこともなくなってしまうためです。

隣接(ifAdjacent) ver1.04


 マップ上にて、モーションの実行者と対象者が隣接している場合のみ実行します。
 つまり『遠隔(ifDistant)』とは正反対に動作をします。
 また、戦闘時には常に無効となります。

DynamicMotion:マップ用の変更テンプレ―ト(Mod Map Template)


 マップ用テンプレート一覧に登録されたテンプレートです。戦闘用にも同名同IDのテンプレートがありますが、マップ用の設定が優先されます。テンプレートを変更する場合は、間違えないように注意してください。

接近(near)

 対象の隣へ移動します。正確には、対象の上下左右四座標の中で行動主体に最も近い座標へと移動します。

衝突(crash)

 対象と同じ座標へ移動します。

背後(back)

 対象の背後へ移動します。正確には、対象の上下左右四座標の中で行動主体に最も遠い座標へと移動します。

前進(stepForward)

 行動主体の向いている方向へ一歩前進します。

後退(stepBack)

 行動主体の向いている反対方向へ一歩後退します。

帰還(return)

 プラグインコマンドを実行した際、行動主体が元いた位置へとジャンプして戻ります。
 なお、位置に変化がない場合はジャンプを省略します。

ホーム(home)

 プラグインコマンドを実行した際、行動主体が元いた位置へと戻ります。
 帰還(return)との違いはジャンプの有無と所要時間の差ぐらいです。

DynamicMotion:マップ用の追加テンプレ―ト(Add Map Template)


 マップ用テンプレート一覧に登録された新規のテンプレートです。マップ上でのみ使用できます。

対象を向く(turnToward)

 行動主体が対象の方向を向きます。
 stepForwardと同時に組み合わせても、前進してから遅れて方向転換するので注意です。
<D-Motion:turnToward&soon/>
<D-Motion:stepForward/>

 例えば、上記のようにすれば対象を向いてから前進してくれます。

反対を向く(turnAway)

 行動主体が対象の反対方向を向きます。

モーションクリア(clear)ver1.04

 マップ上でのモーションをクリアします。
 特定のプラグインとの組み合わせでのみ効果を発揮します。(後日解説予定)

DynamicMotion:マップ用の追加パラメータ(Map Parameter)


 マップ上からDynamicMotionを起動した際、新たに以下のパラメータが有効となります。

グリッド終点X座標(gridEx)

グリッド終点Y座標(gridEy)

 終点(移動先)のX座標、Y座標です。ex, eyとは異なり、こちらはグリッド単位の座標になります。

 例えば、座標(x=10, y=5)に移動したい場合は以下のように記述します。
<D-Motion>
gridEx = 10
gridEy = 15
</D-Motion>

 また、gridSx, gridSyで始点を参照可能です。
<D-Motion>
gridEx = gridSx + 1
gridEy = gridSy + 1
</D-Motion>

 上記のように記述すると、現在座標から一つ右下へとキャラが移動します。

 さらに、省略形としてgx, gyが有効です。
<D-Motion>
gx = a.gx + 1
gy = a.gy + 1
</D-Motion>

 『a.gx』『b.gy』というように行動主体や対象の現在グリッド座標を参照することも可能です。こちらのほうが簡潔に書けるのでオススメかもしれません。

向き(direction)

 キャラクターの向きを指定します。
 『2:下』『4:左』『6:右』『8:上』となります。
 数値の他、"up", "down", "left", "right"の文字列でも指定可能です。

パターン(pattern)

 キャラクターのパターン(足踏み)を指定します。
 『0:左』『1:中央』『2:右』となります。

画像(image)

 キャラクターの画像を指定ファイル(拡張子不要)へ変更します。
 画面切替で元に戻ります。

 ちなみに、戦闘中に使用してもバトラー画像を変更できます。
 元々、戦闘用にbattlerImageという項目があったのですが、imageに統合しました。マップ上ではキャラクター、戦闘中はバトラーを自動で対象とします。

画像インデックス(imageIndex)

 キャラクター画像のインデックス(0-7)を変更します。
 画面切替で元に戻ります。
<D-Motion>
image = "Actor2"
imageIndex = 5
</D-Motion>

 というようにimageとimageIndexを組み合わせてキャラクター画像を変更できます。片方だけ指定することも可能です。

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


重複実行禁止(NoMultipleMotion)

 イベントに対するDynamicMotionの重複実行を禁止します。
 これにより想定外の挙動を防止します。

移動先座標の四捨五入(RoundCoordinate)

 イベントの移動先のグリッド座標が小数だった場合、四捨五入します。
 ※グリッド座標はピクセル単位では48の倍数(標準)に相当します。

 小数座標への静止はツクール側で想定していないらしく、操作を受け付けなくなるなどの不具合を生じます。それを回避するための措置です。
 複数回の移動を組み合わせた場合、最終的な移動先に対して調整を行います。途中の動作については、小数座標に留まることも可能です。

 半歩移動などのプラグインと組み合わせる場合を想定して、オフにできるようにしています。その場合も上記の問題にご注意ください。

移動時の足踏み(StepOnMove)

 移動時の足踏み方法を指定します。
 初期状態ではジャンプ以外の移動時は、足踏みをするようになっています。

 パターン(pattern)を指定した場合はそちらが優先されます。

プレイヤーのスクロール連動(PlayerOnScroll)

 プレイヤーを動作させた場合、スクロールを連動させます。
 オフの場合はデフォルトの処理をそのまま用います。

プラグインパラメータ(接近時)(Plugin Parameter Near)


 接近時の挙動を調整します。
 主にnear(back)テンプレートに関係します。

対象の大きさを考慮(ConsiderSize)

 接近時、対象の大きさを考慮します。
 オフの場合は対象の大きさを1グリッドと見なします。

接近時の座標の丸め方(RoundTypeNear)

 接近時のグリッド座標の丸め方です。
 10.5のような座標に移動した際、処理に統一感を出します。

 基本的には『移動先座標の四捨五入』と『対象の大きさを考慮』をオンにした場合の調整に使います。
 この項目がオフの場合、サイズ(ビッグモンスターなど)の大きな対象へ接近する際、方向によって不揃いなグリッドに移動してしまう場合があります。これは移動先の座標が四捨五入されてしまうためです。
 それらの違和感をなくすための措置がこの項目です。

戦闘時との挙動の差異


 仕様上、戦闘時とは挙動が色々と異なるため、その点をまとめました。

テンプレートの挙動

 マップ上では一部のテンプレートの挙動が異なるのは前述のとおりです。
 その他にも、当然ながら武器を振るなどのモーション系は軒並み効果がありません。キャラチップによるモーションを作りたい場合は、別途画像を用意して実装する必要があります。

a, bの参照先(上級者向け)

 戦闘中はa.hp, b.atkというように、a=行動主体, b=対象としてGame_Battlerの情報にアクセスできました。(少なくとも現在のバージョンの標準では)
 ……が、マップ版では挙動が異なり、参照先はGame_Characterではありません。a, bはSprite_Characterとなっています。
 ※理由:Game_Characterの座標情報(x, y)はグリッド座標基準であるため。戦闘中との仕様差異が大きくなるため。

 もし、Game_Characterにアクセスしたい場合は『a._character』『b._character』で参照できます。基本的にマップ上ではSprite_CharacterよりもGame_Characterを中心として制御しているらしく、こちらのほうが有用な情報&関数を多く保有している傾向があります。

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

GALV_LayerGraphicsMZとの競合を解消&機能追加【RPGツクールMZプラグイン】

2022年03月12日

 当ブログのNRP系プラグインとGALV_LayerGraphicsMZとの競合を解消します。
 ※遠景周りの機能については、新たに自在に遠景(近景)を表示するプラグインを公開しています。今後は主にあちらを更新していく予定です。

 GALV_LayerGraphicsMZ(Galv様)は画像レイヤーを追加するプラグインです。
 遠景・近景を自由に設定できるので、マップ上に浮かぶ雲やスクロールする背景などの演出が可能となります。個人的にも大変重宝しています。
 ※ムノクラ様による日本語化パッチもあります。


 しかしながら、NRP_DynamicMotionMZおよびNRP_TroopRandomFormation(敵の自動配置)といったプラグインと併用すると、敵の表示が不自然な重なり方をしてしまう問題があります。


 そこで競合を解消するためのプラグインを作成しました。
 ついでにループマップへの対応など、ちょっとした機能追加もしています。

 ※GALV_LayerGraphicsMZ ver1.2で動作確認しています。
 ※Galv様の利用規約ではプラグイン&スクリプトを改変して配布するのは禁止となっています。そのため、元のソースは流用しない方式でプラグインを作成しています。


目次


導入方法(Install)

更新履歴(History)

使用方法(Usage)

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

ループマップに対応(SupportLoopMap)

静的レイヤーの既定マップ(SupportStaticLayerDefaultMap)

DynamicMotionとの競合解消(ForDynamicMotion)

ズームアウトに対応(SupportZoomOut)


導入方法(install)


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

 NRP_GALV_LayerGraphicsMZ.js ver1.041(2022/03/12)

更新履歴(History)


2022/02/05 -> 2022/03/12(ver1.04 -> 1.041)


2022/01/11(ver1.03)


2021/10/28 -> 2021/11/11(ver1.02 -> 1.021)

  • メニューを開閉した際、レイヤー位置が保持されない不具合修正。
  • イベントテストでエラーになる不具合修正。(11/11 ver1.021)

2021/10/08(ver1.01)

  • マップのスクロール命令が反映されない不具合修正。

2021/06/27(ver1.00)

  • 公開!

使用方法(Usage)


 適用するだけでOKです。
 詳細は以下のプラグインパラメータの説明をご覧ください。

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


ループマップに対応(SupportLoopMap)

 LayerGraphicsをループマップに対応させます。ループをまたぐ際に表示がズレないようになります。

静的レイヤーの既定マップ(SupportStaticLayerDefaultMap)

 静的レイヤー作成時、マップIDの指定がない場合は現在のマップを参照するようにします。
 ※通常のレイヤーに関しては、最初からこの機能がある模様です。

DynamicMotionとの競合解消(ForDynamicMotion)

 NRP_DynamicMotionMZ、およびNRP_TroopRandomFormationとの競合を解消します。適用すると敵のZ座標が、GALV_LayerGraphicsMZの設定値(変更不可)から変更されます。

 GALV_LayerGraphicsMZの設定値=2 → NRP_DynamicMotionMZの既定値=3

 となります。

 この値はNRP_DynamicMotionMZの『バトラーのZ座標』のプラグインパラメータを参照していますので、変更も可能です。
 なお、Z座標とはGALV_LayerGraphicsMZの『zLevel』に相当します。各画像の表示優先度を調整するための値です。

ズームアウトに対応(SupportZoomOut)

 ズームアウト処理に対応します。
 外部プラグイン(Keke_FreeCamera.jsなど)から画面のズームアウトを行った際、本来の画面外が表示されなくなる問題に対応します。



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