Hair Master Node
HD レンダーパイプライン (High Definition Render Pipeline、HDRP) でヘアーマテリアルを使うと、髪の毛と毛皮をレンダリングすることができます。現実的なヘアーエフェクトを作り出すため、ヘアーカードと呼ばれるレイヤーを使います。各ヘアーカードは、髪の毛の異なる部分を表現します。一部透明なヘアーカードを使う場合は、どの角度から見ても後から前への順序になるよう、手動で並び替えなければなりません。
ヘアーシェーダーには Lit シェーダー のような、Inspector の実装がありません。代わりにノードベースのシェーダーエディターである、シェーダーグラフ を使いヘアーマテリアルを設定する必要があります。
ヘアーマスターノードは、ヘアーシェーダーグラフの宛先ノードです。他のシェーダーグラフに添付してヘアーマテリアルの外観を制御するプロパティーを編集できる、ポートが含まれています。ヘアーマテリアルをカスタマイズするには、これらのスロットに付随する入力を、独自の値でオーバーライドしなければなりません。
ヘアーマテリアルの作成と編集
ヘアーマテリアルはシェーダーグラフマスターノードを使うため、ヘアーマテリアルの作成および編集には、特定のプロセスを踏む必要があります。そのやり方に関する情報は、シェーダーグラフで HDRP マテリアルをカスタマイズする を参照してください。シェーダーグラフからマテリアルを作成するときは、Blackboard で展開されるプロパティーは Exposed Properties セクションに表示されます。
プロパティー
マスターノード、および各マテリアルにはプロパティーがあります。マテリアルプロパティー はシェーダーを使うマテリアルの Inspector にあります。マスターノードのプロパティーは、シェーダーグラフの中で、2 つのセクションに分かれています。
- [Master Node 入力ポート](#InputPorts): 他のノードの出力に繋げたり、または場合によっては独自の値を追加できる、マスターノード上のシェーダーグラフ入力ポートです。
- [Master Node 設定メニュー](#SettingsMenu): マスターノードをカスタマイズして、追加の入力ポートを展開するために使う設定です。
Master Node 入力ポート
次の表は、プロパティータイプと各ポートに使われるシェーダーステージを含む、ヘアーマスターノードの入力ポートを示しています。シェーダーステージに関する詳細は、シェーダーステージ を参照してください。
プロパティー | 型 | ステージ | 説明 |
---|---|---|---|
Position | Vector 3 | Vertex | ヘアーカードまたはスプラインの頂点位置です。 |
Diffuse Color | Vector 3 | Fragment | ピクセルの色です。マップに割り当てるには、サンプル Texture2D を繋げます。 |
Specular Occlusion | Float | Fragment | スペキュラーグローバルイルミネーションの強度の乗数です。このポートは Specular Occlusion Mode ドロップダウンから Custom を選択したときのみ表示されます。 |
Normal | Vector 3 | Fragment | ヘアーカードの法線です。 |
Bent Normal | Vector 3 | Fragment | ヘアーカードの ベント法線 です。 |
Smoothness | Float | Fragment | プライマリーの鏡面ハイライトの外観を設定します。滑らかな面に当たる光線はすべて、予測可能な一定角度で跳ね返ります。鏡のように光を反射する、完璧な滑らかさを持つ面を作るには、この値を 1 に設定します。より粗い面には、値を低く設定します。 |
アンビエントオクルージョン | Float | Fragment | 拡散グローバルイルミネーションの強度の乗数です。0 に設定するとすべてのグローバルイルミネーションを除去します。 |
Transmittance | Vector 3 | Fragment | 後方からヘアーに浸透するスペキュラーライティングの一部を設定します。これはカラーごとのチャンネルベースなので、浸透するライトの色を設定するためにこのプロパティーを使うことができます。(0, 0, 0) に設定すると、ヘアーからライトが浸透するのを防ぎます。(1, 1, 1) に設定すると効果が強化され、大量の白いライトがヘアーに浸透します。 |
Rim Transmission Intensity | Float | Fragment | 先端周辺の後方から照明が当たるヘアーの強度を設定します。0 に設定すると透過エフェクトを完全に除去します。 |
Hair Strand Direction | Vector 3 | Fragment | ヘアーカードでモデリングをする際に (根本か先端にかけて) ヘアーの流れる方向を設定します。 |
Alpha | Float | Fragment | ヘアーのカベレッジ/不透明度を設定します。0 に設定すると完全に透明になり、1 に設定すると完全に不透明になります。 |
Alpha Clip Threshold | Float | Fragment | HDRP が各ピクセルをレンダリングするか決定するために使う、アルファ値の限度を設定します。ピクセルのアルファ値がこのしきい値と同等または高い場合、HDRP はピクセルをレンダリングします。しきい値よりも値が低い場合は、HDRP はピクセルをレンダリングしません。このポートは Alpha Clipping 設定が有効なときのみ表示されます。 |
Alpha Clip Threshold (Depth Prepass) | Float | Fragment | HDRP がフラグメントを深度プレパスから破棄するかを決定するために使う、アルファ値制限を設定します。 このポートは Alpha Clipping と Transparent Depth Postpass 設定を有効にしたときのみ表示されます。 |
Alpha Clip Threshold (Depth Postpass) | Float | Fragment | HDRP がフラグメントを深度ポストパスから破棄するかを決定するために使う、アルファ値制限を設定します。 このポートは Alpha Clipping と Transparent Depth Postpass 設定を有効にしたときのみ表示されます。 |
Alpha Clip Threshold (Shadow Pass) | Float | Fragment | HDRP がピクセルにシャドウをレンダリングするかを決定するために使うアルファ値制限を設定します。 このポートは、Use Shadow Threshold 設定を有効にしたときのみに表示されます。 |
Specular AA Screen Space Variance | Float | Fragment | Geometric Specular AA の強度を 0 から 1 の間に設定します。値が高いほど、エイリアシングの少ないよりぼやけた結果になります。 このポートは、Geometric Specular AA 設定が有効になっているときのみ表示されます。 |
Specular AA Threshold | Float | Fragment | HDRP がアーティファクトを減らすためにスムースネス値から減算する最大値を設定します。 このポートは、Geometric Specular AA 設定が有効になっているときのみ表示されます。 |
Specular Tint | Vector 3 | Fragment | 主要 (Primary) スペキュラーハイライトの色を設定します。 |
Specular Shift | Float | Fragment | 主要 (Primary) スペキュラーハイライトの位置を修正します。 |
Secondary Specular Tint | Vector 3 | Fragment | 副次 (Secondary) スペキュラーハイライトの色を設定します。 |
Secondary Smoothness | Float | Fragment | 副次 (Secondary) スペキュラーハイライトの外観を制御します。この値を増やすと、ハイライトが小さくなります。 |
Secondary Specular Shift | Float | Fragment | 副次 (Secondary) スペキュラーハイライトの位置を修正します。 |
Baked GI | Vector 3 | Fragment | ビルトイン拡散 GI ソリューションを設定した値に置き換えます。これはメッシュの正 面 限定です。 このポートは Override Baked GI 設定が有効なときのみ表示されます。 |
Baked Back GI | Vector 3 | Fragment | ビルトイン拡散 GI ソリューションを設定した値に置き換えます。これはメッシュのバック フェイス 限定です。 このポートは Override Baked GI 設定が有効なときのみ表示されます。 |
Depth offset | Float | Fragment | シェーダーがフラグメントの深度を増やすために使う値を設定します。カメラからフラグメントを遠ざけ、ヘアーカードの平坦な外観を緩和するのに役立ちます。 このポートは Depth Offset 設定が有効なときのみ表示されます。 |
Master Node 設定メニュー
以下のプロパティーを表示するには、マスターノードの右上にある歯車アイコンをクリックしてください。
プロパティー | 説明 |
---|---|
Precision | シェーダーがヘアーをどのようにレンダリングするかを処理する演算の精度を選択します。精度の低い演算は速いですが、鏡面ハイライトの強度が不正確であるといった問題が生じます。 • Inherit: グローバルの精度設定を使います。これは最も正確性の高い設定であり、精度の問題は全く生じませんが、シェーダー演算は他の値よりも遅くなります。 • Float: 単精度浮動小数点数を使います。各演算のリソース負荷を減少させるため、ヘアーシェーダーでの計算のスピードが上がります。精度レベルが低めなため、不正確な強度や粗い遷移など、特に鏡面ハイライトの問題が生じる場合があります。 • Half: 半精度浮動小数点数を使います。これは最も速い精度レベルで、リソース負荷は最も小さいです。この精度設定は、最も問題を生じやすい設定です。半 精度浮動小数点数は現在、ヘアーシェーダーで試験的に使われています。 |
Surface Type | ドロップダウンを使って、マテリアルが透明度をサポートするかを定義します。Transparent Surface Type のマテリアルは、Opaque Surface Type のマテリアルよりも、レンダリングによりリソースに負荷がかかります。HDRP は選択された Surface Type に応じて、さらにプロパティーを展開します。機能に関する情報および各 Surface Type が展開するプロパティ―のリストは、サーフェスタイプ に関するドキュメントを参照してください。 |
Double-Sided | この設定を有効にすると、HDRP はジオメトリにあるポリゴンの両面をレンダリングします。機能に関する情報およびこの機能が展開するプロパティーのリストは、 両面 に関するドキュメントを参照してください。 |
Alpha Clipping | チェックボックスを有効にすると、マテリアルが Cutout シェーダー として作用します。この機能を有効にすると、他のプロパティーが展開されます。機能の詳細および展開されるプロパティーのリストは、Alpha Clipping に関するドキュメント を参照してください。 |
- Use Shadow Threshold | この設定を有効にすると、アルファクリッピングシャドウに別のしきい値を設定します。 |
Receive Decals | チェックボックスを有効にすると、HDRP はマテリアルの表面にデカールを描画できるようになります。 |
Receive SSR (Transparent) | この設定を有効にすると、HDRP はスクリーンスペースリフレクションパスを処理する際に、マテリアルを含めます。透明サーフェスタイプには、別のオプションがあります。 |
Add Precomputed Velocity | この設定を有効にすると、Alembic ファイルに保存された事前計算された速度情報を使います。 |
Geometric Specular AA | この設定を有効にすると、マテリアルで HDRP がジオメトリックアンチエイリアスを実行します。曲がったジオメトリの表面のスムースネス値を修正し、スペキュラーアーティファクトを除去します。機能に関する詳細およびこの機能が展開するプロパティーのリストは、ジオメトリックスペキュラーアンチエイリアシングドキュメント を参照してください。 |
Specular Occlusion Mode | HDRP がスペキュラーオクルージョンを計算するために使うモードです。 • Off: スペキュラーオクルージョンを無効にします。 • From AO: アンビエントオクルージョンマップとカメラのビューベクトルから、スペキュラーオクルージョンを計算します。 • From AO and Bent Normal: アンビエントオクルージョンマップ、ベント法線マップ、およびカメラのビューベクトルから、スペキュラーオクルージョンを計算します。 • Custom: 独自のスペキュラーオクルージョン値を特定できます。 |
Override Baked GI | この設定を有効にすると、2 つのベイクされた GI 入力ポート が展開されます。マテリアルはシーンでグローバルイルミネーションを無視し、代わりに独自のグローバルイルミネーション値を使いマテリアルの外観をカスタマイズできます。 |
Depth offset | この設定を有効にすると、DepthOffset 入力ポート が展開され、フラグメントの深度値を増加させ、カメラからの距離をとるために使うことができます。ヘアーカードの平坦な外観を緩和するのに役立ちます。 |
Use Light Facing Normal | この設定を有効にすると、ヘアー法線は常にライトの方を向きます。ヘアーの動作を模倣します。 |
Override ShaderGUI | シェーダーグラフが使う ShaderGUI をオーバーライドできます。true の場合は、ShaderGUI プロパティーが表示され、使用する ShaderGUI を特定できます。 |
- ShaderGUI | クラスパスを含む、ShaderGUI クラスのフルネームです。 |
マテリアルの Inspector
以下のプロパティーはシェーダーグラフの Blackboard で展開したプロパティーとともに、Inspector の Exposed Properties セクションにあります。Override ShaderGUI を true
に設定すると、Material Properties セクションは表示されず、代わりに特定した ShaderGUI が表示されます。
プロパティー | 説明 |
---|---|
Enable GPU instancing | このチェックボックスを有効にすると、HDRP は同じジオメトリのメッシュとマテリアルを可能な限り一度にレンダリングします。これにより、より速くレンダリングできます。HDRP は異なるマテリアルを含むメッシュや、ハードウェアが GPUインスタンシングをサポートしない場合、一括レンダリングはできません。例えばオブジェクトピボットをベースとしたアニメーションを含むゲームオブジェクトの 静的バッチ はできませんが、GPU はそれらをインスタンスすることができます。 |
Emission | エミッションがグローバルイルミネーションに影響するかを切り替えます。 |
- Global Illumination | ドロップダウンから、カラーエミッションがどのようにグローバルイルミネーションと作用するかを選択します。 • Realtime: このオプションを選択すると、エミッションがリアルタイムのグローバルイルミネーションの結果に影響を与えます。 • Baked: このオプションを選択すると、エミッションはベイキングプロセス中のみ、グローバルイルミネーションに影響を与えます。 • None: このオプションを選択すると、エミッションはグローバルイルミネーションに影響を与えません。 |
Motion Vector For Vertex Animation | チェックボックスを有効にすると、HDRP は頂点アニメーションを使うゲームオブジェクトに、モーションベクトルを書きます。これは頂点アニメーションが引き起こすゴースティングを除去します。 |
制限
エリア ライト は現在、Fabric または Hair マテリアルをサポートしていません。つまり、以下のマテリアルを照らしたり影を作ったりしません。