WOLF RPGエディター(ウディタ)[3.337]/イベントコマンド【サイトトップへ戻る】
■「Zオーダー」について
(更新:2024/05/14)


Zオーダー」について解説します。


ショートカット
■Zオーダーとは?
■Zオーダーを使ってみる:複数のメニュー画面を重ねて表示
■Zオーダーを使ってみる:Y位置=Zオーダー
■Zオーダーが無かった場合


  
■Zオーダーとは?

Zオーダーは、イベントコマンド【ピクチャエフェクト】にある機能の1つです。

▼Zオーダーを変更する時の設定画面




通常のピクチャは、ピクチャ番号の大きい方がゲーム画面の前面に表示されますが、
【ピクチャエフェクト】の「Zオーダーを変更」を使ってZオーダーの値を変えると、
ピクチャ番号の大きい画像の上に、ピクチャ番号の小さい画像を表示する事ができます。

例えば下図の場合、赤い画像の方がピクチャ番号が大きいため、
青い画像よりも赤い画像の方がゲーム画面の前面に表示されています。



ここでZオーダーを「青=1」「赤=0」にすると、
ピクチャ番号はそのままで、下図のように青い画像の方が前面に表示されます。



このようにZオーダーを変える事で、ピクチャ番号の小さい方をゲーム画面の前面に表示する事ができます。



Zオーダーの仕様は以下のとおりです。

■最初はZオーダー「0」からスタートする

ピクチャを表示した時のZオーダーは「0」からスタートします。

Zオーダー「1」のピクチャを消去して、もう一度同じピクチャ番号で表示した場合は、
Zオーダー「0」で表示されます。
■Zオーダーが同じピクチャ同士は、ピクチャ番号の大きい方が前面

Zオーダーの値が同じピクチャが複数ある場合は、ピクチャ番号の大きい方が前面に表示されます。

もしもZオーダーの値が同じピクチャが複数重なった時に、
特定のピクチャ(主人公の表示など)を必ず一番前に表示したい時には、
他のピクチャよりもピクチャ番号を大きい番号にしてください。
■Zオーダーは「2000000000」などの大きい値も一応可能だが…

Zオーダーの値を「2000000000」や「-2000000000」などの桁数が多い値にする事もできます。

但し100万以上のZオーダーを設定する時には…
■変数操作: このEvのSelf0 = 1000000 + 0
■ピクチャエフェクト:1 [Zオーダー]を [このEvのSelf0] へ変更
と言ったように、一度Zオーダーの値を変数に保存して、
その変数の値を「変数呼び出し値」を使って呼び出す形で設定する必要があります。

変数を使わずにZオーダーを設定する場合は、上限を「999999」までにしてください。
■表示順が変わるのは、特定のピクチャ番号の範囲内のみ

Zオーダーによる表示順の変更は、
ピクチャ番号「-10万以下」「-99999〜-1」「0〜99999」「10万以上」のグループの中で、
それぞれ独立して処理されます。

例えばピクチャ番号[0]ピクチャ番号[1]が重なっている場合は、
両方とも「0〜99999」のグループなので、この場合はZオーダーを変えると表示順が変わります。

ピクチャ番号[-1]ピクチャ番号[1]の場合は、
グループが「-99999〜-1」と「0〜99999」に分かれているため、Zオーダーを変えても、
「-99999〜-1」と「0〜99999」のそれぞれのグループの中での表示順が変わるだけであり、
ピクチャ番号[-1]ピクチャ番号[1]の表示順は変わりません。
■ピクチャのコピーやID移動で、Zオーダーが引き継がれる

【ピクチャエフェクト】にある「ピクチャのコピー」や「ピクチャのID移動」を実行した場合は、
設定されていたZオーダーも引き継がれます。
■ピクチャ詳細一覧では、Zオーダー「0以外」のみを表示

テストプレイの時に[F7]を押すと表示される「ピクチャ詳細一覧」では、
Zオーダーが「0以外」のピクチャのみ、Zオーダーの値が表示されます。

▼ピクチャ[10000]のみZオーダー(Z:-1)が表示されている



Zオーダーを使うと、ピクチャの表示状態を「ピクチャ番号+Zオーダー」で覚えておく必要があります。

