ウィンドウをページ化【RPGツクールMVプラグイン】

2020年05月30日

 各種ウィンドウを左右でページ切替できるようにします。また、カーソルが上下でループするようになる機能も含まれています。
 要するにドラクエっぽい挙動になります。


 導入するだけで、アイテム・スキルなどのウィンドウがページ切替できるようになります。これは戦闘・非戦闘を問わず適用されます。
 実装にもよりますが、ユーザが導入したプラグインによる独自メニューにも効果があります。
 なお、マウス操作の場合は元のままホイールでスクロールします。

 このプラグインには、カーソルのループプラグインの内容も含まれています。好きなほうを一つだけ適用すればOKです。

目次


導入方法

更新履歴

プラグインパラメータ

一列でもページを使用(usePageCol1)

カーソルを左右反対へ(cursorReverse)

カーソルを一旦停止しない(noStopCursor)

末尾の空欄を有効に(selectOverLastSpace)


プラグインパラメータ(ページカーソル関連)

ページカーソル横位置(pageCursorHorizontal)

ページカーソル縦位置(pageCursorVertical)

ページカーソル左の画像(pageCursorLeftImage)

ページカーソル右の画像(pageCursorRightImage)

ページカーソル左X調整(pageCursorLeftAdjustX)

ページカーソル左Y調整(pageCursorLeftAdjustY)

ページカーソル右X調整(pageCursorRightAdjustX)

ページカーソル右Y調整(pageCursorRightAdjustY)


導入方法


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

 NRP_PageWindow.js ver1.00(2020/05/30)

更新履歴


2020/05/30(ver1.00)

  • 公開!

プラグインパラメータ


一列でもページを使用(usePageCol1)

 一列のウィンドウでもページを使用します。
 例えば、ショップや戦闘時のコマンドが対象となります。


カーソルを左右反対へ(cursorReverse)

 ページ切替後、カーソル位置を左右反対へ移動します。


カーソルを一旦停止しない(noStopCursol)

 ウィンドウ端でカーソルが一旦停止しないようにします。
 初期状態はfalseです。

末尾の空欄を有効に(selectOverLastSpace)

 最終要素よりも後ろの空欄にカーソルを合わせられるようにします。
 ただし、これは通常想定されていない挙動です。導入しているプラグインによっては、空欄にカーソルを合わせるとエラーになる可能性もあります。

 初期状態はfalseです。この場合は最終要素に自動でカーソルを合わせます。

プラグインパラメータ(ページカーソル関連)


 ページの切替可能を示すカーソルの表示設定です。
 初期状態では、ウィンドウの右下に左右の矢印を表示します。

ページカーソル横位置(pageCursorHorizontal)

 ページカーソルの横位置です。
 『左』『中央』『右』『左右』の4種類から選択可能です。
 『左右』の場合、ウィンドウの両サイドにカーソルを表示します。


ページカーソル縦位置(pageCursorVertical)

 ページカーソルの縦位置です。
 『上』『中央』『下』の3種類から選択可能です。

ページカーソル左の画像(pageCursorLeftImage)

 左向きページカーソルの画像をピクチャーで指定します。
 指定なしならシステム画像の左矢印を用います。

ページカーソル右の画像(pageCursorRightImage)

 右向きページカーソルの画像をピクチャーで指定します。
 指定なしならシステム画像の右矢印を用います。

ページカーソル左X調整(pageCursorLeftAdjustX)

 左向きページカーソルのX位置を調整します。

ページカーソル左Y調整(pageCursorLeftAdjustY)

 左向きページカーソルのY位置を調整します。

ページカーソル右X調整(pageCursorRightAdjustX)

 右向きページカーソルのX位置を調整します。

ページカーソル右Y調整(pageCursorRightAdjustY)

 右向きページカーソルのY位置を調整します。

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

カーソルを上下左右でループさせる【RPGツクールMVプラグイン】

