【RPGツクールVX Ace】スクリプトで画像を表示する方法 | RPG作る人のブログ

RPG作る人のブログ

RPGゲームを作りたい人のブログです。

RPGツクールVX Aceで画像を表示する方法


以前書いた記事でリファレンス的なものをこのブログで書こうかなんて話をしていたので実行。

初回はRPGツクールVX Ace(つまりRGSS3)で画像を表示する方法について。

screen.pictures[①画像番号].show(②画像名, ③原点, ④x座標, ⑤y座標, ⑥拡大率横%, ⑦拡大率縦%, ⑧不透明度, ⑨合成方法)

上記番号とイベント設定ページの対応は以下の通り。




使用例:
screen.pictures[1].show("battleback", 0, 10, 20, 100, 100, 255, 0)


それぞれの入力項目番号について

①画像番号
1~100の数値を入力。番号が大きい順に上に表示される。

②画像名
ゲームフォルダのGraphics/Picturesフォルダの中に入っている画像の名前のみ記述。
.pngとか.jpgとかはいらない。

③原点
画像の原点をどこにするか。0で左上が原点。1で中心が原点。

④x座標
画像を表示する位置のx座標を入力。マイナスも可

⑤y座標
画像を表示する位置のy座標を入力。マイナスも可

⑥拡大率横%
画像の横の拡大率を入力。100で画像そのままの横の大きさ。0~2000まで入力可能。

⑦拡大率縦%
画像の縦の拡大率を入力。100で画像そのままの縦の大きさ。0~2000まで入力可能。

⑧不透明度
0~255までの数値を入力。数値が大きいほどはっきりと映る。数値が小さいほど透ける。
0で全く見えなくなる。

⑨合成方法
画像をどうやって合成するか。0で通常。1で加算、2で減算。


テクニック的な説明。


このメソッドは横に長い。
だからイベントコマンドのスクリプトで入力すると変なところで改行されてしまう。
↓こんな感じ
screen.pictures[1].show("battleback", 0, 10, 20,
100, 100, 255, 0)

するとこれが意図的に改行されたものなのか、1行だったものをツクール側で強制的に改行された(ようにみえる)のか、分からなくなる。
そのため「スクリプト 'Game_Interpreter'の1409 行目で ArgumentError が発生しました。 wrong number arguments(7 of 8)」などといった()内の変数が足りないという旨を伝えるエラーが表示されてしまうことがある。(つまり例外がスローされる。)

これを防ぐためにはscreen.picture[]をグローバル変数にしてしまえば良い。
グローバル変数とは簡単に言えばどこでも使える$のついた変数のこと。
よくわからない方は以下をコピペ。

$sc = screen.pictures[1]
$sc.show("battleback", 0, 10, 20, 100, 100, 255, 0)

こうすればなんとかイベントコマンドのスクリプトでも入りそうになってくる。
後は画像名を短くすること。
「battleback.png」なら「bb.png」にしてしまうとかして2,3文字に収める。
すると

$sc = screen.pictures[1]
$sc.show("bb", 0, 10, 20, 100, 100, 255, 0)

とまで短くなる。
ここまで短ければ十分にスクリプトの横幅に間に合う。
また、グローバル変数にしておけばスクリプトの欄を別にしても有効になる。
つまりどうゆうことかというと↓のようにしても文章が表示された後上手く画像が表示される。



このグローバル変数という考え方はイベントコマンドのスクリプトで書くときに知ってると非常に良い。なぜならスクリプト欄を跨いで変数を使えるから。

と、少し脱線気味になってしまったが、以上がRPGツクールVX Aceで画像を表示する方法。



◯参考ページ
rgss3 リファレンスwiki様 screen.pictures[].show()



にほんブログ村 ゲームブログ RPG・ロールプレイングゲームへ
にほんブログ村