こんにちは。
RPGツクールMZ(RPGMakerMZ)でプラグイン・スクリプトを使わない入力判定作成メモ&サンプルプロジェクトは前回で一応出来上がりました。
今までスクリプトを使わないってことで通常イベントコマンドでやりくりしてきておいて言うのも難なのですが、内容によってはスクリプトを使うと簡単になったりできることが増えたりするので紹介程度に今回少しだけ触れておこうかなと思いました。
これまでのイベントの組み方を理解できたならスクリプトを使うこともそれほどハードルは高くないハズなので「なんか難しそうだからいいや」と思わず見てほしい。
過去にもスクリプト関連の記事は書いているので参考まで貼っておきます。今回と内容が被ったりするかもですがご了承ください。
まずスクリプトっていうのはイベントコマンドの3ページ目、右下にある”スクリプト”のボタンから作成できるのですが、ここに決められたテキストを入れることで他のイベントコマンドにない指示ができたりするのです。
例えば下のスクリプト。ピクチャの表示を行うスクリプトで、①~⑨には引数と呼ばれる設定値を入れます。内容はイベントコマンドの”ピクチャの表示”で行う設定と同じものが並んでいるだけです。
$gameScreen.showPicture(①,②,③,④,⑤,⑥,⑦,⑧,⑨)
①画像番号 ②ファイル名 ③原点(0が左上、1が中央) ④x座標 ⑤y座標 ⑥横拡大率 ⑦縦拡大率 ⑧不透明度 ⑨合成方法(0:通常 1:加算 2:乗算 3:スクリーン )
例) $gameScreen.showPicture(10,"Actor",0,200,450,100,100,255,0)
イベントコマンドと内容が同じならイベントコマンドでいいじゃんって思うかもしれませんが実はできることが大幅に増えているんです。
例えばよく使う代表的なスクリプトにこんなものがあります。
$gameVariables.value(①) ①変数番号
変数の値を取得するスクリプト。ピクチャ表示のスクリプトと組み合わせることが可能でこんな風にすると・・・
$gameScreen.showPicture(10,"Actor",0,200,450,$gameVariables.value(15),100,255,0)
変数の値が画像の横拡大率になるのでゲーム中に15番の変数の値が変わると画像の横幅も変化するということになります。
「それがどうした。」
・・・まだそう思うかも知れませんね。
次は実用例を見てみましょう。これは配布サンプルプロジェクト、ストーリーモードの魔王戦で使用しているコモンイベント(55番)の中身。
(//で始まっているところは注釈なので無くてもいいところです。)
他のスクリプトがあったりしてちょっと見にくいんですが赤丸のところで前述のスクリプトを使っており、横拡大率に変数を当て込んでいます(スクリプト内で宣言した変数を使っていますが前述した例のように作ってもいいです)。変数は時間をカウントするための変数(青丸のところでカウント)を3で割っただけのもの。
つまり、時間の経過に従って表示した画像は横に長くなっていくということです。
ちなみにスクリプト内で宣言した変数を使わないならこう↓
$gameScreen.showPicture(17,"gauge2",0,644,598,$gameVariables.value(40)/3,100,255,0)
これを何に使っているかといいますと、行動ゲージ(チャージタイムゲージ?)です。これによってマップシーンでタイムプログレス戦闘を再現しているってわけです!
(カクカクなのはGIFだからです)
これはイベントコマンドだけではできないものですよね?(たぶん)
//2023年9月26日 追記//
できますw
考えてみたら 幅0→100% へ一定上昇するだけであればピクチャの移動コマンドで事足ります(;^ω^)
ただ、HPゲージのように増え幅や減り幅がある場合はやはりスクリプト必須です。
//追記終わり//
このようにスクリプトを使うと今までできなかったことが実現可能になったりしますので興味が沸いたら使ってみるといいことがあるかも知れませんよ。
ついでに、スクリプトコマンドではJavaScriptっていうプログラミング言語が使えるので分岐やループといった基礎だけでも知っておくと効率が上がりさらに便利です。
記事あります↓
ここまでやったらプラグインもやってみたいと思うかも?
記事あります↓
以上、スクリプトについて語ってみました。主にメリットを書いてきましたがデメリットもあるので最後に一応言っておくと・・・
ミスったらエラーが出ます。
これをバグという。念の為(-ω-)
髪とか服とか分けてやろうと思ったら普段と勝手が違い過ぎてびっくりです(;´Д`)