2020年05月23日

 各種ウィンドウにて、カーソルが上下左右にループするよう挙動を変更します。
 地味に便利なプラグインです。


 導入するだけで、アイテム・スキルなどのウィンドウでカーソルがループするようになります。これは戦闘・非戦闘を問わず適用されます。
 実装にもよりますが、ユーザが導入したプラグインによる独自メニューにも効果があります。

目次


導入方法

更新履歴

プラグインパラメータ

左右もループする(loopLR)

カーソルを一旦停止しない(noStopCursol)

末尾の空欄を有効に(selectOverLastSpace)


導入方法


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

 NRP_LoopCursor.js ver1.001(2020/05/28)

更新履歴


2020/05/23(ver1.00 -> 1.001)

  • 公開!
  • カテゴリのアイテムが0件だと空欄選択できない不具合修正。(ver1.001)

プラグインパラメータ


左右もループする(loopLR)

 左右の移動もループさせます。

 初期状態はtrueです。
 falseだとMVの標準の挙動のままです。「左だと上段」「右だと下段」にカーソルが移動していきます。

カーソルを一旦停止しない(noStopCursol)

 ウィンドウ端でカーソルが一旦停止しないようにします。
 初期状態はfalseです。

末尾の空欄を有効に(selectOverLastSpace)

 最終要素よりも後ろの空欄にカーソルを合わせられるようにします。
 ただし、これは通常想定されていない挙動です。導入しているプラグインによっては、空欄にカーソルを合わせるとエラーになる可能性もあります。

 初期状態はfalseです。この場合は最終要素に自動でカーソルを合わせます。

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

敵グループの配置を自動化&ランダム化【RPGツクールMVプラグイン】

2020年05月14日

 敵グループの配置を自動化&ランダム化するプラグインです。


 ツクールMVでは敵グループの設定画面に整列機能がありますが、これは基本的にフロントビュー用です。敵を左からまっすぐ並べるだけなので、サイドビューでは全く不自然になります。
 そこでサイドビューでの敵の配置を自動化するプラグインを作成しました。

自動配置の仕様

  • 指定した範囲内に対して、ランダムで敵を配置。
  • グリッド単位で座標を検査し、適切な間隔を確保できれば配置確定。
  • 確保できなければ何度も繰り返して、最もマシな配置を選び出す。
  • 敵が一体の場合は中央に配置。

 仕様上、同じ敵グループでもエンカウントする度に配置が変わります。
 前述の通り基本的にはサイドビュー用ですが、フロントビューにも一応は対応しています。

目次


導入方法

更新履歴

使用方法

注意点

外部連携

プラグインパラメータ(適用条件)

実行条件(condition)

除外条件(exclusionCondition)


プラグインパラメータ(配置範囲)

開始X座標(左)(startX)

終了X座標(右)(endX)

開始頭上Y座標(上)(startHeadY)

開始足元Y座標(上)(startFootY)

終了Y座標(下)(endY)

グリッドサイズ(gridSize)


プラグインパラメータ(敵の並び順)

同列とみなす範囲(sameRowBorder)

基準となるX座標(sortBaseX)


プラグインパラメータ(敵が一体の場合)

単体時の配置(singleEnemyPosition)

単体時のX座標(singleEnemyX)

単体時のX座標(singleEnemyY)


プラグインパラメータ(演算方法)

演算方式(algorithmType)

グループ当たりの試行回数(maxTryNoForTroop)

一体当たりの試行回数(maxTryNoForEnemy)

確定とする距離評価値(distanceBorder)


導入方法


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

 NRP_TroopRandomFormation.js ver1.021(2020/07/30)

更新履歴


2020/05/31(ver1.02 -> 1.021)


2020/05/15(ver1.01)

  • 処理を『座標総当り方式』へと一新して配置を安定化。
    ※旧処理(ランダム繰り返し方式)も選択できますが非推奨です。
  • グリッドの基準位置を右下に変更。

2020/05/14(ver1.00)

  • 公開!

