戦闘メッセージのレイアウトを変更【RPGツクールMZ&MVプラグイン】

2020年10月23日

 戦闘メッセージのレイアウトを変更するプラグインです。
 ウィンドウの配置や大きさなどを変更可能です。


 行動順序の画面表示プラグインとの併用を想定して作ったものですが、それ以外の用途にも使えます。

 主な特徴は以下の通りです。

  • 公式プラグインのSimpleMsgSideViewに対応。
    MZ版のSimpleMsgSideViewMZも大丈夫です。
  • グラデーションに対応。
  • 通常ウィンドウ(枠付き)に切替可能。
  • 背景色や透明度を変更可能。
  • メッセージが長い場合、ウィンドウ幅に合わせて縮小。
  • 反対に文字列長にウィンドウ幅を合わせることも可能。
  • スキルのメモ欄に<NoName>と記述すればスキル名を非表示に。

目次


導入方法

更新履歴

使用例

右空け&グラデーション

ドラクエスタイル

枠付き中央

味方と敵で位置を変更

バトラーの頭上


プラグインパラメータ(配置関連)

X座標(x)

Y座標(y)

前面表示する(showFront)


プラグインパラメータ(サイズ関連)

横幅(width)

横幅を文字数に合わせる(autoWidth)

一行の縦幅(lineHeight)


プラグインパラメータ(メッセージ関連)

フォントサイズ(fontSize)

メッセージの余白(padding)


プラグインパラメータ(背景関連)

通常ウィンドウにする(normalWindow)

背景色(backColor)

背景不透明度(backPaintOpacity)

グラデーション方式(gradientType)

開始グラデーション幅(startGradientSize)

終了グラデーション幅(endGradientSize)


導入方法


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

 NRP_WindowBattleLogLayout.js ver1.03(2020/10/23)

更新履歴


2020/10/23(ver1.03)

  • スキルのメモ欄に<NoName>と記述すればスキル名を非表示に。

2020/08/27(ver1.02 -> 1.021)

  • ツクールMZに対応。
  • フロントビューでエラーになる不具合修正。(ver1.021)

2020/06/17(ver1.01)

  • 英語対応。

2020/05/01(ver1.00)

  • 公開!

使用例


右空け&グラデーション

 右側を空けることによって、行動順序にかぶらないようにしています。さらに横向きグラデーションをかけて切れ目を自然にしました。


  • 横幅:this.windowWidth() - 150
  • 背景不透明度:128
  • グラデーション方式:1(横)
  • 開始グラデーション幅:0
  • 終了グラデーション幅:200

 『this.windowWidth()』は画面全体の横幅です。-150して画面右側を150ピクセル空けてみました。
 背景不透明度は初期値の64だと、透明度が高すぎてグラデーションが分かりにくかったので濃くしました。お好みでどうぞ。
 終了グラデーション幅だけに値を入れることで、右側だけにグラデーションをかけています。

ドラクエスタイル

 画面下にメッセージを表示するドラクエスタイルです。


  • Y座標:446
  • 前面表示する:true
  • 通常ウィンドウにする:true

 前面表示にしないとステータスの下に隠れてしまいます。
 実用性は怪しいですが、その他のレイアウト変更系プラグインと組合わせれば使えるかもしれません。

枠付き中央

 SimpleMsgSideViewとの併用によって、枠付きウィンドウで中央にスキル名を表示します。


  • SimpleMsgSideViewプラグインをON
  • X座標:this.windowWidth() / 2 - this.width / 2
  • Y座標:20
  • 横幅:300
  • 通常ウィンドウにする:true

 X座標の式は中央寄せするためのものです。『this.windowWidth() / 2』で画面幅の半分、『this.width / 2』でウィンドウ幅の半分となります。

 Y座標や横幅、メッセージの余白などはお好みで調整してください。
 なお、枠内にスキル名が収まらない場合は縮小表示されます。

味方と敵で位置を変更

 使用者が味方なら右上、敵なら左上にスキル名を表示します。


  • SimpleMsgSideViewプラグインをON
  • X座標:a._enemy ? 20 : 380
  • Y座標:20
  • 横幅:300
  • 通常ウィンドウにする:true

 『a』で行動主体のスプライト情報を参照できます。
 『a.x』『a.y』でX・Y座標、『a.width』『a.height』で横幅・縦幅が参照できます。
 『a._enemy』は行動主体が敵の場合のみ値が入ります。

 『a._enemy ? 20 : 380』というのは『a._enemy』が有効(=敵)の場合は20、それ以外(=味方)は380がX座標になるという意味です。

