レイヤー

■概要

レイヤーとは階層や層などの意味を表しており、
PhotoShopなどペイントソフトやソフトウェアの構成や設計などでも
使用されている考え方、機能です。

gmpg_0160

gmpg_0164

■ゲームにおけるレイヤー

レイヤーの考え方はゲーム開発にも扱われており、
Unityなどのゲームエンジンでも使用されています。

●主な使い方
	レイヤーはある種のグループを作成するための情報として使われており、
	よく使用されているのは描画のグループ分けです。

	例1:
		ゲーム内で使用するゲームオブジェクトを
		ある程度の種類毎にレイヤー分けすることで
		特定のレイヤーのみを描画させやすくなります。

		gmpg_0161

	例2:
		アルファブレンドとZバッファの相性の問題も
		アルファ有り3Dモデルと、アルファ無しの3Dモデルの
		レイヤーを分けて、そのレイヤーに対して描画優先順位を
		持たせることで、解決することが可能です。

		gmpg_0162

■共通点

レイヤーを使用した処理を実装した場合に見られる共通点として
各レイヤーは独立しており、レイヤー内のオブジェクト同士で
干渉はできますが、別レイヤーとは基本的に干渉しません。
例えば描画順位のためにレイヤー分けを行った場合は
描画順番はレイヤーごとの優先順位が最優先で、
その次に各レイヤー内のオブジェクトが持つ優先順位となります。
レイヤーの優先順位を越えて描画順が変わることはありません。

gmpg_0163

■注意点

●レイヤー間の干渉
	上で「レイヤー間は干渉しない」と記述していますが、
	それはあくまでレイヤー分けを行った内容の範囲の話しです。
	「描画の優先順位のレイヤー分け」を行った場合に
	オブジェクトが干渉できないのは「描画優先順位」に関することだけです。
	それ以外の部分で干渉することは問題ありません。

●使いすぎない
	レイヤー分けは「独立性の高いグループ」を作ることを意味しているので
	多用しすぎると制限がかかりすぎて、窮屈なコードになるので注意が必要です。