RPGツクールで変数Xの分だけウェイトをしたかったのですが、ウェイトのコマンドは直接的な数値しか入力ができません。
スクリプト使えばいけるのかなぁと思い、試したので備忘録代わりに情報共有しておきます。
結論:変数Xの値分のウェイトはthis.wait($gameVariables.value(X))
結果から言うと、スクリプトのイベントコマンドを使い、「this.wait($gameVariables.value(X))」(Xは変数Xの数字を半角で入力)することでできます。
変数1に入っている値の数だけウェイトとしたい場合は次のようなスクリプトをコマンドで入れることになります。
実際に変数1に120。変数2に300を入れて実験してみた動画を添付したXの投稿も貼っておきます。
RPGツクールMZで変数1の値の分だけウェイトとしたかったんだけど、直接指定しかできなかったんだっけ……と思い、スクリプト使えばいけるよね?と思い、認識ミスないか確認兼ねて動作チェックしたので動画残しておきます。タイマーは時間確認用(ウェイト120は2秒、300は5秒)
#ツクールMZ pic.twitter.com/xsGibBZhtC— みなみよつば🍀🍀 (@MinamiYotuba) November 7, 2024
スクリプトを使って変数の値分ウェイトをする設定の解説
具体的にどのような設定を行っているか解説をしていきます。
イベントコマンド:スクリプトについて
イベントコマンド「スクリプト」はイベントコマンドのページ3にあるコマンドになります。
RPGツクールでは、イベントコマンドを使って直感的に様々な要素を作成できます。一方、決められた記述やプログラミングのルールに従って記述された要素を使って様々なことを起こしたり計算したりすることもできます。この決められた記述を使って様々なことをイベント中の起こすことができるのが「スクリプト」というイベントコマンドになります。
this.wait($gameVariables.value(1))で使っている記述について
イベントコマンド「スクリプト」で『this.wait($gameVariables.value(1))』と記入することで変数1の値分ウェイトが可能です。
この記述には『this.wait(値)』という記述と『$gameVariables.value(値)』という記述を使っています。
$gameVariables.value(値)は値で指定した変数の値に変わるスクリプト
『$gameVariables.value(値)』は値の変数に入っている値を代入するスクリプトです。例えば『$gameVariables.value(1)』だとすれば、変数1に入っている数字になるので、例えば変数1=100であれば、『$gameVariables.value(1)』が100に切り替わるような記述になります。
変数の取得についての解説は初心者講座にも記載があります。
this.wait(値)は値の数だけウェイトを実行するスクリプト
『this.wait(値)』は値の数だけウェイトを実行するスクリプトです。『this.wait(100)』とかを入れれば、100フレームウェイトということになります。
今回は値の部分に変数を指定する『$gameVariables.value(1)』を使っています。すでに解説した通り、『$gameVariables.value(1)』は変数1の値に置き換わります。そのため、変数1=100だった場合は『this.wait($gameVariables.value(1))』の『$gameVariables.value(1)』の部分が変数1にある値『100』に変わります。『this.wait($gameVariables.value(1))』が『『this.wait(100』』となり、最終的に100フレーム分ウェイトしてくれるという感じです。
参考にしたページ
本動作確認のために、以下サイト様の解説を参考にさせていただきました!