そのため、無計画にピクチャ番号やZオーダーを使っていくと、
どのように使用しているのかを把握するのが難しくなり、
ピクチャが正しく表示されない」と言った不具合が発生する確率が高くなります。

Zオーダーのご利用は計画的に、無理にない範囲内でご利用ください。


▲トップへ戻る▲


  
■Zオーダーを使ってみる:複数のメニュー画面を重ねて表示

複数のメニュー画面を表示して、マウスでクリックしたメニュー画面が最も前面に表示されるように設定します。



以下のイベント設定をウディタのサンプルゲームに設定してください。

【イベントコード表示】【コモン出力ファイル】

■コモンイベント「メニュー画面表示テスト」

起動条件:並列実行(常時)

■変数操作+: CSelf10[クリック] = マウス右クリック状態
■条件分岐(変数): 【1】 CSelf10[クリック] が 2 以外
-◇分岐: 【1】 [ CSelf10[クリック] が 2 以外 ]の場合↓
|■イベント処理中断
|■
◇分岐終了◇
■キー入力禁止/許可: 決定 キャンセル ↓キー ←キー →キー ↑キー [ 移動時× キー入力○ ]
■条件分岐(変数): 【1】 CSelf30[保存:X(ピクチャ[0-1])] が 0 と同じ
-◇分岐: 【1】 [ CSelf30[保存:X(ピクチャ[0-1])] が 0 と同じ ]の場合↓
|●ラベル地点「初期化」 <<<<<<<<<<<<<<<<<<<<<<<<★
|■変数操作: CSelf30[保存:X(ピクチャ[0-1])] = 80 + 0
|■変数操作: CSelf31[保存:Y(ピクチャ[0-1])] = 60 + 0
|■変数操作: CSelf32[保存:Z(ピクチャ[0-1])] = 0 + 0
|■変数操作: CSelf33[保存:X(ピクチャ[10-11])] = 160 + 0
|■変数操作: CSelf34[保存:Y(ピクチャ[10-11])] = 120 + 0
|■変数操作: CSelf35[保存:Z(ピクチャ[10-11])] = 1 + 0
|■変数操作: CSelf36[保存:X(ピクチャ[20-21])] = 240 + 0
|■変数操作: CSelf37[保存:Y(ピクチャ[20-21])] = 180 + 0
|■変数操作: CSelf38[保存:Z(ピクチャ[20-21])] = 1 + 0
|■
◇分岐終了◇
■DB読込(ユーザ): CSelf5[ファイルアドレス] =
         ユーザDB[ 16 : 0 : 0 ] (画像/音声設定 : 画像/音声基本設定 : ウィンドウ画像ファイル)
■変数操作: CSelf20[ピクチャ番号] = 0 + 0
■変数操作: CSelf21[ピクチャ番号+1] = 1 + 0
■ピクチャ表示:CSelf20[ピクチャ番号] [中心]ウィンドウ(CSelf5[ファイルアドレス]) サイズ[120,90]
       X:CSelf30[保存:X(ピクチャ[0-1])] Y:CSelf31[保存:Y(ピクチャ[0-1])] / 0(0)フレーム /
       パターン 1 / 透 255 / 通常 / 角 0 / 拡 100% / カラー R[100] G[100] B[100]
■ピクチャ表示:CSelf21[ピクチャ番号+1] [中心]文字列[ピクチャ\n<C>[0〜1]]
       X:CSelf30[保存:X(ピクチャ[0-1])] Y:CSelf31[保存:Y(ピクチャ[0-1])] / 0(0)フレーム /
       パターン 1 / 透 255 / 通常 / 角 0 / 拡 100% / カラー R[100] G[100] B[100]
■ピクチャエフェクト:CSelf20[ピクチャ番号] 〜 CSelf21[ピクチャ番号+1]
           [Zオーダー]を [CSelf32[保存:Z(ピクチャ[0-1])]] へ変更
■変数操作: CSelf20[ピクチャ番号]〜CSelf21[ピクチャ番号+1] += 10 + 0
■ピクチャ表示:CSelf20[ピクチャ番号] [中心]ウィンドウ(CSelf5[ファイルアドレス]) サイズ[120,90]
       X:CSelf33[保存:X(ピクチャ[10-11])] Y:CSelf34[保存:Y(ピクチャ[10-11])] / 0(0)フレーム /
       パターン 1 / 透 255 / 通常 / 角 0 / 拡 100% / カラー R[100] G[0] B[0]
