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

2021年07月24日

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

 (2021/05/07)※イベント全体の動作が重くなる重大な不具合を修正しました! お手数ですがご利用の方は更新をお願いします。


 このプラグインの動作には、以下のプラグインが必要です。
 ※このプラグイン自体は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.07(2021/07/24)

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

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)


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 19:27 | RPGツクールMZ&MV | このブログの読者になる | 更新情報をチェックする