Version: Unity 6.0 (6000.0)
言語 : 日本語
2D ゲームアートスタイルリファレンス
スプライト

2D レンダラーのソート

概要

Unity は、タイプと用途に基づく優先順位に従ってレンダラーをソートします。レンダラーのレンダリング順は、レンダーキュー で指定できます。一般に、2 つのメインキューがあります。Opaque キューTransparent キュー です。2D レンダラーは主に Transparent キュー内にあり、Sprite RendererTilemap RendererSprite Shape Renderer のタイプがあります。

優先順位による透明キューの並べ替え順

透明キュー内の 2D レンダラーは一般的に以下の優先順位に従います。

  1. Sorting Layer と Order in Layer

  2. レンダーキューの指定

  3. カメラまでの距離

  4. Sorting Group

  5. マテリアル/シェーダー

  6. タイブレーカー

通常の優先順位からソート順を変更する要素は他にもあります。これらの要素はプロジェクトによって異なります。

Sorting Layer と Order in Layer

Sorting LayerOrder in Layer (レンダラーの Property 設定内) は、Inspector ウィンドウまたは Unity スクリプティング API を通じて、すべての 2D レンダラーで使用できます。レンダラーを既存の Sorting Layer に設定するか新しく作成して、レンダーキューでの優先順位を決定します。Order in Layer の値を変更し、同じ Sorting Layer 内の他のレンダラー間のレンダラーの優先順位を設定します。

レンダーキューの指定

レンダラーのレンダーキューのタイプは、マテリアル設定か、マテリアルのシェーダー設定で指定できます。これは、異なるマテリアルを使用するレンダラーをグループ化しソートするのに便利です。詳細は、ShaderLab:SubShader タグ を参照してください。

カメラまでの距離

Camera コンポーネントProjection 設定に基づいてレンダラーをソートします。PerspectiveOrthographic の 2 つのオプションがあります。

Perspective

このモードでは、レンダラーのソート距離はカメラの位置からレンダラーへの直接距離です。

Orthographic

レンダラーのソート距離は、カメラのビュー方向に沿ったレンダラーの位置とカメラの間の距離です。デフォルトの 2D 設定では、ビュー方向は (0, 0, 1) 軸に沿っています。

Camera コンポーネントを Perspective または Orthographic に設定すると、Unity は自動的にカメラの TransparencySortMode を選択したモードに合わせて設定します。Transparency Sort Mode は手動で 2 通りの方法で設定できます。

  • Project Settings を開き、Graphics に移動し、Camera Settings の下で Transparent Sort Mode を選択します。
  • スクリプティング API を使用してカメラの TransparencySortMode を設定します。

カメラの Transparency Sort Mode の設定は、Project SettingsGraphics カテゴリにあります (メインメニュー:Edit > Project Settings > Graphics)。Default に設定すると、Camera コンポーネントの Projection 設定が優先されます。Default 以外のオプションに設定すると、Camera コンポーネントの Projection 設定は変わりませんが、カメラの Transparency Sort Mode はそのオプションに変わります。

追加のオプションとして、プロジェクト設定とスクリプティング API を通して Custom Axis ソートモード を設定できます。

Custom Axis ソートモード

このモードを選択すると、プロジェクト設定 (メインメニュー: Edit > Projecting Settings > Graphics > Transparency Sort Axis) で設定したカスタム軸に沿う距離に基づいてレンダラーをソートします。これは一般的に、アイソメトリックタイルマップ を使うプロジェクトで、タイルマップ上でタイルスプライトを正しくソートしレンダリングするために使用します。詳細は、アイソメトリックタイルマップの作成 を参照してください。

注意プロジェクトが 2D ユニバーサルレンダーパイプライン (URP) プロジェクトの場合、Transparency Sort ModeProject Settings では使用できません。代わりに、2D Renderer アセットプロパティで設定します。詳細は、2D Renderer アセットの設定に関するドキュメント を参照してください。

スプライトの Sort Point

デフォルトでは、スプライトの Sort PointCenter に設定されています。Unity はカメラの Transform 位置とスプライトの中心との間の距離を測定してレンダリング順序をソート中に決定します。スプライトの Sort Point をワールド空間の Pivot 位置に設定する方法もあります。スプライトの Sprite Renderer プロパティ設定で Pivot オプションを選択し、Sprite Editor でスプライトのピボット位置を編集します。

Sorting Group

Sorting Group はソートのために同じルートを共有するレンダラーをグループ化するコンポーネントです。同じソートグループ内のすべてのレンダラーは、同じ Sorting Layer、Order in Layerカメラへの距離 を共有します。詳細は、Sorting Group コンポーネントとその設定に関するドキュメントを参照してください。

マテリアル/シェーダー

Unity は、動的バッチ処理 などのレンダリングパフォーマンスを効率化するために、同じ マテリアル設定 を持つレンダラーをソートします。

タイブレーカー

複数のレンダラーが同じソート優先順位を持つ場合、Unity はレンダラーをレンダーキューに並べる順序をタイブレーカーによって決定します。これはユーザーが制御できない内部プロセスなので、ソートオプション (Sorting LayersSorting Groups など) を使用して、すべてのレンダラーに明確なソート優先順位を持たせる必要があります。

2D ゲームアートスタイルリファレンス
スプライト