■ピクチャ表示:CSelf21[ピクチャ番号+1] [中心]文字列[<C>ピクチャ\n[10〜11]\n]
       X:CSelf33[保存:X(ピクチャ[10-11])] Y:CSelf34[保存:Y(ピクチャ[10-11])] / 0(0)フレーム /
       パターン 1 / 透 255 / 通常 / 角 0 / 拡 100% / カラー R[100] G[100] B[100]
■ピクチャエフェクト:CSelf20[ピクチャ番号] 〜 CSelf21[ピクチャ番号+1]
           [Zオーダー]を [CSelf35[保存:Z(ピクチャ[10-11])]] へ変更
■変数操作: CSelf20[ピクチャ番号]〜CSelf21[ピクチャ番号+1] += 10 + 0
■ピクチャ表示:CSelf20[ピクチャ番号] [中心]ウィンドウ(CSelf5[ファイルアドレス]) サイズ[120,90]
       X:CSelf36[保存:X(ピクチャ[20-21])] Y:CSelf37[保存:Y(ピクチャ[20-21])] / 0(0)フレーム /
       パターン 1 / 透 255 / 通常 / 角 0 / 拡 100% / カラー R[100] G[100] B[0]
■ピクチャ表示:CSelf21[ピクチャ番号+1] [中心]文字列[<C>ピクチャ\n[20〜21]]
       X:CSelf36[保存:X(ピクチャ[20-21])] Y:CSelf37[保存:Y(ピクチャ[20-21])] / 0(0)フレーム /
       パターン 1 / 透 255 / 通常 / 角 0 / 拡 100% / カラー R[100] G[100] B[100]
■ピクチャエフェクト:CSelf20[ピクチャ番号] 〜 CSelf21[ピクチャ番号+1]
           [Zオーダー]を [CSelf38[保存:Z(ピクチャ[20-21])]] へ変更
■ピクチャ表示:100000 [中心]文字列[\E\f[9]ドラッグで移動。右] X:160 Y:8 / 0(0)フレーム /
       パターン 1 / 透 255 / 通常 / 角 0 / 拡 100% / カラー R[100] G[100] B[100]