バトラーの頭上

 ロマサガシリーズのようにキャラの頭上にスキル名を表示します。


  • SimpleMsgSideViewプラグインをON
  • X座標:a.x - this.width / 2
  • Y座標:a.y - a.height - 80
  • 前面表示する:true
  • 横幅:300
  • 通常ウィンドウにする:true

 ただし、演出中も消えないので邪魔です。もう一工夫しないと実用には耐えないかも……。
 それでも書いておけば、誰かの役に立ったりしませんかね。

プラグインパラメータ(配置関連)


X座標(x)

Y座標(y)

 ウィンドウのX座標とY座標です。(数式可)

前面表示する(showFront)

 ウィンドウを前面表示します。
 下位のプラグインで制御しているウィンドウに対しては、前面表示できない場合があります。(主にNRP_VisualTurn.jsを想定)
 その場合、プラグイン一覧で並び順を調整してください。

プラグインパラメータ(サイズ関連)


横幅(width)

 ウィンドウの横幅です。(数式可)
 初期値の『this.windowWidth()』は、画面横幅に一致します。

 例えば『this.windowWidth() - 200』に変更すると、画面幅より200ピクセル短くなります。もちろん、普通に数値を入れても構いません。

横幅を文字幅に合わせる(autoWidth)

 ウィンドウの横幅を文字数に合わせて自動調整します。
 初期状態ではオフになっています。
 オンにした場合も、↑の『横幅』が最大サイズとなります。

 基本的にSimpleMsgSideViewとの併用を想定しています。

一行の縦幅(lineHeight)

 一行の縦幅です。
 初期値は36です。

プラグインパラメータ(メッセージ関連)


フォントサイズ(fontSize)

 フォントの大きさを指定します。
 初期値は28です。

メッセージの余白(padding)

 ウィンドウとメッセージ間の余白を指定します。
 初期値は18です。

プラグインパラメータ(背景関連)


通常ウィンドウにする(normalWindow)

 通常メッセージと同様の枠付きウィンドウに変更します。
 なお、オンにした場合は以下「背景色〜グラデーション」の項目はいずれも無効となります。

背景色(backColor)

 背景色を指定します。
 16進数でRGB値(参考)を指定してください。初期値の『#000000』は黒となります

背景不透明度(backPaintOpacity)

 背景の不透明度を指定します。
 初期値は64です。

グラデーション方式(gradientType)

 ウィンドウのグラデーション方向を選択できます。
 横と縦が選択可能です。

開始グラデーション幅(startGradientSize)

終了グラデーション幅(endGradientSize)

 開始〜終了側のグラデーション幅です。(数式可)
 いずれも初期値は18です。

 グラデーション方式が『横』の場合、左から右。
 グラデーション方式が『縦』の場合、上から下となります。

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

バトルイベント拡張【RPGツクールMVプラグイン】

2020年10月19日

 バトルイベントを補助し、拡張するプラグインを作成しました。
 当サイトのCTB・CTTBおよびデフォルトのターン制いずれでも使用できます。
 ※このプラグインはMV版です。MZ版はこちら!

できること


  • 敵の戦闘行動をバトルイベントによって詳細に制御する。

 以下の動画はバトルイベントによって、敵の行動制御をした例です。
 行動回数を自在に変えたり、味方の戦闘不能状況で行動を変えたり、時を止めたりとやりたい放題です。
※画面が小さい場合は右下の全画面表示をクリックしてください。

導入方法


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

 NRP_BattleEventEX.js ver1.051(2021/08/31)

 同時にツクールMVの既存不具合修正プラグイン(木星ペンギン様作成)の導入を強く推奨いたします。特に15.17.番の適用は必須です。
 MPP_Patch.js(ダウンロードページ)

 さらにプラグイン管理画面では以下の順序で配置してください。マウスドラッグで上下移動できます。

  1. NRP_CountTimeBattle.js(またはNRP_CountTimeTurnBattle.js)
  2. NRP_VisualTurn.js
  3. MPP_Patch.js
  4. NRP_BattleEventEX.js

 ※該当プラグインを使わない場合、1.2.は不要です。

