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

    Decal

    HD レンダーパイプライン (High Definition Render Pipeline、HDRP) には、シーンでデカールを作成する 2 つの方法があります。デカールメッシュ使って手動でデカールを配置するか、または Decal Projector (デカールプロジェクター) コンポーネントでデカールを投影します。両方とも、Decal Shader (デカールシェーダー) または Decal Master Stack (デカールマスタースタック) を用いてデカールマテリアルを作成する必要があります。デカールマテリアルを作成して配置する場合も、またはシーンに投影する場合のどちらにも使えます。

    制限および互換性

    デカールプロジェクターは、デカールシェーダー または デカールマスタースタック のいずれかを持つ不透明のマテリアルに影響します。ただし、透明マテリアルに関しては、デカールシェーダー を持つもののみに影響します。透明マテリアルのエミッシブはサポートしませんが、Decal Layer (デカールレイヤー) はサポートします。 デカールメッシュは、デカールシェーダー または デカールマスタースタック のいずれかを持つ不透明のマテリアルのみに影響しし、デカールレイヤーはサポートしません。

    デカールレイヤー

    デカールレイヤーの有効化

    Decal Layer (デカールレイヤー) を使うには、まずプロジェクトの HDRP アセット で有効にします。それから フレーム設定 でデカールレイヤーを有効にし、カメラがデカールレイヤーをプロセスするように設定します。

    1. プロジェクトウィンドウで HDRP アセットを選択し、Inspector で Decal > Layers に移動してチェックボックスを有効にします。
    2. すべてのカメラに対するデフォルトフレーム設定で、デカールレイヤーを有効にするには、Default Frame Settings For セクションのドロップダウンから Camera を選択し、Decal Layers チェックボックスを有効にします。

    カメラに対するフレーム設定をオーバーライドするには、個別にデカールレイヤーを設定します。

    1. シーンビューまたは Hierarchy ウィンドウで Camera をクリックし、Inspector 内のプロパティーを表示します。
    2. General セクションに行き Custom Frame Settings のチェックボックスを有効にします。こうすると Frame Settings Overrides が展開され、このカメラのみをカスタマイズできるようになります。
    3. Rendering セクションで、Decal Layers チェックボックスを有効にし、このカメラがデカールレイヤーを使うようにします。

    デカールレイヤーの使用

    デカールレイヤーが有効になったら、シーンの特定のデカールプロジェクターからメッシュを切り離すために使うことができます。この手順は以下の通りです。

    1. Hierarchy またはシーンビューでデカールプロジェクターをクリックし、 Inspector 内で表示します。
    2. Decal Layer プロパティードロップダウンから、デカールプロジェクターが影響を与えるデカールレイヤーを選択します。
    3. Hierarchy またはシーンビューで Mesh Renderer (メッシュレンダラー) または Terrain (地形) をクリックし、Inspector 内で表示します。
    4. **Rendering Layer Mask* ドロップダウンから (ゲームオブジェクト用の メッシュレンダラー または地形用の その他の設定 を参照してください)、このメッシュレンダラーまたは地形に影響を与えるデカールレイヤーを選択します。デカールレイヤーが有効で、メッシュレンダラーと地形の両方が同じデカールレイヤーを使う場合、デカールはメッシュレンダラーまたは地形のみに影響を与えます。

    デカールレイヤーの名前変更

    デフォルトにより、デカールプロジェクターの UI、メッシュレンダラーまたは地形で、デカールレイヤーは Decal Layer 1-7 と名付けられます。各デカールレイヤーは特定の名前を付けて、差別化することができます。この手順は、まず デフォルト設定ウィンドウ を開いてから Decal Layer Names に行きます。ここから各デカールレイヤー個別に名前を設定できます。

    パフォーマンス関連

    デカールレイヤーを有効にすると、メモリー消費、GPU パフォーマンスの負担が生じ、より多くのシェーダーバリアントを生みます (従って、ビルドタイムを増やしてください)。

    デカールレイヤーシステムを使い、メッシュレンダラーまたは地形の Rendering Layer Mask を介してデカールを無効にしても、パフォーマンスを維持できません。パフォーマンスを維持するには、メッシュレンダラーまたは地形の Receive Decals プロパティーを無効にする必要があります。

    HDRP がデカールを不透明なマテリアルに適用できるように実装するには、深度プレパスで深度をレンダリングし、操作による CPU リソース強度を追加しなければなりません。深度プレパスを完全強要しない限り、Receive Decals が有効化されたマテリアルのみ、深度プレパスでレンダリングします。デカールレイヤーシステムを持つデカールを無効にすると、HDRP は深度プレパスでレンダリングを実行します。このため、パフォーマンスを維持するために、マテリアルで Receive Decals プロパティーを無効にする必要があるのです。

    Unity 2020.2 以前のデータ移行

    Unity 2020.2 以前、新しいメッシュレンダラーおよび Terrain (地形) の Rendering Layer Mask に対するデフォルト値には、デカールレイヤーフラグが 何も含まれていません。つまり、デカールレイヤーを有効にすると、これらメッシュレンダラーおよび地形は、デフォルトでデカールを全く受信しません。最新バージョンは Decal Layer Default をデフォルトで使用しています。

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