■ループ開始
|■ウェイト:1 フレーム
|▼ ■■■■■■■■■■クリックチェック
|■変数操作+: CSelf10[クリック] = マウス左クリック状態
|■条件分岐(変数): 【1】 CSelf10[クリック] が 1 以下
|-◇分岐: 【1】 [ CSelf10[クリック] が 1 以下 ]の場合↓
||■変数操作+: CSelf10[クリック] = マウス右クリック状態
||■条件分岐(変数): 【1】 CSelf10[クリック] が 2 と同じ
||-◇分岐: 【1】 [ CSelf10[クリック] が 2 と同じ ]の場合↓
|||■ループ中断
|||■
||◇分岐終了◇
||■変数操作+: CSelf10[クリック] = マウス中クリック状態
||■条件分岐(変数): 【1】 CSelf10[クリック] が 2 と同じ
||-◇分岐: 【1】 [ CSelf10[クリック] が 2 と同じ ]の場合↓
|||●ラベル「初期化」に飛ぶ >>>>>>>>>>>>>>>>>>>>>>>>>
|||■
||◇分岐終了◇
||■ループ開始へ戻る
||■
|◇分岐終了◇
|▼ ■■■■■■■■■■選択したメニューチェック
|■変数操作: CSelf11[選択中:ピクチャ番号] = -1 + 0
|■変数操作: CSelf12[選択中:Zオーダー] = -999999 + 0
|■変数操作: CSelf20[ピクチャ番号] = -10 + 0
|■回数付きループ [ 3 ]回
||■変数操作: CSelf20[ピクチャ番号] += 10 + 0
||■変数操作+:CSelf24[取得:重なっている?] = ピクチャ:CSelf20[ピクチャ番号]のマウス重なってる?(1=YES)
||■条件分岐(変数): 【1】 CSelf24[取得:重なっている?] が 0 と同じ
||-◇分岐: 【1】 [ CSelf24[取得:重なっている?] が 0 と同じ ]の場合↓
|||■ループ開始へ戻る
|||■
||◇分岐終了◇
||■変数操作+: CSelf25[取得:Zオーダー] = ピクチャ:CSelf20[ピクチャ番号] の Zオーダー
||■条件分岐(変数): 【1】 CSelf25[取得:Zオーダー] が CSelf12[選択中:Zオーダー] 未満
||-◇分岐: 【1】 [ CSelf25[取得:Zオーダー] が CSelf12[選択中:Zオーダー] 未満 ]の場合↓
|||■ループ開始へ戻る
|||■
||◇分岐終了◇
||■変数操作: CSelf11[選択中:ピクチャ番号] = CSelf20[ピクチャ番号] + 0
||■変数操作: CSelf12[選択中:Zオーダー] = CSelf25[取得:Zオーダー] + 0
||■
|◇ループここまで◇◇
|■条件分岐(変数): 【1】 CSelf11[選択中:ピクチャ番号] が -1 以下
|-◇分岐: 【1】 [ CSelf11[選択中:ピクチャ番号] が -1 以下 ]の場合↓
||■ループ開始へ戻る
||■
|◇分岐終了◇
|▼ ■■■■■■■■■■全体のZオーダーを減らす
|■変数操作: CSelf20[ピクチャ番号] = -10 + 0
|■変数操作: CSelf21[ピクチャ番号+1] = CSelf20[ピクチャ番号] + 1
|■回数付きループ [ 3 ]回
||■変数操作: CSelf20[ピクチャ番号]〜CSelf21[ピクチャ番号+1] += 10 + 0
||■変数操作+: CSelf25[取得:Zオーダー] = ピクチャ:CSelf20[ピクチャ番号] の Zオーダー
||■変数操作: CSelf25[取得:Zオーダー] -= 1 + 0
||■ピクチャエフェクト:CSelf20[ピクチャ番号] 〜 CSelf21[ピクチャ番号+1]
            [Zオーダー]を [CSelf25[取得:Zオーダー]] へ変更
||■
|◇ループここまで◇◇
|▼ ■■■■■■■■■■選択中のZオーダーを「100」にする
|■変数操作: CSelf20[ピクチャ番号] = CSelf11[選択中:ピクチャ番号] + 0
|■変数操作: CSelf21[ピクチャ番号+1] = CSelf11[選択中:ピクチャ番号] + 1
|■ピクチャエフェクト:CSelf20[ピクチャ番号] 〜 CSelf21[ピクチャ番号+1] [Zオーダー]を [100] へ変更
|▼ ■■■■■■■■■■選択中のメニューをドラッグ移動
|■ループ開始
||■ウェイト:1 フレーム
||■変数操作+: CSelf10[クリック] = マウス左クリック状態
||■条件分岐(変数): 【1】 CSelf10[クリック] が 0 と同じ
||-◇分岐: 【1】 [ CSelf10[クリック] が 0 と同じ ]の場合↓
|||■ループ中断
|||■
||◇分岐終了◇
||■変数操作+: CSelf22[X] = ピクチャ:CSelf20[ピクチャ番号] の X座標
||■変数操作+: CSelf23[Y] = ピクチャ:CSelf20[ピクチャ番号] の Y座標
||■変数操作+: CSelf22[X] += マウスX座標の変化
||■変数操作+: CSelf23[Y] += マウスY座標の変化
||■変数操作: CSelf22[X] 下限= 60 + 0
||■変数操作: CSelf22[X] 上限= 260 + 0
||■変数操作: CSelf23[Y] 下限= 45 + 0
||■変数操作: CSelf23[Y] 上限= 195 + 0
||■ピクチャ移動:CSelf20[ピクチャ番号] 〜 CSelf21[ピクチャ番号+1] X:CSelf22[X] Y:CSelf23[Y] /
        0(0)フレーム / パターン 同値 / 透 同値 / 表示形式:同値 / 角 同値 / 拡 同値 / カラー 同値
