こんにちは。ITBです。
今回は久しぶりの解説記事になります。RPGツクールMZのスクリプトの使い方を制作中のゲームを交えてご紹介(初心者向け)。
RPGツクールMZで制作中のゲームでピクチャ画像の移動が必要なのですが、その移動速度を変数を使って変化させたいと考えています。
通常のピクチャ画像の移動はイベントコマンド”ピクチャの移動”で行います。
移動速度は”時間”の項目に目的の座標までの移動時間を入力することで指定できます。
が、しかし指定できるのは定数のみで変数を入れることはできません。
状況に応じて移動速度が変化するようにしたいのでここに変数を入れたいのです。こうなるとスクリプトを使わざるを得ません。
RPGツクールMZにおけるスクリプトとは、ゲームの動作や仕様の根本部分にアクセスするための手段で、JavaScriptの文法に従って指定します(公式引用)。
JavaScriptの知識が無いので避けてきたのですがやっぱりこうなったか( ;-`д´-)
RPGでないゲームを作ろうと思った時から覚悟はしてましたが・・・。
さて、スクリプトを使うとなると記述すべきコードを調べなければなりません。
公式の初心者講座にありますスクリプトリファレンスを見てみます。
スクリプトリファレンスの"ゲームデータ”を開きます。
詳細説明欄にピクチャの移動と書かれているところを見つけました。これの取得スクリプト欄にある「$gameScreen.movePicture()」というやつがおそらく記述すべき文かなぁ。
で、()内は引数になると思うのですが、詳細欄に引数は省略と書かれています。
なぜ!?
ひとまず置いといてスクリプトリファレンスの"イベントコード"を見てみたらそれっぽい内容を見つけたのですが
このパラメータの順に全て入力してみたものの動きませんでした(ちがうの!?)。
すんなりとは行かせてくれないようです。
次にネットで調べて出てきたRPGツクールMVでの記述方法を試したり、いろいろ試行錯誤した結果、これでうまく動作しました↓
$gameScreen.movePicture(①,②,③,④,⑤,⑥,⑦,⑧,⑨)
①ピクチャ番号
②原点(0:左上 1:中央)
③X座標
④Y座標
⑤横拡大率(%)
⑥縦拡大率(%)
⑦不透明度(0~255)
⑧合成方法(0:通常 1:加算 2:乗算 3:スクリーン)
⑨時間(フレーム)
今回のケースでは⑨を変数にしたいので変数を呼び出す方法を調べたらこれはすぐに見つかりました↓
$gameVariables.value(⑩)
⑩変数番号
ウエイトさせたい場合は↓を記述します。
this.wait(⑪)
⑪ウエイト時間(フレーム)
"完了までウエイト"にする場合は⑪に入れるのは⑨と同じ変数ということになりますね。
そうしてとりあえずできたコード文がこちら↓
$gameScreen.movePicture(11,0,214,270,100,100,255,0,$gameVariables.value(8))
this.wait($gameVariables.value(8))
ピクチャ番号11番の画像を座標(214,270)へ8番の変数(フレーム)で移動し、完了までウエイト というコードになります。
これをイベントコマンドの3ページ目、”スクリプト”で入力。
(当たり前ですがこの前にイベントコマンド”ピクチャの表示”で11番の画像を表示させておく必要があります。 )
あとはこれが実行される前に8番の変数を好きに弄れば移動速度をコントロールできることになります。
ここまで辿り着くのに数日かかりました(-公-;)
前途多難です・・・。
今日のらくがき
2人目の新キャラ候補。振袖娘とでもしておきましょうか。
人数的に採用するかどうかは微妙です。
しかし新キャラのラフを描くのは楽しいです。既存キャラの場合はいちおう最初の絵に似せなきゃいけませんからね(できてないけど)。
なんたって新キャラは”自由”。それ故に難しい場合もありますが、好きに描いてどうなっても”アリ”っていうのはお絵描きの原点な気がします。
ま、原点が定位置の超初心者ですが。
ランキング参加中です。下のバナーをクリックして頂けるとやる気値が増幅します!!