ピクチャをスクリプトから直接操作
前回の記事ではピクチャを操作するイベントコマンド「ピクチャの表示」や「ピクチャの移動」などをスクリプトから扱う方法をご紹介しました。
今回は応用編という事で、スクリプトからピクチャの中身を取り出して直接操作する方法をご紹介します(^-^)
JavaScriptの知識があるとより活用できると思いますが、そうでない方も、各種イベントコマンドから利用できるスクリプトをご紹介しますので参考にしていただけたら幸いです。
ピクチャ座標などの各種プロパティを取得する
まずはピクチャのX座標とY座標を取得する方法です。ピクチャの座標情報は次のコードで取得できます。
$gameScreen.picture(ピクチャ番号).x();
$gameScreen.picture(ピクチャ番号).y();
上がX座標、下がY座標です。
もし、ピクチャの座標を取得してゲーム変数に入れたい場合はイベントコマンド「変数の操作」のオペランドから「スクリプト」を選択し、上記のコードを入力すればOKです!
同様に、
- ピクチャに設定されている「ファイル名」を取得する場合、
$gameScreen.picture(ピクチャ番号).name();
- 「原点」を取得する場合(返り値は0が左上、1が中央)
$gameScreen.picture(ピクチャ番号).origin();
- 「拡大率」を取得する場合、幅(X)と高さ(Y)それぞれ、
$gameScreen.picture(ピクチャ番号).scaleX();
$gameScreen.picture(ピクチャ番号).scaleY();
- 「不透明度」を取得する場合、
$gameScreen.picture(ピクチャ番号).opacity();
- 「合成方法」を取得する場合(返り値は0が通常、1が加算、2が乗算、3がスクリーン)
$gameScreen.picture(ピクチャ番号).blendMode();
- 「色調」を取得する場合、上から「赤、緑、青、グレー」の順に
$gameScreen.picture(ピクチャ番号).tone().[0];
$gameScreen.picture(ピクチャ番号).tone().[1];
$gameScreen.picture(ピクチャ番号).tone().[2];
$gameScreen.picture(ピクチャ番号).tone().[3];
- 「回転角度」を所得したければ、
$gameScreen.picture(ピクチャ番号).angle();
となります。
ピクチャの各種プロパティに直接書き込む
今度は取得とは逆のパターン。
イベントコマンドの「ピクチャの移動」や「ピクチャの色調変更」「ピクチャの回転」を使わずに、直接スクリプトで値を変更してみましょう。
この方法を使えば、位置や拡大率、不透明度を全部入力しなくても、それぞれの値を個別に変更する事ができます。
- ピクチャのX座標、Y座標を直接変更
$gameScreen.picture(ピクチャ番号)._x = 数値;
$gameScreen.picture(ピクチャ番号)._y = 数値;
イベントコマンド「スクリプト」から上記のようなコードを入力すると、「ピクチャの移動」を使わなくても一瞬で指定の座標にピクチャを移動させる事ができます。
同様に、
- ピクチャのファイル名を直接変更
$gameScreen.picture(ピクチャ番号)._name = 'ファイル名';
$gameScreen.picture(ピクチャ番号)._name = 'ファイル名';
ファイル名を ‘ ‘ で囲むのをお忘れ無く。ピクチャに設定されている画像が新しく指定されたファイル名の画像に置き換わります。
- ピクチャの原点を直接変更(0で左上、1で中央)
$gameScreen.picture(ピクチャ番号)._origin = 数値;
$gameScreen.picture(ピクチャ番号)._origin = 数値;
- ピクチャ拡大率の幅(X)と高さ(Y)を直接変更(100で等倍)
$gameScreen.picture(ピクチャ番号)._scaleX = 数値;
$gameScreen.picture(ピクチャ番号)._scaleY = 数値;
- ピクチャの不透明度を直接変更(0~255)
$gameScreen.picture(ピクチャ番号)._opacity = 数値;
- ピクチャの合成方法を直接変更(0で通常、1で加算、2で乗算、3でスクリーン)
$gameScreen.picture(ピクチャ番号)._blendMode = 数値;
- ピクチャの色調を直接変更(配列 [赤, 緑, 青, グレー] の形式で数値を指定)
$gameScreen.picture(ピクチャ番号)._tone = [数値, 数値, 数値, 数値];
- ピクチャの角度を直接変更
$gameScreen.picture(ピクチャ番号)._angle = 数値;
前回の記事でもご紹介しましたが、これ便利です。「ピクチャの回転」コマンドだと回転速度を指定する事しかできませんが、このスクリプトを使えば一瞬で指定した角度に回す事ができます。
まとめ
今回はスクリプトを使ってピクチャのプロパティを直接いじる方法をご紹介しました。
これらを活用すれば、ツクールMVの演出がますます楽しくなると思います(^-^)
次回も、さらに深くピクチャを扱う方法をご紹介しますね!