||■
|◇ループここまで◇◇
|■
◇ループここまで◇◇
▼ ■■■■■■■■■■終了処理
■変数操作+: CSelf30[保存:X(ピクチャ[0-1])] = ピクチャ:0 の X座標
■変数操作+: CSelf31[保存:Y(ピクチャ[0-1])] = ピクチャ:0 の Y座標
■変数操作+: CSelf32[保存:Z(ピクチャ[0-1])] = ピクチャ:0 の Zオーダー
■変数操作+: CSelf33[保存:X(ピクチャ[10-11])] = ピクチャ:10 の X座標
■変数操作+: CSelf34[保存:Y(ピクチャ[10-11])] = ピクチャ:10 の Y座標
■変数操作+: CSelf35[保存:Z(ピクチャ[10-11])] = ピクチャ:10 の Zオーダー
■変数操作+: CSelf36[保存:X(ピクチャ[20-21])] = ピクチャ:20 の X座標
■変数操作+: CSelf37[保存:Y(ピクチャ[20-21])] = ピクチャ:20 の Y座標
■変数操作+: CSelf38[保存:Z(ピクチャ[20-21])] = ピクチャ:20 の Zオーダー
■ピクチャ消去:0 〜 21 / 0(0)フレーム
■ピクチャ消去:100000 / 0(0)フレーム
■キー入力禁止/許可: 決定 キャンセル ↓キー ←キー →キー ↑キー [ 移動時○ キー入力○ ]



テストプレイを開始し、右クリックを押すと、3つのメニュー画面が表示されます。



メニュー画面の上でクリックすると、全てのメニュー画面のZオーダーが「減算1」となり、
クリックしたメニュー画面のみがZオーダー「100」となって、前面に表示されます。

メニュー画面の上でドラッグ(左クリックを押しっぱなしで移動)すると、メニュー画面が移動します。



複数のメニュー画面が重なっている所でクリックした場合は、
クリックした位置にあるメニュー画面の中で、最もZオーダーが大きいメニュー画面が選択されます。

上図の場合は、3つのメニュー画面が重なっている所でクリックすると、
Zオーダーが最も大きい(最も前面に表示されている)ピクチャ[0〜1]が選択されます。



メニュー画面の表示中に右クリックを押すと、メニュー画面の表示が終了しますが、
メニュー画面の表示位置やZオーダーの情報が変数に保存されているため、
次に右クリックでメニュー画面を表示した時には、最後に表示されていた状態で表示されます。



メニュー画面の表示中に中クリック(マウスホイールの部分)を押すと、メニュー画面が初期位置に戻ります。



今回の設定例は、メニュー画面を表示する処理でしたが、
同様のイベント処理を使って、例えばカードゲームで選択したカードを前面に表示したり、
将棋やジグソーパズルなどで選択した駒やピースを前面に表示したりする処理にも活用できるでしょう。


▲トップへ戻る▲


  
■Zオーダーを使ってみる:Y位置=Zオーダー

複数のピクチャを表示して「Y位置=Zオーダー」でZオーダーを設定し、
画面の下の方に表示しているピクチャほど前面に表示されるように設定します。



以下のイベント設定をウディタのサンプルゲームに設定してください。

【イベントコード表示】【コモン出力ファイル】

■コモンイベント「Y位置=Zオーダー」

起動条件:並列実行(常時)

■変数操作+: CSelf10[クリック] = マウス右クリック状態
■条件分岐(変数): 【1】 CSelf10[クリック] が 2 以外
-◇分岐: 【1】 [ CSelf10[クリック] が 2 以外 ]の場合↓
|■イベント処理中断
|■
◇分岐終了◇
■キー入力禁止/許可: 決定 キャンセル ↓キー ←キー →キー ↑キー [ 移動時× キー入力○ ]
■パーティ画像:パーティ全員を透明にする
■ピクチャ表示:100 [中央下]ファイル「CharaChip/Special_Wolfarl.png」 X:160 Y:120 /
       0(0)フレーム / パターン 2 / 透 0 / 通常 / 角 0 / 拡 200% / カラー R[100] G[100] B[100]
