GameMaker 日本語掲示板

depthとlayerの違い

3 コメント
views
17 フォロー

depthとlayerの違いはなんですか?depthは数値が低いほど手前に、layerはその逆だというのは分かっているのですが、どちらかだけでいいのでは?となってしまいます。

xzy
作成: 2024/10/29 (火) 01:28:07
通報 ...
1
生高橋 2024/10/29 (火) 12:56:06

depthは単なる深度値でlayerはグループみたいな認識です。
layerにはインスタンスレイヤーやタイルレイヤー、アセットレイヤーなどいろんな種類のレイヤーが存在します。
layer関数を使えばそのlayerに属するオブジェクトやタイル、アセットに対して一括で操作を加えたりできます。
自分は1つのルームで複数のステージを用意しているのですがその際、ステージごとにインスタンスレイヤーを用意してそこに壁やギミックなどを配置しています。
レイヤーに分けることでルームエディターの作業中ステージごとの表示、非表示を切り替えたり、特定のステージを全部選択して移動させたり、また特定のステージの配置を誤って動かさないようにロックしたりしています。
PhotoshopやAspriteなどのグラフィックツールのレイヤーみたいな感じです。

2

layerはグループのように使うことができていろいろ便利です。

  • layer毎に表示を制御できます
  • layerにはdepthが割り振られ、layerに配置されたオブジェクトのdepthを一括で管理できます
    (layerに配置したオブジェクトはlayerのdepthになります)
  • レイヤースクリプトが使えます
  • レイヤーにエフェクトをかけることができます

このように、layerはdepthと関係ありますが、depth以外にも様々な役割を持っています。

しかしlayerのdepthだけでは処理できないことがあります。
例えばy値をdepthに反映させる(見下ろし型ゲームで手前のキャラを前面に表示させる)処理もその1つです。
レイヤー毎ではなくインスタンス毎にdepthを制御したい場面はたくさんあると思います。

という感じで理解しています。

3

ありがとうございます!毎回なんとなくで使っていたのでこれからは使い分けていきたいと思います!