ページ 11

【解決済み】バトル中に呼び出したQTEプラグインを強制終了させたい

Posted: 2025年4月25日(金) 09:39
by ツクシ
お世話になっております。
製作で行き詰ったため質問させていただきます。

◆やりたいこと
Hz Input Command(ひず様作) - HzInputCommand.js
方向キーとボタンでのコマンド入力を実行します。
https://plugin.fungamemake.com/archives/13310

バトル中に呼び出した上記プラグインのQTEイベントを任意のタイミングで強制終了させたいです。

◆詳細
①QTEイベント
エネミーの行動により上記プラグインにてQTEイベントを呼び出します。
時間設定は無く、変数を用いて規定回数成功させるまでループするように組んでいます。
※このQTEを終了させるには通常、下記の方法があります。
・表示されたコマンド入力を成功 or 失敗させる
・予めタイマーを設定しておき、時間切れになる or タイマーの停止をする

②HPを減少させ続ける並列処理
QTE中、アクターHPを並列処理Aにて一定間隔で減少させ続けるイベントを動かします。

③HPが指定値を下回った瞬間にイベントを呼び出す ★このタイミングで①のQTEを消しておきたいです
アクターHPの値を並列処理Bで常に監視し、指定値を下回ったタイミングで文章やピクチャでの演出イベントを呼び出します。


③のイベントを呼び出した際、①で呼び出したQTEイベントが画面に残り続けてしまいます。
QTEの入力受付も生き続けてしまうため、理想の挙動とは異なってしまい困っております。
呼び出したQTEイベントを強制終了させるような方法(コマンド等)があれば解決すると考え、トピック投稿させていただきました。

情報に関して不足分ありましたら申し訳ございません。
分かりづらい文章で恐縮ですが、何卒よろしくお願いいたします。


追記 2025/04/26
念のため画像も添付させていただきました。

コモンイベントからイベントを終了させたい
親インタープリターについては干渉しないとの情報を知りました。
本件の場合、③の並列処理上では①のQTEイベントに干渉することは不可能という解釈になるでしょうか。
何かアプローチ方法がもしあればご教示いただければ幸いです。

Re: バトル中に呼び出したQTEプラグインを強制終了させたい

Posted: 2025年4月27日(日) 19:22
by ゆわか
基本タイマーでしか強制終了をできないようなので
タイマーの表示非表示を変更するようなプラグインをお借りしたうえで(ツクプラで探してね)
タイマーで終了する設定にして、タイマー数値最大で始動して
並列処理イベントに、時々タイマーを0以外で始動するイベントを入れて
HPが特定の値になったら、タイマーを0で始動すれば
おそらく強制終了ができると思われます。

プラグインを改変するのであれば
プラグインのライセンスを確認した上で、改変が可であると判断できた場合のみ
ちょっと荒業ではありますが、以下の方法があります。

プラグインコマンドで指定したスイッチがONになったら
強制終了するようにコードを追加します。
パラメータで指定したスイッチがONになったら、っていうコードも書けるけど
スイッチ使いまわす方が書き加える内容が少なくて済むので。
(よく考えて使わないと動作不良のもとになるけどw)

保存形式については、ちょっと特殊なので自分で調べてね。
(保存メニューの上書き保存を選択すれば、形式ごと保存してくれると思うけど)

プラグインをメモ帳などのテキストエディタで開いて
以下のコードを、273行目あたりにある
// タイマーによる時間制限 のすぐ上に挿入してください。





// スイッチによる強制終了
if($gameSwitches.value(this._switchNo)){
//ここにタイマーによる時間制限の時の内容、3行分をコピペ
}

Re: バトル中に呼び出したQTEプラグインを強制終了させたい

Posted: 2025年4月28日(月) 06:53
by ツクシ
ゆわか さんが書きました:基本タイマーでしか強制終了をできないようなので
タイマーの表示非表示を変更するようなプラグインをお借りしたうえで(ツクプラで探してね)
タイマーで終了する設定にして、タイマー数値最大で始動して
並列処理イベントに、時々タイマーを0以外で始動するイベントを入れて
HPが特定の値になったら、タイマーを0で始動すれば
おそらく強制終了ができると思われます。

プラグインを改変するのであれば
プラグインのライセンスを確認した上で、改変が可であると判断できた場合のみ
ちょっと荒業ではありますが、以下の方法があります。

プラグインコマンドで指定したスイッチがONになったら
強制終了するようにコードを追加します。
パラメータで指定したスイッチがONになったら、っていうコードも書けるけど
スイッチ使いまわす方が書き加える内容が少なくて済むので。
(よく考えて使わないと動作不良のもとになるけどw)

保存形式については、ちょっと特殊なので自分で調べてね。
(保存メニューの上書き保存を選択すれば、形式ごと保存してくれると思うけど)

プラグインをメモ帳などのテキストエディタで開いて
以下のコードを、273行目あたりにある
// タイマーによる時間制限 のすぐ上に挿入してください。





// スイッチによる強制終了
if($gameSwitches.value(this._switchNo)){
//ここにタイマーによる時間制限の時の内容、3行分をコピペ
}
ご回答いただきありがとうございます。
結論から申し上げますと、ご指摘通りタイマー設定周りの見直しにより解決しました。

私の組んだイベント内容(本件③)に問題があったようです。

コード: 全て選択

タイマーの操作:始動, 0分0秒
ウェイト:1フレーム
文章:なし, ウィンドウ, 下
: :HPが指定値以下になりました
イベントは文章の表示を考えていましたが、1フレームでもいいので間を入れてあげると理想の動きとなりました。(文章表示の際、QTEが終了し見えなくなる)

お騒がせしました。ありがとうございました。
またお教えいただいた「指定したスイッチがONになったら~」のやり方も色んな箇所で流用できそうですので
頭に入れておきます。ありがとうございます!