RPGツクールMVでプレイヤーやイベントにウェイトゲージを表示するプラグインを作りました。
ウェイトゲージ表示中に移動を禁止したり、ウェイトゲージが完了するまでイベントの次の処理を待機させることができます。
サンプルプロジェクトも用意したので、参考にしてみてください。
「一定時間、敵シンボルの動きを止めるスイッチ」や、「起動してから一定時間後に戻るレバー」などの仕掛けを作ることができます。
IEを使っている人はボタンを右クリック→対象をファイルに保存でダウンロードしてください。
ウェイトゲージプラグインの使い方
移動ルートの設定→スクリプトまたはプラグインコマンドからウェイトゲージを設定できます。
-
ウェイトゲージを設定する
移動ルートの設定→スクリプトから設定する場合
対象は移動ルートの設定の左上にあるリストから選択できます。
スクリプト 説明 this.setWaitCount(表示フレーム数,開始フレーム数) ウェイトゲージを設定します。
表示時間はフレーム単位で指定してください。
1秒は60フレームです。this.setMovableWaiting(true)
this.setMovableWaiting(false)ウェイトゲージ表示中にも移動できます。
ウェイトゲージ表示中に移動ができなくなります。this.setMoveCancel(true)
this.setMoveCancel(false)移動した時にウェイトゲージをキャンセルします。
移動した時にウェイトゲージがキャンセルされません。this.addCount(増減値) ウェイトゲージの現在のカウントを増減させます。 ウェイトを進めたい場合はプラスの値、ウェイトをのばしたい場合はマイナスの値を指定してください。
this.cancelWait() 対象のウェイトゲージをキャンセルします。 値に変数の値を使いたい場合は、$gameVariables.value(変数番号)を使ってください。
(例) this.setWaitCount($gameVariables.value(1),0)
→対象に変数1番の値のウェイトゲージを設定します。(0開始)プラグインコマンドから設定する場合
パラメータの間は半角スペースで区切ってください。
MT_Wait set ターゲットID 表示フレーム数 移動可否 移動キャンセル
→ターゲットIDで指定した対象にウェイトゲージを設定します。パラメータ 説明 ターゲットID プレイヤー:0またはplayer
イベント:イベント番号(イベントダイアログの左上に表示)変数の値が使用できます。
表示フレーム数 ウェイトゲージを表示するフレーム数です。
プラグインコマンドの場合は常に0から開始となります。変数の値が使用できます。
移動可否 ウェイトゲージ表示中に移動ができるか。
true:移動できる
false:移動できない省略可能です。
省略した場合、プラグインパラメータの値が設定されます。移動キャンセル ウェイトゲージ表示中に移動した場合キャンセルされるか。
true: キャンセルされる
false: キャンセルされない省略可能です。
省略した場合、プラグインパラメータの値が設定されます。ターゲットID、表示フレーム数には変数の値が使えます。
\V[変数番号]で指定してください。(例) MT_Wait set \V[2] \V[1]
→変数2番の値のターゲットに変数1番のウェイトゲージを設定MT_Wait cancel ターゲットID
→ターゲットIDで指定した対象のウェイトゲージをキャンセルします。パラメータ 説明 ターゲットID プレイヤー:0またはplayer
イベント:イベント番号
all:プレイヤーとイベントすべて -
イベントからウェイト状態を取得する
スクリプトからイベントのウェイト状態が取得できます。
おもに条件分岐のスクリプト(タブ4番目)から使います。スクリプト 説明 $gamePlayer.isWaitComplete() プレイヤーのウェイトが完了したか $gamePlayer.isWaitCanceled() プレイヤーのウェイトがキャンセルされたか $gamePlayer.hasWaitCount() プレイヤーのウェイトゲージがあるか $gameMap.event(イベント番号).isWaitComplete() イベント番号のウェイトが完了したか $gameMap.event(イベント番号).isWaitCanceled() イベント番号のウェイトがキャンセルされたか $gameMap.event(イベント番号).hasWaitCount() イベント番号のウェイトゲージがあるか キャンセルは、以下の条件で発生します。
- 移動ルートスクリプト this.cancelWait() またはプラグインコマンド MT_Wait cancel を実行した
- 移動キャンセルがtrueになっている時に移動した
- プラグインパラメータ「ウェイト中のウェイト」がキャンセルの時にウェイトを再設定した
- マップ移動した(イベントのみ)
- イベントから接触された(プレイヤーのみ)
- プラグインパラメータ「場所移動でキャンセル」がtrueの時に場所移動した(プレイヤーのみ)
-
サンプルプロジェクト解説
一定時間、敵シンボルの動きを止める
ウェイトゲージ表示中に移動を禁止するオプションを使って、イベントやプレイヤーの動きを一定時間止めることができます。
ウェイトゲージは移動ルート→スクリプトとプラグインコマンド、どちらからでも設定できます。
対象をプレイヤーにすれば、「3秒間その場にとどまらないと発動しないスイッチ」とかも作れます。
時間差で戻るレバー
ウェイトが完了するまでつぎのイベントの実行を待機するサンプルです。(キャンセルなしの場合)
レバーを調べた時のイベント。
ウェイトゲージを設定し、セルフスイッチAをオンにします。
ウェイト中のイベント。
条件をセルフスイッチAがオンの時、トリガーを「並列処理」にしてください。並列処理にしないと、プレイヤーが移動できなかったりメニューが開けなくなったりします。
ウェイト中はループを回すことで、ループよりあとのイベントを実行しないようにします。
ウェイトが完了したらループを中断することで、ループ以降のイベントが実行されます。
イベント番号にはイベントエディタ左上に表示されているイベント番号を指定してください。
サンプルでは、レバー作動中スイッチがオンの間だけワープゾーンが使えるようになるというギミックにしてみました。
変数でウェイトを指定・移動でウェイトをキャンセルする
ウェイトゲージの設定には変数が使えます。
基本5秒、採取レベル×秒だけウェイトが減っていくサンプルです。
1秒 = 60フレームなので、ウェイトフレームの初期値は60フレーム × 5秒 = 300フレームです。
採取レベルに60フレーム(1秒)をかけて短縮する秒数を計算し、ウェイトフレームから引きます。ウェイトフレームが0以下だとうまく動かないので、引き算した結果ウェイトフレームが0以下ならウェイトを30フレーム(0.5秒)にします。
ついでに移動でキャンセルされるように設定してみました。
ウェイト中のイベントです。
発生条件はセルフスイッチAがオン、トリガーは並列処理です。
移動キャンセルありの場合は、ループ中の条件分岐を完了した場合とキャンセルした場合2つ作ります。
完了した場合のみセルフスイッチをオンにしておけば、完了してウェイトがなくなったのかキャンセルされてウェイトがなくなったのか判定できます。
サンプルではキャンセルされずに完了した場合のみアイテムが手に入るようになっています。
プラグインパラメータ
パラメータ | 説明 |
---|---|
ゲージ横幅 | ウェイトゲージの横幅。(デフォルト:100) |
ゲージ縦幅 | ウェイトゲージの縦幅。(デフォルト:20) |
ゲージ色1 ゲージ色2 |
ウェイトゲージの色。 ゲージ色2〜ゲージ色1までのグラデーションになります。 カラーコードで指定します。 デフォルトはHPバーと同じ色です。 |
ウィンドウ表示場所 | ウェイトゲージウィンドウの表示場所です。 上下左右から選択。(デフォルト:下) |
ゲージ名 | ウェイトゲージの上に表示するテキスト。 設定されている場合、ウェイトゲージウィンドウが2行になります。 |
ゲージ名フォントサイズ | ゲージ名のフォントサイズ(デフォルト:28) |
ウェイト進捗表示 | ウェイトゲージの右側に%を表示するか。 true:表示する / false: 表示しない(デフォルト:true) |
ウェイト進捗フォントサイズ | ウェイト進捗のフォントサイズ。(デフォルト:28) |
ウィンドウ不透明度 | ウェイトゲージのウィンドウ枠の不透明度。(デフォルト:255) 0にするとウィンドウ枠が非表示になり、ゲージのみ表示します。 |
ウィンドウマージン | 対象とウェイトゲージウィンドウの余白。 |
ウィンドウパディング | ウェイトゲージウィンドウとウェイトゲージの余白。 |
ウェイト中の移動 | ウェイト中に移動を許可するかの初期値。 移動ルートのスクリプトまたはプラグインコマンドで個別に変更できます。 |
移動キャンセル | 移動した時にウェイトゲージをキャンセルするかの初期値。 移動ルートのスクリプトまたはプラグインコマンドで個別に変更できます。 |
場所移動でキャンセル | プレイヤーが場所移動した時にプレイヤーに設定されたウェイトゲージをキャンセルするか。 true: キャンセルする / false: キャンセルしない(デフォルト:true) |
ウェイト中のウェイト | ウェイトゲージ表示中にウェイトが設定された時どうするか。 キャンセル: 現在のウェイトゲージをキャンセルします。 無視(先優先): あとから設定されたウェイトを無視します。 更新(後優先): あとから設定されたウェイトで上書きします。 |
ウェイト完了SE | ウェイトゲージが完了した時のSE。 |
ウェイトキャンセルSE | ウェイトゲージがキャンセルされた時のSE。 |
ウィンドウのマージンとパディングの違いがちょっとわかりにくいので補足します。
マージンはゲージウィンドウとイベント(プレイヤー)との間の余白、パディングはゲージウィンドウとゲージの間の余白です。
仕様と注意事項
-
1つのイベントごとまたはプレイヤーに1つのウェイトゲージを持つことができます。
1つのイベントに複数のウェイトゲージを持たせることはできません。 -
たくさんのイベントに同時にウェイトゲージを表示させると重くなります。
また、ウェイトゲージ表示中にコンソールを開くとかなり重くなります。 -
イベントのウェイトゲージは、マップ移動やロードをするとリセットされます。
プレイヤーのウェイトゲージは、マップ移動やロードでもウェイトゲージが継続します。
プラグインパラメータ「場所移動でキャンセル」がtrueの場合、場所移動時にウェイトゲージがキャンセルされます。
-
プレイヤーに設定されたウェイトゲージは、イベントから接触されることでキャンセルされます。
(シンボルエンカウントなどを想定)
ライセンス
利用について
使用や紹介にあたって連絡は不要です。
使用する作品のジャンルは問いません。
商用利用、アダルト作品問わず、ご自由にお使いいただけます。
ファイルの著作権表記は消さないでください。
ファイル以外の場所に権利表記をする必要はありません。
改変について
自由に改変可能です。
改変した素材を再配布する場合は、改変者の名前をファイルに追記してください。
自分の作品でのみ使う場合は、改変者の表記は不要です。
再配布について
素材単体での販売は禁止します。(改変した素材含む)
改変した素材を無料で再配布するのは可能です。
免責事項
本プラグラムの使用、またはその扱いによって生じる一切の請求、損害、その他の義務について、作者は責任を負わないものとします。
更新履歴
2019/11/25 | 1.20 | ウェイトゲージ完了またはキャンセル後、コモンイベントを呼び出せる機能を追加。
プラグインコマンドから引数を省略してウェイトゲージを設定した場合、プラグインパラメータの設定が反映されていなかった不具合を修正。 |
2019/11/25 | 1.10 | Scene_Mapのupdate時、ウェイトゲージがあるイベントだけ更新するように変更。 |
2019/06/19 | 1.00 | 新規作成 |