レイヤー
■概要
レイヤーとは階層や層などの意味を表しており、
PhotoShopなどペイントソフトやソフトウェアの構成や設計などでも
使用されている考え方、機能です。
■ゲームにおけるレイヤー
レイヤーの考え方はゲーム開発にも扱われており、
Unityなどのゲームエンジンでも使用されています。
●主な使い方
レイヤーはある種のグループを作成するための情報として使われており、
よく使用されているのは描画のグループ分けです。
例1:
ゲーム内で使用するゲームオブジェクトを
ある程度の種類毎にレイヤー分けすることで
特定のレイヤーのみを描画させやすくなります。
例2:
アルファブレンドとZバッファの相性の問題も
アルファ有り3Dモデルと、アルファ無しの3Dモデルの
レイヤーを分けて、そのレイヤーに対して描画優先順位を
持たせることで、解決することが可能です。
■共通点
レイヤーを使用した処理を実装した場合に見られる共通点として
各レイヤーは独立しており、レイヤー内のオブジェクト同士で
干渉はできますが、別レイヤーとは基本的に干渉しません。
例えば描画順位のためにレイヤー分けを行った場合は
描画順番はレイヤーごとの優先順位が最優先で、
その次に各レイヤー内のオブジェクトが持つ優先順位となります。
レイヤーの優先順位を越えて描画順が変わることはありません。
■注意点
●レイヤー間の干渉
上で「レイヤー間は干渉しない」と記述していますが、
それはあくまでレイヤー分けを行った内容の範囲の話しです。
「描画の優先順位のレイヤー分け」を行った場合に
オブジェクトが干渉できないのは「描画優先順位」に関することだけです。
それ以外の部分で干渉することは問題ありません。
●使いすぎない
レイヤー分けは「独立性の高いグループ」を作ることを意味しているので
多用しすぎると制限がかかりすぎて、窮屈なコードになるので注意が必要です。