更新履歴


2021/05/14 -> 08/31(ver1.05 -> 1.051)

  • スキルからコモンイベントを呼んだ際、行動終了処理(ステートの解除など)が実際の行動前に行われてしまう問題に対処。
    それに伴い『コモンイベント時の終了処理を調整』のプラグインパラメータを追加。
  • 魔法反射プラグインかつダメージタイミングの調整プラグインと組み合わせた状態で『コモンイベント時の終了処理を調整』をオンにしていると、反射ダメージが重複して表示される不具合修正。(2021/08/31 ver1.051)

2020/06/19 -> 10/19(ver1.04 -> 1.041)

  • 英語対応。
  • ターン終了時のバトルイベントで行動を不発させた場合、次のターンで最速行動してしまう不具合修正。(10/19 ver1.041)

2020/01/27(ver1.03)

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

2020/01/25(ver1.02)

  • バトルイベントから戦闘行動の強制をした場合、混乱状態が反映されない不具合を修正。

2020/01/16(ver1.01)

  • 特定の条件で絞り込んだ中から対象をランダムに選ぶ機能追加。

2020/01/13(ver1.00)

  • 公開開始!
  • プラグインコマンドが想定通りにクリアされない不具合修正。(ver1.001)

説明


 ツクールMVのバトルイベント(コモンイベント)は極めて強力です。特に『戦闘行動の強制』は非常に便利で、様々な用途があります。
 これは対象にスキルを使わせるというもの。理論上はこれで敵の行動を制御したり、複合技のような複雑なスキルを作成することも可能です。

 しかしながら、かゆいところに手が届かないのも事実。その素晴らしさがあまり知られていませんでした。
 以下、『戦闘行動の強制』が持つ問題点。

  • 行動異常やMP枯渇を無視してスキルを発動してしまう。
  • バトルイベントを起動するタイミングが限られる。敵が行動したタイミングでの制御ができない。
  • スキルからコモンイベントを呼び出せるが、不要な演出が入る。
  • とにかくバグが多い。
    ※多くは上記の不具合修正プラグインで対応されています。

 このプラグインはこれらの問題点に対応し、バトルイベントの真価を引き出すことを目的とします。

 逆に言えば、プラグイン自体が大きな機能を果たすわけではありません。
 あくまでユーザの工夫を助けるものとなります。

 とはいっても、ピンと来ない方が大半でしょう。
 実際にどのようにバトルイベントを使えばよいかを以下で解説していきます。

解説目次




パラメータ


強制行動時のスキル使用判定(forceValid)

 戦闘行動の強制時もスキルの有効判定を行うようになります。
 つまり、行動異常やMP枯渇時は行動を行わなくなります。
 初期値はtrue。MVの元の挙動はfalseです。

 trueにしている場合でも、イベントなどでスキルを強制実行したいという場合は以下のプラグインコマンドで切替可能です。
NRP.forceAction true

 ※falseの場合は反対になります。

コモンイベント時の終了処理を調整 (adjustCommonEventActionEnd)

 スキルの使用効果でコモンイベントを呼び出した際、行動終了処理のタイミングを調整します。

 オンにすると、コモンイベントの終了時に一度だけ行動終了処理を実行するようになります。
 これにより、解除のタイミングが『行動終了時』のステートが、コモンイベントを起動した直後に解除されてしまう問題に対処できます。
 
 対象となる条件はダメージタイプが『なし』かつ、使用効果がコモンイベントのみの場合です。何らかの設定がされていると機能しないのでご注意ください。
 
 なお、これらの制御はCTBでは不要です。
 ※NRP_CountTimeBattle.js内の制御で考慮済み。

 また、スキル毎に切り替えたい場合は以下をメモ欄に記入してください。
<AdjustCommonEventActionEnd:[true/false]>


補足


 動画で確認できる以下の機能はトリアコンタン様のプラグインによるものです。

  • 戦闘不能の相手サイドを蘇生:ScopeExtend.js
  • 時間停止中のモーション停止:BattlerGraphicExtend.js

 このプラグインでやっているのは「戦闘不能の相手を確認して行動を変える」「時間停止をイベントコマンドで演出する」という部分です。ご注意ください。

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