WOLF RPGエディター(ウディタ)[3.337]/イベントコマンド【サイトトップへ戻る】 ■「Zオーダー」について (更新:2024/05/14) 「Zオーダー」について解説します。
■Zオーダーとは? Zオーダーは、イベントコマンド【ピクチャエフェクト】にある機能の1つです。 ▼Zオーダーを変更する時の設定画面 ![]() 通常のピクチャは、ピクチャ番号の大きい方がゲーム画面の前面に表示されますが、 【ピクチャエフェクト】の「Zオーダーを変更」を使ってZオーダーの値を変えると、 ピクチャ番号の大きい画像の上に、ピクチャ番号の小さい画像を表示する事ができます。 例えば下図の場合、赤い画像の方がピクチャ番号が大きいため、 青い画像よりも赤い画像の方がゲーム画面の前面に表示されています。 ![]() ここでZオーダーを「青=1」「赤=0」にすると、 ピクチャ番号はそのままで、下図のように青い画像の方が前面に表示されます。 ![]() このようにZオーダーを変える事で、ピクチャ番号の小さい方をゲーム画面の前面に表示する事ができます。 Zオーダーの仕様は以下のとおりです。
Zオーダーを使うと、ピクチャの表示状態を「ピクチャ番号+Zオーダー」で覚えておく必要があります。 そのため、無計画にピクチャ番号やZオーダーを使っていくと、 どのように使用しているのかを把握するのが難しくなり、 「ピクチャが正しく表示されない」と言った不具合が発生する確率が高くなります。 Zオーダーのご利用は計画的に、無理にない範囲内でご利用ください。 ▲トップへ戻る▲ ■Zオーダーを使ってみる:複数のメニュー画面を重ねて表示 複数のメニュー画面を表示して、マウスでクリックしたメニュー画面が最も前面に表示されるように設定します。 以下のイベント設定をウディタのサンプルゲームに設定してください。
テストプレイを開始し、右クリックを押すと、3つのメニュー画面が表示されます。 ![]() メニュー画面の上でクリックすると、全てのメニュー画面のZオーダーが「減算1」となり、 クリックしたメニュー画面のみがZオーダー「100」となって、前面に表示されます。 メニュー画面の上でドラッグ(左クリックを押しっぱなしで移動)すると、メニュー画面が移動します。 ![]() 複数のメニュー画面が重なっている所でクリックした場合は、 クリックした位置にあるメニュー画面の中で、最もZオーダーが大きいメニュー画面が選択されます。 上図の場合は、3つのメニュー画面が重なっている所でクリックすると、 Zオーダーが最も大きい(最も前面に表示されている)ピクチャ[0〜1]が選択されます。 メニュー画面の表示中に右クリックを押すと、メニュー画面の表示が終了しますが、 メニュー画面の表示位置やZオーダーの情報が変数に保存されているため、 次に右クリックでメニュー画面を表示した時には、最後に表示されていた状態で表示されます。 メニュー画面の表示中に中クリック(マウスホイールの部分)を押すと、メニュー画面が初期位置に戻ります。 今回の設定例は、メニュー画面を表示する処理でしたが、 同様のイベント処理を使って、例えばカードゲームで選択したカードを前面に表示したり、 将棋やジグソーパズルなどで選択した駒やピースを前面に表示したりする処理にも活用できるでしょう。 ▲トップへ戻る▲ ■Zオーダーを使ってみる:Y位置=Zオーダー 複数のピクチャを表示して「Y位置=Zオーダー」でZオーダーを設定し、 画面の下の方に表示しているピクチャほど前面に表示されるように設定します。 以下のイベント設定をウディタのサンプルゲームに設定してください。
テストプレイを開始し、右クリックを押すと、ウサギのキャラが30体ランダムに配置されます。 そしてマウスポインタの位置にウルファールが表示されます。 ![]() ピクチャは「位置=中央下」で表示しているため、ピクチャのY位置は画像の下部になります。 そのため下図のような場合は、ウサギのキャラの方がY位置が大きいので、Zオーダーも大きくなり、 ウルファールよりもウサギのキャラの方が前面に表示されます。 ![]() マウスポインタを移動させると、ウルファールの表示位置が変わり、ウルファールのZオーダーも変わります。 ![]() ウサギのキャラとウルファールが同じY位置(同じZオーダー)の場合は、 ピクチャ番号が大きいウルファールの方が前面に表示されます。 ピクチャ表示中に右クリックを押すと、ピクチャが全て消えます。 再び右クリックを押した時には、前とは異なる位置にウサギのキャラが配置されます。 今回の設定例では、ウルファールだけが移動しているので、ウルファールのZオーダーだけを変えていますが、 ウルファール以外のキャラも移動する場合は、すべてのキャラのZオーダーを随時更新していく必要があります。 ▲トップへ戻る▲ ■Zオーダーが無かった場合 Zオーダーが無かった場合は、以下のような処理方法で代用する形になります。 ■ピクチャ番号を置き換える 【ピクチャエフェクト】の「ピクチャのID移動」を使ってピクチャ番号の置き換えていきます。 ピクチャ番号は予め「ピクチャ番号の百の位=Zオーダー」として… ピクチャ[0] → ピクチャ[0] ピクチャ[1] → ピクチャ[101] ピクチャ[2] → ピクチャ[202] と設定しておきます。 ピクチャ[0]を選択して、ピクチャ[0]を前面に表示する時には… ピクチャ[0] → ピクチャ[200] ピクチャ[101] → ピクチャ[1] ピクチャ[202] → ピクチャ[102] と言った感じに、前面に表示したいメニュー画面のピクチャを「200番台」にして、 他のメニュー画面のピクチャ番号を「減算100」にします。 たくさんのピクチャが使用されている場合は、 ピクチャの数だけピクチャ番号の置き換え処理が必要になるため、処理負担が大きくなります。 またピクチャ[0]は、ピクチャ番号「0」「100」「200」のいずれかになっているので、 現在表示しているピクチャ番号に合わせてイベントを処理する必要があります。 ■表示用のピクチャにコピーして表示 上記の■Zオーダーを使ってみる:Y位置=Zオーダーにあったように、 画面の下の方にあるピクチャが前面に表示される場合は、まず「不透明度=0」で… ピクチャ[0]=キャラA ピクチャ[1]=キャラB ピクチャ[2]=キャラC を表示します。 そして「Y位置×100+キャラのピクチャ番号」で… キャラAのY位置[30] → 30×100+0=ピクチャ[3000] キャラBのY位置[125]→125×100+1=ピクチャ[12501] キャラCのY位置[208]→208×100+2=ピクチャ[20802] と言ったように、ピクチャ[0〜2]とは別のピクチャ番号で画面表示用のピクチャを表示します。 次のフレームではピクチャ[100]以上を全て消去して、もう一度画面上に表示するピクチャを設定し直します。 こうする事で一応Zオーダーを使わなくても、現在のY位置に合わせた表示順にする事ができますが、 この処理方法ではコピー元のピクチャと表示用のピクチャの2つが必要であり、 毎フレームごとに表示用のピクチャへコピーする処理が必要になります。 また上記の方法では、最大100個のピクチャしか表示する事ができないなどの制約が発生します。 他にも可変DBに表示順の一覧を作成し、「データID=ピクチャ番号」で表示するなど、 Zオーダーを使わない処理方法は存在しますが、どれも処理効率が悪く、 イベント設定が複雑化するので、Zオーダーを使った方が楽に処理する事ができます。 ▲トップへ戻る▲ ◎関連ページ ◆「イベントコマンド」って何? ┣◆文章の表示 ┃┗◆特殊文字 ┣◆選択肢 ┃┗◆【使用例】選択肢 ┣◆変数操作 ┃┗◆演算子について ┣◆DB操作 ┣◆文字列操作 ┃┗◆【使用例】文字列操作 ┣◆変数操作+ ┃┣◆「X座標・Y座標」と「画面X座標・画面Y座標」の違い ┃┣◆【使用例】変数操作+の「キャラ」と「位置」 ┃┗◆【使用例】変数操作+の「ピクチャ」と「その他」 ┣◆条件(変数) ┣◆条件(文字列) ┣◆キー入力 ┃┗◆【使用例】キー入力 ┣◆ピクチャ ┃┗◆表示形式(通常・加算・減算・乗算)について ┣◆エフェクト ┃┣◆「Zオーダー」について ┃┗◆【使用例】エフェクト ┣◆サウンド ┣◆セーブ・ロード操作 ┣◆パーティ画像 ┣◆チップ処理 ┃┗◆【使用例】チップ処理 ┣◆場所移動 ┣◆イベント制御 ┃┣◆キャラクターの動作指定 ┃┗◆【使用例】イベント制御 ┣◆コモンイベント ┣◆ダウンロード ┗◆プロ版機能 ┗◆起動時の引数について |