z座標

 2010-08-09
x座標、y座標は原則表示位置の左上を指すことはご存知だと思います。
では、z座標とは何でしょうか?

1.z座標は奥行き?を指す。
z座標は、奥行きを指します。
この値が小さいほど背面へ、大きいほど前面へ表示されます。
そして、この値が同じであればインスタンスが生成された順に表示されます。
新しいものほど前に表示されるわけです。
これは、あとからz座標を変えても変わりません。
どういうことかというと、
Aを作成
Bを作成 (Bが前面)

Aのz座標をBより大きくする
Aが前面に表示される

Aのz座標をBと同じにする
Bが前面に表示される
ということです。

w1 = Window_Base.new(112,48,240,240)
w2 = Window_Base.new(192,128,240,240)
Graphics.wait(60)
w1.z *= 2
Graphics.wait(60)
w1.z /= 2
Graphics.wait(120)
w1.dispose
w2.dispose


2.よく使うかも知れないクラスの初期値
Window_Base, Sprite, Viewport のこの3つのクラスは
よく使うかも知れませんが、z座標の初期値が
Window_Base は、100。Sprite と Viewport は、0 です。
つまり、ウィンドウは他のものより手前に表示されるということですね。


3.Viewport を設定した場合
Viewport を設定した場合は、ビューポート内でのz座標を設定することになります。
たとえば、z座標が 0 のビューポートとスプライトを作ります。
V1 = Viewport
S1 = Sprite
S2 = Sprite
S3 = Sprite
このとき、一番手前に表示されるのはインスタンスの新しい S3 です。
S1 のz座標を 50 にします。一番手前は S1 となります。
この S1 に ビューポート V1 を割り当てます。
すると、一番手前は S3 に戻ります。
S1 は、ビューポート内に入ってしまうため、S1 のz座標はビューポート内での座標となります。
S1 を手前にするには V1 のz座標を変更する必要があります。
同じように S3 に V1 を割り当てると、順番は次のようになります。
S3 0(0)
S1 0(50)
S2 0
ビューポート内でz座標が大きい S1 が手前に表示されます。


例えば、ピクチャのz座標は、100 + 番号です。
普通に考えるとウィンドウより手前に表示されるはずですが、そうはなりません。
これは、ビューポートが割り当てられているからです。
ウィンドウ(Window_Base)にはビューポートはありません。
つまりz座標は、そのまま 100 となります。
ピクチャは、ビューポートがありますので、そのz座標が適用され 50 となります。
コメント




 

 ※ コメント内にURLを含めるには、バッククォート(`)をURLの直前に付け加えてください。


管理人のみ閲覧許可 [?]

Re: RPGツクールMV Z軸について
お返事遅くなり申し訳ありません。
MVは買っただけで全く使用してないので、よくわからないのですが、もう一度インストールして見てみました。


(function() {
Sprite_Base.prototype.startAnimation = function(animation, mirror, delay) {
var sprite = new Sprite_Animation();
sprite.setup(this._effectTarget, animation, mirror, delay);
this.parent.addChild(sprite);
this._animationSprites.push(sprite);

if (animation.id == 10) {
sprite.z = 3.5;
}
};
})();


animation.id == 10 というのが、ID 10 の戦闘アニメをアクション用とするという意味ですので、複数の場合は、animation.id < 10 のように ID 10 未満をというように変更してください。

これで通行☆タイルの後ろに表示されますが、大抵その下のタイルは×で設定されていると思います。そうなると、☆のタイルでは後ろに×のタイルでは前に表示されるようなおかしな状態になります。
ですので、柱をイベントで配置する。柱の×タイルを☆に変え、イベントを置き通行できなくする。柱の×タイルをイベントで配置する。などの工夫が必要になってくると思います。


先に述べたようにMVは、使用しておらずよくわかっていないので、別の詳しい方に相談した方が良いと思います。
【2016/11/30 00:05】 | CACAO | [編集]
RPGツクールMV Z軸について
初めまして鳥居と申します。

もしお時間があればご回答いただきたいのですが、
RPGツクールMVでアクションRPGを作っておりまして、フィールドで剣を振るというアニメーションを表示することに手こずっています。

キャラクターイベントに剣のアニメーションを乗せたのですが、アニメーションは基本的に画面の一番手前に表示されてしまいます。
柱の奥にキャラクターがいる時に剣を振ると、キャラクターは隠れているのに剣だけ柱の手前に表示されてしまうのです。

アニメーションのX軸Y軸はこのイベントで、Z軸を指定することはできますでしょうか。

ご回答いただけると嬉しいです。
よろしくお願いします。


【2016/11/20 21:15】 | 鳥居 | [編集]
トラックバック
トラックバックURL:
http://cacaosoft.blog42.fc2.com/tb.php/425-605ac575
≪ トップページへこのページの先頭へ  ≫
カレンダー
09 << 2017/10 >> 11
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31 - - - -

カテゴリー
最近の記事
最近のコメント
タグクラウド

リンク