Version: 2023.1
言語: 日本語
Creating a 2D game
Work with sprites

2D ソート

概要

Unity はレンダラーを優先順位にしたがってソートします。優先順位はそのタイプと用途によります。レンダラーのレンダリング順は レンダーキュー で指定できます。一般に、2 つのメインキューがあります。不透明キュー透明キュー です。2D レンダラーは主に透明キュー内にあり、Sprite RendererTilemap RendererSprite Shape Renderer のタイプを含みます。

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

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

  1. Sorting Layer と Order in Layer
  2. レンダーキューの指定
  3. カメラとの距離
  4. Sorting Group
  5. マテリアル/シェーダー
  6. タイブレーカー は、複数のレンダラーが同じソートの優先順位を持つ場合に発生します。

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

Sorting Layer と Order in Layer

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

レンダーキューの指定

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

カメラとの距離

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

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 Settings (Edit > Project Settings > Graphics) の Graphics カテゴリーにあります。 Default に設定すると、Camera コンポーネントの Projection 設定が優先されます。これが Default 以外のオプションに設定されている場合、Camera コンポーネントの Projection 設定は同じままですが、カメラの Transparency Sort Mode はそのオプションに変更されます。

追加のオプションとして、Project settings やスクリプティング API を通して カスタム軸のソートモード を設定できます。

カスタム軸ソートモード

Select this mode to sort Renderers based on their distance along the custom axis you set in the Project settings (main menu: Edit > Project Settings > Graphics > Transparency Sort Axis). This is commonly used in projects with Isometric Tilemaps to sort and render the Tile Sprites correctly on the Tilemap. Refer to Creating an Isometric Tilemap for further information.

スプライトの Sort Point

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

Sorting Group

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

マテリアル/シェーダー

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

タイブレーカー

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

Creating a 2D game
Work with sprites
Copyright © 2023 Unity Technologies
优美缔软件(上海)有限公司 版权所有
"Unity"、Unity 徽标及其他 Unity 商标是 Unity Technologies 或其附属机构在美国及其他地区的商标或注册商标。其他名称或品牌是其各自所有者的商标。
公安部备案号:
31010902002961