▼ ■■■■■■■■■■ウサギキャラをランダムに配置(「Y位置=Zオーダー」を設定)
■変数操作: CSelf20[ピクチャ番号] = 0 + 0
■回数付きループ [ 30 ]回
|■変数操作: CSelf20[ピクチャ番号] += 1 + 0
|■変数操作: CSelf22[X]〜CSelf23[Y] += 60 〜 100
|■条件分岐(変数): 【1】 CSelf22[X] が 300 以上
|-◇分岐: 【1】 [ CSelf22[X] が 300 以上 ]の場合↓
||■変数操作: CSelf22[X] -= 280 + 0
||■
|◇分岐終了◇
|■条件分岐(変数): 【1】 CSelf23[Y] が 230 以上
|-◇分岐: 【1】 [ CSelf23[Y] が 230 以上 ]の場合↓
||■変数操作: CSelf23[Y] -= 200 + 0
||■
|◇分岐終了◇
|■変数操作: CSelf11[乱数] = 0 〜 1
|■条件分岐(変数): 【1】 CSelf11[乱数] が 0 と同じ
|-◇分岐: 【1】 [ CSelf11[乱数] が 0 と同じ ]の場合↓
||■ピクチャ表示:CSelf20[ピクチャ番号] [中央下]ファイル「CharaChip/Monster_RabbitMan1_makiba.png」
        X:CSelf22[X] Y:CSelf23[Y] / 0(0)フレーム / パターン 2 / 透 255 /
        通常 / 角 0 / 拡 200% / カラー R[100] G[100] B[100]
||■
|-◇上記以外
||■ピクチャ表示:CSelf20[ピクチャ番号] [中央下]ファイル「CharaChip/Monster_RabbitMan2_makiba.png」
        X:CSelf22[X] Y:CSelf23[Y] / 0(0)フレーム / パターン 2 / 透 255 /
        通常 / 角 0 / 拡 200% / カラー R[100] G[100] B[100]
||■
|◇分岐終了◇
|■ピクチャエフェクト:CSelf20[ピクチャ番号] [Zオーダー]を [CSelf23[Y]] へ変更
|■
◇ループここまで◇◇
■ピクチャ表示:100000 [中心]文字列[\E\f[9]マウス移動でウルフ] X:160 Y:8 / 0(0)フレーム /
       パターン 1 / 透 255 / 通常 / 角 0 / 拡 100% / カラー R[100] G[100] B[100]
■ループ開始
|■ウェイト:1 フレーム
|▼ ■■■■■■■■■■クリックチェック
|■変数操作+: CSelf10[クリック] = マウス右クリック状態
|■条件分岐(変数): 【1】 CSelf10[クリック] が 2 と同じ
|-◇分岐: 【1】 [ CSelf10[クリック] が 2 と同じ ]の場合↓
||■ループ中断
||■
|◇分岐終了◇
|▼ ■■■■■■■■■■マウスポインタの位置にウルファールを表示(「Y位置=Zオーダー」を設定)
|■変数操作: CSelf22[X] = Sys71:マウスX位置 + 0
|■変数操作: CSelf23[Y] = Sys72:マウスY位置 + 18
|■ピクチャ移動:100 X:CSelf22[X] Y:CSelf23[Y] / 0(0)フレーム / パターン 同値 /
       透 255 / 表示形式:同値 / 角 同値 / 拡 同値 / カラー 同値
|■ピクチャエフェクト:100 [Zオーダー]を [CSelf23[Y]] へ変更
|■
◇ループここまで◇◇
▼ ■■■■■■■■■■終了処理
■ピクチャ消去:0 〜 100 / 0(0)フレーム
■ピクチャ消去:100000 / 0(0)フレーム
■キー入力禁止/許可: 決定 キャンセル ↓キー ←キー →キー ↑キー [ 移動時○ キー入力○ ]
■パーティ画像:パーティ全員の透明を解除する



テストプレイを開始し、右クリックを押すと、ウサギのキャラが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オーダー」について
┃┗◆【使用例】エフェクト
┣◆サウンド
┣◆セーブ・ロード操作
┣◆パーティ画像
┣◆チップ処理
┃┗◆【使用例】チップ処理
┣◆場所移動
┣◆イベント制御
┃┣◆キャラクターの動作指定
┃┗◆【使用例】イベント制御
┣◆コモンイベント
┣◆ダウンロード
┗◆プロ版機能
 ┗◆起動時の引数について

YADOT-WOLFトップ  気紛れな空間へ戻る  メール