docs.unity3d.com
    目次を表示する/隠す

    Camera Stacking

    Universal Render Pipeline (ユニバーサルレンダーパイプライン、URP) では、Camera Stacking を使用して、複数のカメラの出力をレイヤー化し、1 つの連結された出力を作成できます。Camera Stacking を使用すると、2D UI 内に 3D モデル、つまり乗物のコックピットなどのエフェクトを制作できます。

    URP の Camera Stacking

    カメラスタックは 1 つの ベースカメラ と 1 つ以上の オーバーレイカメラ で構成されます。カメラスタックは、ベースカメラの出力をカメラスタック内の全カメラの連結された出力でオーバーライドします。そのため、ベースカメラの出力でできることはすべて、カメラスタックの出力でもできます。例えば、カメラスタックを特定のレンダーターゲットにレンダリングしたり、ポストプロセスエフェクトを適用したりできます。

    URP は、レンダリング順序の最適化など、カメラ内でいくつかの最適化を実行して、オーバードローを減らします。しかし、カメラスタックを使用する場合、ユーザーがそれらのカメラのレンダリング順序を効果的に定義することになります。したがって、過度なオーバードローが生じるような形でカメラの順序を設定しないように注意する必要があります。URP のオーバードローの詳細については、詳細情報 を参照してください。

    カメラスタックへのカメラの追加

    カメラスタックへのカメラの追加

    1. シーンにカメラを作成します。Render Type のデフォルトは Base であるため、カメラはベースカメラになります。
    2. シーンに別のカメラを作成し、そのカメラを選択します。
    3. カメラの Inspector で、カメラの Render Type を Overlay に変更します。
    4. ベースカメラを再び選択します。カメラの Inspector で、Stack セクションまでスクロールして プラス (+) ボタンをクリックし、オーバーレイカメラの名前をクリックします。

    オーバーレイカメラがベースカメラのカメラスタックに含まれます。Unity は、オーバーレイカメラの出力をベースカメラの出力の上にレンダリングします。

    スクリプトでカメラスタックにカメラを追加するには、ベースカメラの Universal Additional Camera Data コンポーネントの cameraStack プロパティを次のように直接操作します。

    var cameraData = camera.GetUniversalAdditionalCameraData();
    cameraData.cameraStack.Add(myOverlayCamera);
    

    カメラスタックからのカメラの削除

    カメラスタックからのカメラの削除

    1. 少なくとも 1 つのオーバーレイカメラを含むカメラスタックを作成します。手順については、カメラスタックへのカメラの追加 を参照してください。
    2. カメラスタックのベースカメラを選択します。
    3. カメラの Inspector で、Stack セクションまでスクロールし、削除するオーバーレイカメラの名前をクリックして マイナス (-) ボタンをクリックします。

    オーバーレイカメラはシーンに残りますが、カメラスタックには含まれなくなります。

    スクリプトでカメラスタックからカメラを削除するには、ベースカメラの Universal Additional Camera Data コンポーネントの cameraStack プロパティを次のように直接操作します。

    var cameraData = camera.GetUniversalAdditionalCameraData();
    cameraData.cameraStack.Remove(myOverlayCamera);
    

    カメラスタック内のカメラの順序の変更

    カメラスタックからのカメラの削除

    1. 複数のオーバーレイカメラを含むカメラスタックを作成します。手順については、カメラスタックへのカメラの追加 を参照してください。
    2. カメラスタック内のベースカメラを選択します。
    3. カメラの Inspector で、Stack セクションまでスクロールします。
    4. オーバーレイカメラの名前の横にあるハンドルを使用して、オーバーレイカメラのリストを並べ替えます。

    ベースカメラはカメラスタックのベースレイヤーをレンダリングします。スタック内のオーバーレイカメラは、リストされている順に (上から順に)、ベースレイヤーの上にレンダリングします。

    スクリプトでカメラスタックを並べ替えるには、ベースカメラの Universal Additional Camera Data コンポーネントの cameraStack プロパティを直接操作します。

    複数のスタックへの同一のオーバーレイカメラの追加

    複数のカメラスタックにオーバーレイカメラを追加するには:

    1. 少なくとも 1 つのオーバーレイカメラを含むカメラスタックを作成します。手順については、カメラスタックへのカメラの追加 を参照してください。
    2. シーンにカメラを作成します。Render Type のデフォルトは Base であるため、カメラはベースカメラになります。
    3. 新しいベースカメラを選択します。
    4. カメラの Inspector で、Stack セクションまでスクロールして プラス (+) ボタンをクリックし、両方のカメラスタックで使用するオーバーレイカメラの名前をクリックします。

    オーバーレイカメラが両方のカメラスタックでレンダリングされるようになります。

    また、スクリプトでカメラスタックにカメラを追加するには、ベースカメラの Universal Additional Camera Data コンポーネントの cameraStack プロパティを次のように直接操作します。

    var cameraData = camera.GetUniversalAdditionalCameraData();
    cameraData.cameraStack.Add(myOverlayCamera);
    
    トップに戻る
    Copyright © 2023 Unity Technologies — 商標と利用規約
    • 法律関連
    • プライバシーポリシー
    • クッキー
    • 私の個人情報を販売または共有しない
    • Your Privacy Choices (Cookie Settings)