描画機能

ZGEの描画機能


ZGEではキャラクターから描画イベントを指定する事で、
初めてキャラクターが画面に表示されます。
描画順はレイヤー番号ではなく、
描画イベントが上にあるほど重なった時に下に描画される形となります。




現在のバージョン(v2.6.3)の時点では、
・描画範囲
・座標
・拡大/縮小率
等いろいろな指定ができ、
一部の描画イベントの設定や
その描画イベントを表示するかしないかをスクリプトで指定する事も可能です。
(透過指定など、出来ない事もあります)

画面のスクロール等に関しては、
描画イベントからスクリプトを実行する形となります。

描画イベントには通常の『キャラクター描画イベント』以外にも、
同じレイヤー内のキャラクターイベントで
画像のY座標(矩形当たり判定の右下)が大きいキャラクターが最前面に描画される『Y座標によるオーダー』や
同じレイヤー内のキャラクターイベントで
Z座標の値が大きいキャラクターを最前面に描画する『Z座標によるオーダー』があり、
同じレイヤーを指定しても表示順をある程度自由に操作する事ができます。

また、描画レイヤー設定で3D描画の奥行き処理も自動で行ってくれる設定もあり、
擬似3Dのような表現に非常に便利です。


パーティクルやマップの描画に関しては、
それぞれ専用のイベントを必要とし、
キャラクター描画イベントと同様に ID 番号の順に描画される事となります。

パーティクル描画に関しては描画イベントとの連動で拡大・縮小を行う事が難しい事があります。
例えば上記のような疑似3D表現は
奥行による拡大・縮小率の指定ができないパーティクル描画イベントでは難しいので、
キャラクターイベントを使って表現する事になります。


描画方法

ZGEではキャラクターイベント別に描画方法を指定するようになっていて、
描画方法は特殊なものも含めて現在49種類存在します。

3D 機能を利用して拡大・縮小や透明処理等の多彩な処理が可能ですが、
1つのキャラクターイベントに1つの描画方法しか選択できないので、
画面を揺れるようなwave描画等、
一部の描画方法では半透明や拡大・縮小が同時に扱えないものも存在します。
描画方法は変数で変更する事が可能な為
“同時に扱えないだけ”と考えても良いかもしれません。
(ただし、BMP指定の画像で3D系の描画方法は指定できません)

また、描画方法に(3D)と言う表記があるものに関しては 3D 機能を利用した描画方法となりますが、
それ以外のものは 3D を使わない描画方法となっていて、
一部ものに関しては処理速度が重くなる事もあります。
現在は基本的に3Dを利用した描画方法を使用するのがお勧めです。
ちなみに現バージョンではパレット変更機能が無く、
色違いのキャラクターを用意する場合には、
別途色を変えた画像が必要となってしまいます。


描画方法の種類

※詳しい内容はマニュアルを参照してください

Wave


キャラクターが揺れるような感じになります。

▲元の画像



※縦方向も存在します。

Tile


キャラクターを画面内にタイル状に敷き詰めて表示します。
移動速度が指定できるので擬似スクロールの様な効果も得る事が可能です。

▲元の画像


他、バリエーションとして『Tile+Wave』『Tile+Random』『Tile+SpBlend(B)』『Tile+SpAddBlend(B)』があります。
※v2.6.3ではTile+Waveはタイルの移動速度かwaveの揺れる設定のどちらかしか指定できないようです

Mosaic


キャラクターにモザイク効果をかけます。

▲元の画像

(※画像は6ドットのモザイク)

Line


画像が指定したドット数抜けたような感じになります。

▲元の画像


Random


1ライン毎にランダムに描画します。

▲元の画像


WaterFall


筒状にしてスクロールさせます。

▲元の画像


※横方向も存在します。

Wipe


キャラクターを一定方向へ少しずつ表示したり隠したりするような表現です。
▼BoxIn

▼Up (dGapSz 0 dLineIv 1)

▼Up (dGapSz 0 dLineIv 8)

▼Up (dGapSz 1 dLineIv 8)

▼VIn

(※上記のものにさらに方向違いのバリエーションがあります)

・3D)NormalBlend(通常)


現在ZGEでは最も基本的な描画方法となっています。
透明度・拡大率・回転の指定が可能です。

▲元の画像

関数によって拡大率に合わせた衝突判定を行う事もできます。

・3D)AddBlend(加算)


NormalBlend とは透明度ではなく加算混合で描画される点が違います。

▲元の画像

下の画像のように、
明るい色ほど加算混合されて明るい感じになり、
黒い部分ほど描画されなくなります。

▼使用例


・3D)BrightBlend(明度)


NormalBlend とは明度混合する点が違います。

▲元の画像

左から dBlend (混合値)が0、20、40、60、80、100です。

・3D)Vertex+NorBlend


指定された変数(f0〜f7)に座標をしていする事で、
奥行きを持った立体的な表現をする事ができます。

▲元の画像


・3D)Vertex+AddBlend


 上記の加算混合版です。

・3D)Flush


同じ画像を加算混合で重ねて描画方法です。
※透過処理はされません。
dBlend の値が大きいほど明るく表示され、
名前の通りフラッシュさせるような演出に向いています。

▲元の画像


・3D)Number(+NorBlend/+AddBlend)


0〜9までの数字を画像として用意したものを使用して、
変数 l0 の値を画面上に表示します。

NorBlend と AddBlend の2種類ありますが、
通常の混合か加算混合かの違いです。




数字は1桁毎にキャラクターの座標から左に増えていきます。








・3D)Str+Num(+NorBlend/+AddBlend)


アルファベットや数字を画像として用意したものを使い、
キャラクターイベント編集画面の『表示文字』にて指定した文字を画面上に表示します。

NorBlend と AddBlend の2種類ありますが、
通常の混合か加算混合かの違いです。

(アスキーコード順)



指定できる文字数は11字ですが、
関数を使う事で文字を変更する事も可能です。
%d と記入すると変数 l0 の値を表示させる事も可能です。




指定した文字や数字の桁は1文字(1桁)毎に座標から右に描画されていきます。








αチャンネルPNG


描画方法とは違いますが、
フルカラー(32bit)モードを使用すると、
αチャンネルデータのPNGファイルを使用する事ができます。

▲元の画像




▲フレームが表示されない人はクリック