Hair
Hair Master Stack (ヘアマスタースタック) を使うと、髪の毛と毛皮をレンダリングすることができます。現実的なヘアエフェクトを作り出すため、ヘアカードと呼ばれるレイヤーを使います。各ヘアカードは、髪の毛の異なる部分を表現します。一部透明なヘアカードを使う場合は、どの角度から見ても後から前への順序になるよう、手動で並び替えなければなりません。
Hair Shader Graph の作成
Shader Graph で Hair マテリアルを作成するには、以下のいずれかの方法を使うことができます。
既存の Shader Graph を変更します。
- Shader Editor で Shader Graph を開きます。
- Graph Settings で HDRP ターゲットを選択します。見つからない場合は、Active Targets へ移動して Plus ボタンをクリックし、HDRP を選択します。
- Material ドロップダウンで Hair を選択します。
新しい Shader Graph を作成します。
- Assets > Create >Shader Graph > HDRP へ移動し、Hair Shader Graph をクリックします。
コンテキスト
この Mater Stack マテリアルタイプには、独自の Graph Settings があります。設定とブロックの関係性により、どのブロックが Graph に関連するかに影響を与えます。このセクションには、この Master Stack マテリアルタイプがデフォルトで追加するブロックに関する情報と、どのブロックがこの Master Stack マテリアルタイプの Graph Settings に対するプロパティーを設定するかに関する情報が含まれています。
Graph Settings とブロックの関係性に関する詳細は、 コンテキストとブロック を参照してください。
Vertex コンテキスト
デフォルト
新しく Hair Master Stack を作成する際、Vertex Context にはデフォルトで以下のブロックが含まれます。
プロパティー | 説明 | 依存関係の設定 | デフォルト値 |
---|---|---|---|
Position | 頂点ごとの、オブジェクト空間頂点の位置です。 | None | CoordinateSpace.Object |
Normal | 頂点ごとの、オブジェクト空間頂点法線です。 | None | CoordinateSpace.Object |
Tangent | 頂点ごとの、オブジェクト空間頂点の接線です。 | None | CoordinateSpace.Object |
関連性
この Master Stack マテリアルタイプは、デフォルトですべての頂点ブロックを頂点コンテキストに追加し、その他の関連するブロックを持ちません。
Fragment コンテキスト
デフォルト
新しく Hair Master Stack を作成する際、Fragment コンテキストにはデフォルトで次のブロックが含まれます。
プロパティー | 説明 | 設定依存 | デフォルト値 |
---|---|---|---|
Base Color | マテリアルのベースカラーです。 | None | Color.grey |
Normal Tangent Space | 接線空間におけるマテリアルの法線です。 | • Fragment Normal Space は Tangent に設定 | CoordinateSpace.Tangent |
Bent Normal | フラグメントのベント法線です。HDRP はベント法線マップを使い、より正確なアンビエントオクルージョンのシミュレーションを行います。ベント法線は、ディフューズライトとのみ、機能します。 | • Material は Eye、Fabric、Hair、Lit、または StackLit に設定 | CoordinateSpace.Tangent |
Hair Strand Direction | ヘアカードでモデリングを実行する際の、毛根から毛先にかけて髪の毛が流れる方向です。 | • Material は Hair に設定 | Vector3(0, -1, 0) |
Transmittance | 後方から髪を通り抜けるスペキュラーライティングの一部です。これはカラーごとのチャンネルベースなので、通り抜けるライトの色を設定するためにこのプロパティーを使うことができます。これを(0、0、0)に設定すると、ライトが髪を通り抜けるのを防ぐことができます。 これを(1、1、1)に設定すると、髪の毛を通り抜ける多くの白色光で強い効果が得られます。 | • Material は Hair に設定 | Vector3(0.3, 0.195, 0.09) |
Rim Transmission Intensity | 髪の端周辺の逆光の強度です。0 に設定すると、透過の効果が完全に除去されます。 | • Material は Hair に設定 | 0.2 |
Smoothness | マテリアルの滑らかさです。滑らかなサーフェスに当たるすべての光線は、予測可能な一定の角度で跳ね返ります。光を鏡のように反射する完全に滑らかなサーフェスのためには、この値を 1 に設定します。スムーズでない表面は(光がマイクロサーフェスの凸凹に当たるため)より広い範囲の角度で光を反射します。そのため、リフレクションにはディテールが少なくなり、より拡散したパターンでサーフェス全体に広がります。 | None | 0.5 |
Ambient Occlusion | マテリアルのアンビエントオクルージョンです。これは、メッシュジオメトリではなく、マテリアルに存在するディテールによって作られた、ゲームオブジェクトのサーフェス上のフラグメントのオクルージョンを近似します。値が 0 の場合、フラグメントが完全に塞がれていることを示し、黒く表示されます。値が 1 の場合は、フラグメントがまったく塞がれていないことを意味し、環境光の色は変わりません。 | None | 1.0 |
Alpha | マテリアルのアルファ値です。マテリアルの透明度を決定します。想定範囲は 0 - 1 です。 | None | 1.0 |
Specular Tint | 主要スペキュラーハイライトの色です。 | • Material は Hair に設定 | Color.white |
Specular Shift | 主要スペキュラーハイライトの位置です。 | • Material は Hair に設定 | 0.1 |
Secondary Specular Tint | 補助的なスペキュラーハイライトの色です。 | • Material は Hair に設定 | Color.grey |
Secondary Specular Shift | 補助的なスペキュラーハイライトの位置です。 | • Material は Hair に設定 | -0.1 |
Emission | マテリアルのサーフェスから発するライトの色です。エミッシブマテリアルは、シーンの光源として表示されます。 | None | Color.black |
関連性
使用する グラフ設定 に応じ、Shader Graph は以下のブロックを Fragment コンテキストに追加することができます。
プロパティー | 説明 | 設定依存 | デフォルト値 |
---|---|---|---|
Alpha Clip Threshold | 各ピクセルをレンダリングするか判断するために HDRP が使うアルファ制限値です。ピクセルのアルファが制限値以上の場合、HDRP はピクセルをレンダリングします。値が制限値より低い場合は、HDRP はピクセルをレンダリングしません。デフォルト値は 0.5 です。 | • Alpha Clipping は有効 | 0.5 |
Alpha Clip Threshold Depth Postpass | 透明深度ポストパスに HDRP が使うアルファ値制限です。ピクセルのアルファ値が制限と等しいあるいは高い場合、HDRP はピクセルをレンダリングします。値が制限値より低い場合は、HDRP はピクセルをレンダリングしません。デフォルト値は 0.5 です。 | • Alpha Clipping 有効 • Transparent Depth Postpass 有効 |
0.5 |
Alpha Clip Threshold Depth Prepass | 透明深度プレパスに HDRP が使うアルファ制限値です。ピクセルのアルファ値が制限値以上の場合、HDRP はピクセルをレンダリングします。値が制限値より低い場合は、HDRP はピクセルをレンダリングしません。デフォルト値は 0.5 です。 | • Alpha Clipping は有効 • Transparent Depth Prepass は有効 |
0.5 |
Alpha Clip Threshold Shadow | ピクセルの影をレンダリングするか判断するために HDRP が使うアルファ制限値です。ピクセルのアルファ値が制限値以上の場合、HDRP はピクセルをレンダリングします。値が制限値より低い場合は、HDRP はピクセルをレンダリングしません。デフォルト値は 0.5 です。 | • Use Shadow Threshold は有効 | 0.5 |
Baked Back GI | メッシュの裏 面 のみに適用するグローバルイルミネーション (GI) 値です。ビルトインのディフューズ GI ソリューションを置き換えます。 このポートは Override Baked GI 設定を有効化したときのみに表示されます。 |
• Override Baked GI 有効 | 0.0 |
Baked GI | メッシュの表 面 のみに適用するグローバルイルミネーション (GI) 値です。ビルトインのディフューズ GI ソリューションを置き換えます。 | • Override Baked GI 有効 | 0.0 |
Depth Offset | Shader がフラグメントの深度を増大させるために使う値です。現実的な結果を得るために、この Block には、視差オクルージョンマッピング ノードの結果を入力する必要があります。 | • Depth Offset 有効 | 0.0 |
Normal Object Space | オブジェクト空間におけるマテリアルの法線です。 | • Fragment Normal Space は Object に設定 | CoordinateSpace.Object |
Normal World Space | ワールド空間におけるマテリアルの法線です。 | • Fragment Normal Space は World に設定 | CoordinateSpace.World |
Specular AA Screen Space Variance | ジオメトリックスペキュラーアンチエイリアス 効果の強度です (0 と 1 の間)。値が高いと、それだけエイリアシングが少なく、よりぼやけた結果が得られます。 | • Specular AA 有効 | 0.0 |
Specular AA Threshold | アーティファクトを減らすために、HDRP がスムースネス値から差し引く最大値です。 | • Specular AA 有効 | 0.0 |
Specular Occlusion | スペキュラーグローバルイルミネーションの強さの乗数です。 | • Specular Occlusion Mode は Custom に設定 | 1.0 |
Graph Settings
Surface Options
プロパティー | 説明 |
---|---|
Surface Type | マテリアルが透明度をサポートするかを指定します。Transparent Surface Type のマテリアルは、Opaque (不透明) な Surface Type のマテリアルよりも、リソースに負荷がかかります。選択するオプションに応じて、HDRP はさらにプロパティーを表示します。オプションは以下の通りです。 • Opaque: • Transparent: クリアなプラスチックやガラスなどのような、光が突き通ることができる半透明のマテリアルをシミュレートします。 機能に関する詳細および各 Surface Type が表示するプロパティ―のリストは、サーフェスタイプに関するドキュメント を参照してください。 |
- Rendering Pass | HDRP がマテリアルをプロセスするレンダリングパスを指定します。 • Before Refraction: 屈折パスの前にゲームオブジェクトを描画します。つまり、HDRP は屈折をプロセスするときにマテリアルを含みます。このオプションを展開するためには、Surface Type ドロップダウンから Transparent を選択します。 • Default: Surface Type に応じて、デフォルトの不透明、または透明レンダリングパスでゲームオブジェクトを描画します。 • Low Resolution: Default パスの後で、半分の解像度でゲームオブジェクトを描画します。 • After post-process: Unlit マテリアル のみに使われます。すべてのポストプロセスエフェクト後にゲームオブジェクトを描画します。 |
- Blending Mode | HDRP がマテリアルの各ピクセルのカラーと背景ピクセルをブレンドするために使う方法を特定します。オプションは以下の通りです。 • Alpha: マテリアルのアルファ値を使ってオブジェクトの透明度を変更します。0 は完全透明です。1 は完全に不透明ですが、マテリアルは透明レンダーパス中にレンダリングされます。これは雲など、完全に可視化したいものの、時間とともにフェードさせたい景観に役立ちます。 • Additive: マテリアルの RGB 値を背景色に追加します。マテリアルのアルファチャンネルが強度を調整します。0 の値は何も追加せず、1 の値はマテリアルのカラーを 100% 背景色に追加します。 • Premultiply: すでにマテリアルの RGB 値とアルファチャンネルを乗算したものと想定します。画像をフィルタリングする、または異なるレイヤーを構成する際に Alpha ブレンドよりも良い結果が得られます。 このプロパティーは Surface Type を Transparent に設定したときのみに表示されます。 |
- Receive Fog | フォグが透明な表面に影響を与えるかを示します。無効にすると、シーンでフォグを計算する際に HDRP はマテリアルを考慮しません。 |
- Depth Test | HDRP が深度テストに使う比較関数を特定します。 |
- Depth Write | HDRP が、マテリアルを使うゲームオブジェクトの深度値を書き込むかを示します。 |
- Cull Mode | マテリアルを使うゲームオブジェクトに除去するフェースを特定します。オプション: • Front: メッシュのフロントフェースを除去します。 • Back: メッシュのバックフェースを除去します。 このプロパティは、Double Sided を無効にしたときのみに表示されます。 |
- Sorting Priority | これを使うと、重ねられた透明なサーフェスのレンダリング順序を変更できます。詳細と使用例については、マテリアルソートに関するドキュメント を参照してください。 このプロパティーは、Surface Type を Transparent に設定したときのみに表示されます。 |
- Back Then Front Rendering |
HDRP がマテリアルを 2 つの別のドローコールでレンダリングするかを示します。HDRP は最初のドローコールで裏面をレンダリングし、2 番目の呼び出しで正面をレンダリングします。 このプロパティーは、Surface Type を Transparent に設定したときのみに表示されます。 |
- Transparent Depth Prepass | HDRP が並び替えを向上させるために透明なサーフェスからポリゴンを深度バッファに追加するかを示します。HDRP はライティングパスの前にこの操作を実行し、GPU のパフォーマンスを向上させます。 |
- Transparent Depth Postpass | HDRP がポストプロセスが使う深度バッファにポリゴンを追加するかを示します。HDRP はライティングパスの前にこの操作を実行します。モーションブラー または フィールドの深度 など、深度情報を使うポストプロセスエフェクトを利用する際に、この機能を有効にすると便利です。 |
- Transparent Writes Motion Vectors | HDRP がマテリアルを使う透明なゲームオブジェクトにモーションベクトルを描画するかを示します。これにより HDRP は透明なオブジェクトに対し、モーションブラーのようなエフェクトを処理できます。モーションベクトルに関する詳細は、モーションベクトルに関するドキュメンテーション を参照してください。 このプロパティーは Surface Type を Transparent に設定したときのみに表示されます。 |
- - Preserve Specular Lighting |
アルファブレンディングによってスペキュラーハイライトの強度を減らすかどうかを示します。これはガラスや水を照らす太陽光線のような、透明なサーフェスのスペキュラ―要素を保存します。 このプロパティーは、Surface Type を Transparent に設定したときのみに表示されます。 |
Alpha Clipping |
マテリアルが Cutout シェーダー のように作動するかを示します。 機能に関する詳細およびこの機能が持つプロパティーのリストは、Alpha-Clipping に関するドキュメント を参照してください。 |
- Use Shadow Threshold |
HDRP がアルファクリッピングに別のしきい値を使うかを示します。 このプロパティーは Alpha Clipping を有効にしたときのみに表示されます。 |
- Alpha to Mask |
Alpha-to-coverage をオンにするかどうかを示します。プロジェクトで MSAA を使う場合は、Alpha-to-coverage がマルチサンプルカバレッジマスクをピクセルシェーダーの結果アルファ値に比例してマスクします。これは通常、アンチエイリアスを用いた植生とその他のアルファテストされたシェーダーに使われます。 このプロパティーは、Alpha Clipping が有効なときのみに表示されます。 |
Double Sided Mode | HDRP がメッシュジオメトリでポリゴンの面をどのようにレンダリングするかを示します。オプションは下記から選択できます。 • Disabled: ポリゴンの片面のみをレンダリングします。 • Enabled: ポリゴンの両面をレンダリングします。このモードでは、裏面の法線が表面と同じになります。 • 反転法線: ポリゴンの両面をレンダリングします。このモードでは、裏面の法線は、正面法線の 180°になります。これはマテリアルにも適用され、ジオメトリの両側が同じような外観になります。 • Mirrored Normals: ポリゴンの両面をレンダリングします。このモードでは、裏面の法線は正面の法線を反転します。これはマテリアルにも適用され、裏面では反転します。これは例えば葉っぱなど、ジオメトリの両側で同じ形状を維持したい場合に便利です。 この機能に関する詳細は、両面 を参照してください。 |
Fragment Normal Space | マテリアルが使う法線マップ空間を特定します。 • TangentSpace: 接線空間 の法線を定義します。メッシュ上でテクスチャをタイリングする際に使います。 • ObjectSpace: オブジェクト空間 の法線を定義します。Terrain (地形) のような平面マッピングのゲームオブジェクトに使います。 • WorldSpace: ワールド空間の法線を定義します。 |
Receive Decals | HDRP がマテリアルの表面にデカールを描画できるかを示します。 |
Receive SSR/SSGI | スクリーンスペースリフレクションパスをプロセスする際に、HDRP がマテリアルを含むかを示します。HDRP はスクリーンスペースのグローバルイルミネーションを計算する際にもマテリアルを考慮します。 このプロパティは、Surface Type を Opaque に設定したときのみに表示されます。 |
Receive SSR Transparent | スクリーンスペースリフレクションパスを処理する際に、HDRP がマテリアルを含むかを示します。 このプロパティーは、Surface Type を Transparent に設定したときのみに表示されます。 |
Geometric Specular AA | マテリアルで HDRP がジオメトリックのアンチエイリアスを行うかを示します。曲がったジオメトリの表面のスムースネス値を修正し、スペキュラ―アーティファクトを除去します。 機能に関する詳細およびこの機能でアクセス可能なプロパティーのリストは、ジオメトリックスペキュラ―アンチエイリアスに関するドキュメント を参照してください。 |
Depth Offset | HDRP がディスプレイスメントによって深度バッファを修正するかを示します。これにより、深度バッファ (コンタクトシャドウ など) を使うエフェクトは、ピクセルディスプレイスメントのディテールをキャプチャすることができます。 |
Advanced Options
プロパティー | 説明 |
---|---|
Specular Occlusion Mode | HDRP がスペキュラーオクルージョンを計算するために使うモードです。オプションは下記から選択できます。 • Off: スペキュラーオクルージョンを無効にします。 • From AO: アンビエントオクルージョンマップと Camera のビューベクトルから、スペキュラーオクルージョンを計算します。 • From AO and Bent Normal: アンビエントオクルージョンマップ、ベント法線マップ、および Camera のビューベクトルからスペキュラーオクルージョンを計算します。 • Custom: 独自のスペキュラーオクルージョン値を指定できます。 |
Override Baked GI | このマテリアルがシーン内のグローバルイルミネーション (GI) を無視して、カスタム GI 値を代わりに使うかを示します。この設定を有効にすると、マテリアルに対して GI をコントロールする Fragment コンテキストに、ベイクした GI ブロックを 2 つ加えます。この設定を無効にすると、マテリアルはシーンの GI を使います。 |
Support Lod Crossfade | メッシュが 1 つの LOD レベルから別のレベルへ移動する際に、HDRP がディザリング処理をするかを示します。 |
Add Precomputed Velocity | Alembic ファイルに保存された事前計算された速度情報を使うかを示します。 |
Use Light Facing Normal | シーンでヘア法線が常にライトソースの方向を向いて表示されるかどうかを示します。現実世界のヘアの動きを模倣します。 |
制限
エリア ライト は現在、Fabric または Hair マテリアルをサポートしていません。つまり、以下のマテリアルを照らしたり影を作ったりしません。