使用方法


 初期状態では、名前が『#』で始まるグループを自動配置の対象としています。この条件はプラグインパラメータの『実行条件』で変更可能です。パラメータとグループ名を設定し、対象とするグループを決定してください。


 他にも詳細な設定が可能ですが、基本的にはこれだけで即実用可です。最初からサイドビュー用にそれっぽい設定をしてあります。

 詳細は下のプラグインパラメータをご覧ください

注意点


 このプラグインで自動配置を実施すると、敵グループ内のデータ上の並び順も変更されてしまいます。
 バトルイベントで対象を固定した実装をしている場合は、ズレが生じる可能性があります。ご注意ください。

外部連携


 ver1.02で、外部の敵グループランダム生成プラグインとの併用に対応しました。
 その際、必ずNRP_TroopRandomFormation.jsを下に配置してください。敵グループを生成→ランダム配置という順序で処理するためです。

  • SupponREE.js(Suppon様)
  • DarkPlasma_SupponREE.js(DarkPlasma様による↑の改修版)
    ※確定出現枠を指定する機能などが追加されています。
    ※プラグイン本体は『Raw』からダウンロードできます。

 ちなみに、これらのプラグインはAB_EnemyBook.js(ヱビ様)のように、出現後の敵に対して処理を行うプラグインと競合するので要注意です。
 AB_EnemyBookについては、DarkPlasma_SupponREEより下に配置すればエラーが起きなくなるのを確認しています。

プラグインパラメータ(適用条件)


 自動配置の対象とするグループを決めるための条件を設定します。

実行条件(condition)

 自動配置を実行する条件(JavaScript計算式)です。
 初期値の『name.startsWith("#")』は「グループ名が#で始まる」という意味です。#の部分を好きな文字に変えて使ってください。

 空欄にすると全てのグループが自動配置の対象となります。

 他にも……
  • name.includes("#"):グループ名に#を含む。
  • name.endswith("#"):グループ名が#で終了する。

 などが使えます。
 グループ名の先頭を使うプラグインは他にもあったりするので、競合する場合はこれらを使ってください。ちなみに2文字以上でもOKです。

除外条件(exclusionCondition)

 自動配置を実行しない条件です。実行条件よりも優先されます。

 実行条件を全件有効にした場合でも、これを設定すれば除外するグループを設定できます。あまりこだわらない場合は、全件有効にしたほうが楽なのでオススメです。

プラグインパラメータ(配置範囲)


 自動配置を行う範囲です。この範囲内に敵の画像が収まるようランダム配置を実行します。
 初期値ではサイドビュー用の値が設定されています。

開始X座標(左)(startX)

終了X座標(右)(endX)

 自動配置を行う開始X座標(左端)と終了X座標(右端)です。

開始頭上Y座標(上)(startHeadY)

 自動配置を開始する敵の頭上に相当するY座標です。
 いくら背の高い敵でも、この座標の上に頭が出ることはありません。

開始足元Y座標(上)(startFootY)

 自動配置を開始する敵の足元に相当するY座標です。
 敵の足元の座標がこれより下となるように配置されます。

終了Y座標(下)(endY)

 自動配置を行う終了Y座標(下端)です。

グリッドサイズ(gridSize)

 自動配置する座標の単位です。 
 『終了X座標』と『終了Y座標』ーーつまり右下を基準として、指定値の倍数の地点に配置されます。
 初期値は32です。

 ※グリッドが小さすぎると配置計算の負荷が増大するため、あまり小さくしすぎないように注意してください。

プラグインパラメータ(敵の並び順)


 敵のデータ上の並び順を調整するための項目です。これは対象選択時に名前が表示される順番となります。

 サイドビューでは右上→右下→左上→左下。
 フロントビューでは左下→右下→左上→右上に配置された順に番号を振られます。

 なお、以下2つの項目はサイドビューの場合のみ機能します。

同列とみなす範囲(sameRowBorder)

 互いのX座標の差が指定の数値内に収まる場合、同じ列とみなして番号を振ります。
 つまり「ちょっとぐらい横に位置がずれていても、同列として上から順番に番号を振るよ」という意味です。


 この画像では、ケルベロスよりオークのほうが左にいますが、番号はオークのほうが小さくなっています。

