Decal Renderer Feature
Decal Renderer Feature を使用すると、Unity は特定のマテリアル (デカール) をシーン内の他のオブジェクトに投影できます。デカールはシーンのライティングと相互作用し、メッシュを包むように投影されます。
サンプルシーンの Decal Projector
この機能の使用方法
シーンにデカールを追加するには:
URP レンダラーに Decal Renderer Feature を追加 します。
マテリアルを作成して、
Shader Graphs/Decal
シェーダーに割り当てます。マテリアルで、ベースマップと法線マップを選択します。新しい Decal Projector ゲームオブジェクトを作成するか、既存のゲームオブジェクトに Decal Projector コンポーネント を追加します。
以下の画像は、シーン内の Decal Projector を示しています。
詳細については、Decal Projector コンポーネント も参照してください。
クアッドゲームオブジェクトを作成します。
ゲームオブジェクトにデカールマテリアルを割り当てます。
デカールを投影するサーフェス上にクアッドを配置します。必要に応じて、Z ファイティングを防ぐために、メッシュバイアス の値を調整します。
制限事項
この機能には以下の制限があります。
- デカール投影は透明なサーフェスでは機能しません。
Decal Renderer Feature のプロパティ
このセクションでは、Decal Renderer Feature のプロパティについて説明します。
Inspector ビューの Decal Renderer Feature
Technique
Renderer Feature のレンダリング手法を選択します。
このセクションでは、このプロパティのオプションについて説明します。
Automatic
ビルドプラットフォームに基づいて自動的にレンダリング手法が選択されます。
DBuffer
デカールがデカールバッファ (DBuffer) にレンダリングされます。不透明レンダリングの際に、不透明なオブジェクトの上に DBuffer の内容がオーバーレイされます。
この手法を選択すると Surface Data プロパティが表示されます。Surface Data プロパティを使用すると、基になるメッシュとブレンドする、デカールのサーフェスプロパティを指定できます。Surface Data プロパティには以下のオプションがあります。
- Albedo: デカールは通常色と発光色に影響します。
- Albedo Normal: デカールは通常色、発光色、および法線に影響します。
- Albedo Normal MAOS: デカールは、通常色、発光色、法線、メタリック値、スムースネス値、およびアンビエントオクルージョン値に影響します。
制限事項:
この手法には DepthNormal プレパスが必要です。このプレパスにより、タイルベースのレンダリングを実装する GPU では、この手法の効率が低下します。
この手法は、パーティクルおよび地形のディテールでは機能しません。
Screen Space
Unity は、深度テクスチャから再構築した法線を使用して、不透明なオブジェクトの後にデカールをレンダリングします。不透明なメッシュの上にデカールをメッシュとしてレンダリングします。この手法は法線ブレンディングのみサポートしています。
この手法を選択すると以下のプロパティが表示されます。
プロパティ | 説明 |
---|---|
Normal Blend | このプロパティのオプション (Low、Medium、High) は、Unity が深度テクスチャから法線ベクトルを再構築するときに取得する深度テクスチャのサンプル数を決定します。品質が高いほど、再構築された法線がより正確になり、パフォーマンスへの影響が大きくなります。 |
Low | 法線を再構築するときに 1 つの深度サンプルを取得します。 |
Medium | 法線を再構築するときに 3 つの深度サンプルを取得します。 |
High | 法線を再構築するときに 5 つの深度サンプルを取得します。 |
Use GBuffer | Unity はこのオプションをディファードレンダリングパスで使用します。ディファードレンダリングパスでは、デカールは通常色、発光色、および法線に影響します。 |
Max Draw Distance
デカールをレンダリングする、カメラからの最大距離です。
Decal Projector コンポーネント
Decal Projector コンポーネントにより、Unity はシーン内の他のオブジェクトにデカールを投影できます。Decal Projector コンポーネントは、Decal シェーダーグラフ (Shader Graphs/Decal
) が割り当てられたマテリアルを使用する必要があります。
Decal Projector の使用方法の詳細については、この機能の使用方法 のセクションを参照してください。
Decal Projector コンポーネントには、シーンビュー編集ツールと Decal Projector プロパティが含まれています。
Inspector の Decal Projector コンポーネント
ノート: デカールマテリアルをゲームオブジェクトに直接 (Decal Projector コンポーネントを使用せずに) 割り当てても、Decal Projector はそうしたゲームオブジェクトにはデカールを投影しません。
デカールシーンビュー編集ツール
Decal Projector を選択すると、その境界と投影方向が表示されます。
Decal Projector は、バウンディングボックス内のすべてのメッシュにデカールマテリアルを描画します。
白い矢印は投影方向を示しています。矢印のベースはピボットポイントです。
Decal Projector コンポーネントは、以下のシーンビュー編集ツールを提供します。
アイコン | アクション | 説明 |
---|---|---|
スケール | Projector ボックスとデカールをスケールする場合に選択します。このツールは、Projector ボックスのサイズに合わせてマテリアルの UV を変更します。ピボットポイントには影響しません。 | |
トリミング | Projector ボックスでデカールをトリミングまたはタイリングする場合に選択します。このツールは、Projector ボックスのサイズを変更しますが、マテリアルの UV は変更しません。ピボットポイントには影響しません。 | |
ピボット/UV | 投影ボックスを移動せずにデカールのピボットポイントを移動する場合に選択します。このツールはトランスフォームの位置を変更します。 また、投影されたテクスチャの UV 座標にも影響します。 |
Decal Projector コンポーネントのプロパティ
このセクションでは、Decal Projector コンポーネントのプロパティについて説明します。
プロパティ | 説明 |
---|---|
Scale Mode | この Decal Projector がルートゲームオブジェクトの Transform コンポーネントから Scale 値を継承するかどうかを選択します。 オプション: • Scale Invariant: Unity は、このコンポーネントのスケーリング値 (Width、Height など) のみを使用し、ルートゲームオブジェクトの値を無視します。 • Inherit from Hierarchy: Unity は、ルートゲームオブジェクトの Transform の 不可逆スケール 値に Decal Projector のスケール値を乗算することにより、デカールのスケーリング値を評価します。 ノート: Decal Projector は直交投影を使用するため、ルートゲームオブジェクトが 歪んでいる 場合、デカールは正しくスケールされません。 |
Width | Projector バウンディングボックスの幅です。Projector は、ローカル X 軸に沿ってこの値に一致するようデカールをスケールします。 |
Height | Projector バウンディングボックスの高さです。Projector は、ローカル Y 軸に沿ってこの値に一致するようデカールをスケールします。 |
Projection Depth | Projector バウンディングボックスの深度です。Projector はローカル Z 軸に沿ってデカールを投影します。 |
Pivot | ルートゲームオブジェクトの原点を基準とする Projector バウンディングボックスの中心のオフセット位置です。 |
Material | 投影するマテリアルです。マテリアルは、マテリアルタイプがデカールであるシェーダーグラフを使用する必要があります。詳細については、Decal シェーダーグラフ のページを参照してください。 |
Tiling | UV 軸に沿ったデカールマテリアルのタイリング値です。 |
Offset | UV 軸に沿ったデカールマテリアルのオフセット値です。 |
Opacity | このプロパティを使用すると不透明度の値を指定できます。値が 0 の場合、デカールは完全に透明になり、値が 1 の場合、デカールは Material で定義されたとおりに不透明になります。 |
Draw Distance | この Projector がデカールの投影を停止し、URP がデカールをレンダリングしなくなる、カメラからデカールまでの距離です。 |
Start Fade | スライダーを使用して、Projector がデカールのフェードアウトを開始する、カメラからの距離を設定します。値は 0 から 1 で、Draw Distance に対する割合を表します。値が 0.9 の場合、Unity は Draw Distance の 90% の距離でデカールのフェードアウトを開始し、Draw Distance でフェードアウトを終了します。 |
Angle Fade | スライダーを使用して、デカールの逆方向と受け取るサーフェスの頂点法線との間の角度に基づく、デカールのフェードアウト範囲を設定します。 |
パフォーマンス
URP はマテリアルの GPU インスタンシングをサポートしています。シーン内の複数のデカールが同じマテリアルを使用しており、マテリアルの Enable GPU Instancing プロパティがオンになっている場合、URP はマテリアルのインスタンスを作成し、パフォーマンスへの影響を減らします。