基準となるX座標(sortBaseX)

 並び替えの基準とするX座標です。
 『0:画像中央』『1:画像右端』が選択できます。初期状態では画像右端となっています。

プラグインパラメータ(敵が一体の場合)


 敵が一体の場合に、どのように配置を行うかを設定する項目です。
 「敵が一体の時までランダム配置したら、変な隙間ができて違和感あるんじゃね?」というわけで、この項目があります。

 そんなわけで、初期設定では有効範囲の中央に配置します。

単体時の配置(singleEnemyPosition)

 敵が一体の場合に配置する方法です。
 『0:ランダムに配置』ならば、二体以上の場合と同様にランダム配置します。
 『1:指定座標に配置』ならば、以下で設定した座標に配置します。

 初期値は『1:指定座標に配置』に配置です。

単体時のX座標(singleEnemyX)

 指定座標に配置する場合のX座標です。
 初期値の『(startX + endX) / 2』は配置範囲の中央を表す数式です。

単体時のY座標(singleEnemyY)

 指定座標に配置する場合のY座標です。
 初期値の『((startHeadY + startFootY) / 2 + endY) / 2 + a.height/2』は中央らへんにそれっぽく見えるようにした数式です。
 ※X座標とは異なり、大きさに関わらず敵を中央付近に表示する数式は地味に難しいです。気に入らなかったら適当に調整してください。

プラグインパラメータ(演算方法)


 内部的に配置を計算する方法と、その試行を繰り返す回数と、およびその基準値を設定します。
 試行回数が小さい場合、不自然に敵が重なって配置されてしまうことがあります。回数を多くするほど配置が安定しますが、それだけ戦闘開始時の計算負荷が増大します。

 よく分からなかったら初期値のままが無難だと思います。

演算方式(algorithmType)

 自動配置を行う演算方式です。

0:座標総当り(推奨)

 グリッド単位で全座標を検査し、適切な間隔が取れる座標の中からランダムで選択します。
 高い精度で敵同士の重なりを防止できるため、基本的にはこちらの使用を推奨します。

1:ランダム繰り返し

 ランダムで配置を繰り返し、その中で最もマシな座標を選びます。
 運が悪いと敵が不自然に重なってしまうのであまり推奨しません。

グループ当たりの試行回数(maxTryNoForTroop)

 自動配置を繰り返すグループ当たりの最大回数です。(初期値は50)

 演算方式に従って比較&配置を終えた後、さらにグループ全体として配置をやり直す回数です。このプラグインはそうやって最適な全体配置を求めています。

 この値を増やすと適切な配置になる可能性が高まりますが、同時に計算量も増大します。

一体当たりの試行回数(maxTryNoForEnemy)

 ※この項目は『1:ランダム繰り返し』の場合のみ有効です。基本的には無視してもらって構いません。

 自動配置を繰り返す一体当たりの最大回数です。(初期値は50)

 内部的には、一体毎にランダム配置を繰り返し、互いの座標を比較して間隔を確保できる配置を探しています。これはその配置を繰り返す回数です。
 敵の配置数が増えれば増えるほど、互いの比較を繰り返すのでこの値に乗算する形で試行回数も増えます。

確定とする距離評価値(distanceBorder)

 この値を超える距離評価値を得た場合、配置を確定します。

 値を大きくするほど間隔を確保します。
 基本的には、値が100なら100ピクセル間隔を取ると考えればよいです。敵の数が多い場合など間隔を確保できなければ、比較的間隔の広い配置を選びます。

 値をマイナス値にすると、下の画像のような縦に重なったパターンも許可するようになります。なるべく自然に見せるため、上半分が隠れずに見えているパターンを優先的に選んでいます。


 実用性はありませんが、-10000を下回ると不自然に重なったパターンも出現するようになります。

 また、数式も使用可能です。
 例えば『$gameTroop.members().length == 2 ? 100 : 0』なら、敵が2体の時のみ間隔を100とります。

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