Groom (グルーム) システムは、グルームの Alembic ファイル .abc
からインポートした髪の束を処理するようデザインされてます。また、スケーラビリティの目的で、カードとメッシュを使った代替のジオメトリ表現もサポートしています。このようなジオメトリ表現は、設定しやすいよう、すべて単一のアセットおよびコンポーネント内で管理されます。
グルーム アセット エディタ ではグルームのほとんどの側面を管理できるため、グルームのレンダリングや物理シミュレーションの処理、詳細度 (LOD) の作成や管理など、さまざまな設定を行うことができます。
グルーム アセット エディタを開く
グルーム アセット エディタを開くには、コンテンツ ブラウザで グルーム アセットをダブルクリック するか、グルーム アセットを右クリックして表示されるコンテキスト メニュー を使用します。
グルーム アセット エディタのインターフェース
グルーム アセット エディタは以下の領域で構成されています。
- ビューポート表示オプション: ビューポート オプション、パースペクティブ、表示モード、デバッグ ビュー、詳細度の設定が含まれます。
- ビューポート:割り当てられたマテリアル、詳細度、物理表現が適用された状態のグルーム アセットを表示します。
- 詳細パネル: 以下が含まれます。
ビューポート表示オプション
ビューポート表示オプション のツールバーには、レンダリングとビジュアリゼーションの基本的なオプションが含まれています。
ビューポート オプション
[Viewport Options (ビューポート オプション)] ドロップダウン メニューには、ビューポート内で使用可能な基本的なレンダリング オプションが含まれてます。リアルタイム モードの切り替えや視野角の変更、スーパー サンプリングのスクリーン パーセンテージの設定が可能です。
これらのオプションにアクセスするには、ビューポート表示オプションのツールバーにある下向きの 矢印 をクリックします。
パースペクティブ
[Perspectives (パースペクティブ)] ドロップダウンでは、レベルの 3D ウィンドウである「パースペクティブ ビュー」と、メインの X、Y、Z の各軸を見下ろすように表示する 2D ビューポートの「正投影ビュー」を切り替えます。
ビュー モード
[View Modes (ビュー モード)] ドロップダウンには、ビューポートのライティング最適化、マテリアル、露出値の制御など、すべてのエディタのビューポートに共通するさまざまなオプションが用意されています。
Show (表示)
[Show (表示)] ドロップダウンにはグルーム アセット エディタ特有のビジュアリゼーション オプションが含まれており、シーン内で処理されるデータのタイプや、グルームの診断エラーまたは予期せぬ結果を確認する際に役立ちます。
プロパティ | 説明 |
---|---|
Guide | シミュレーションに使用するガイドを表示します。 |
Guide Influence | シミュレーション クランプ (1 つのガイドに影響を受けるすべてのストランド) を色分けして表示します。 |
UV | 各ストランドに沿って UV を表示します。 |
Root UV | 各ストランドのルートに UV を表示します。 |
Root UDIM | 各ストランドのルートに UDIM を表示します。 |
Dimension | 各ストランドの幅と長さのバリエーションを表示します。 |
Seed | ストランドごとのランダム シードを (色付きで) 表示します。 |
Radius Variation | ストランドのサイズを (色付きで) 表示します。青色はより薄いストランドを、黄色はより厚いストランドを表します。 |
Tangent | 各素線の接線方向が表示されます。 |
Base Color | 頂点ごとに格納されたベース カラーを表示します。ベース カラーがグルームとともにモデリング アプリケーションからエクスポートされなかった場合、ストランドは黒色で表示されます。 |
Roughness | 頂点ごとに格納されたラフネスを表示します。ラフネスがグルームとともにモデリング アプリケーションからエクスポートされなかった場合、ストランドは黒色で表示されます。 |
Hair CVs | 髪ストランドの CV を表示します。 |
Vis.Clusters | カリングおよび詳細度に使用される髪のクラスタを表示します。 |
Hair Groups | 髪グループを表示します。 |
Cards Guide |
次は、[Show (表示)]ドロップダウンを使ったビジュアリゼーションの例です。
Seed | 髪 CV | Vis.Clusters | ベースカラー |
LOD
LOD のドロップダウンでは、ビューポート内の詳細度を自動的に、もしくは特定の詳細度を指定して視覚化することができます。
[LOD Auto (LOD オート)] オプションを選択すると、LOD パネルで指定したオプションに応じて、詳細度が自動的に切り替わります。このオプションでは、ビューポートのスクリーン サイズに応じて詳細度が自動的に切り替わります。また、ドロップダウンから使用可能な生成済みの詳細度を選択し、スクリーン サイズにかかわらず、その詳細度での表現を確認することもできます。
ビューポート
ビューポート では、インポートしたグルーム アセットを、さまざまな詳細パネルで加えた変更を適用した状態で表示することができ、ビジュアリゼーションとデバッグのビュー モードを使ってグルームを調べることができます。
詳細パネル
グルーム アセット エディタには、グルームに関連するさまざまな属性を制御するための 詳細 パネルがいくつか用意されています。
これらのパネルで使用可能な属性、プロパティ、オプションについて、以下に説明します。
LOD
Level of Detail (LOD) パネルにはグルームの個々の LOD のデシメーションを制御します。これには、LOD を切り替える可視スクリーンのサイズと、表現に使用するジオメトリのタイプ (ストランド、メッシュ、またはカード) の制御も含まれます。
プロパティ | 説明 |
---|---|
LOD [N] | |
Curve Decimation | ストランドの数を減らすことでグルームをデシメートします。間引かれるストランドは、グルームのインポートしたストランドからランダムに選択されます。 |
Vertex Decimation | ストランド上の頂点を削除することでグルームをデシメートします。 |
Angular Threshold | 頂点の削除で使用する、連続した 2 つのストランドのセグメントの最大角度値を定義します。値を大きく設定すると、より多くのデシメーションが行われます。 |
Screen Size | この詳細度に切り替わるスクリーン サイズを定義します。 |
Thickness Scale | ストランドの厚さを増加し、ストランド カーブの喪失を補います。Thickness Scale では、自動的に算出されるスケーリング値を調整します。 |
Visible | この詳細度の可視性を切り替えます。 |
Geometry Type | この詳細度を表現する際に使用するジオメトリのタイプを設定します。次から選択します。
|
Binding Type | この詳細度を表現するグルーム シミュレーション モードを設定します。次から選択します。
|
Simulation | この詳細度を表現する際に使用するアタッチ ポイントのタイプを設定します。次から選択します。
|
RBF Interpolation | この詳細度を表現する Global Interpolation モードを設定します。次から選択します。
|
Cluster World Size | 髪クラスタの (ワールド空間内での) 平均サイズを定義します。細粒レベルでの詳細度選択とカリングを可能にするために、グルームは一連のクラスタに分割されます。 |
Cluster Screen Size Scale | クラスタの投影スクリーンをスケーリングして、選択した詳細度にバイアスをかけます。 |
LOD | |
LOD Selection Type | LOD の選択を CPU で行うか、 GPU で行うかを設定します。CPU を選択すると、ストランドの詳細度はより粗くなりますが、あらゆるタイプのジオメトリ表現 (ストランド、カード、メッシュ) が可能になります。GPU を選択すると、詳細度はよりきめ細かくなりますが、サポートされるのはストランド ジオメトリのみになります。 |
Minimum LOD | クック処理に使う最小 LOD をすべてのプラットフォーム向けに一つ指定するか、[+] (プラス記号) ボタンを使って各プラットフォームの最小 LOD をそれぞれ指定します。 |
Disable Below Min LOD Stripping | すべてのプラットフォーム向け、または [+] (プラス記号) ボタンを使ってプラットフォームごとに指定した Minimum LOD よりも低い LOD の削除をオーバーライドする場合は、このフラグを設定します。 |
エディタのビューポート内でそれぞれの LOD をプレビューするには、ビューポート内の [LOD Auto] ボタンをクリックして、目的の LOD を選択します。
高めの LOD のプレビュー | 低めのインポートされた LOD のプレビュー |
補間
[Interpolation (補間)] パネルでは、グルームの最初のインポート時に設定される一部のプロパティを変更することができます。
プロパティ | 説明 |
---|---|
Hair Group (ヘア グループ) | |
Curve Decimation | ストランドの数を減らすことでグルームをデシメートします。間引かれるストランドは、グルームのインポートしたストランドからランダムに選択されます。 |
Vertex Decimation | ストランド上の頂点を削除することでグルームをデシメートします。 |
Override Guides | 有効にすると、ガイドとして使用されるストランドのサブセットを選択することで、インポートされたガイドをオーバーライドします。 |
Hair to Guide Density | ガイドとして使用されるストランドの比率を定義します。 |
Interpolation Quality | ストランドへのガイド モーションを補間する際の補間品質を定義します。 |
Interpolation Distance | ガイドとストランドをペアにする際に使用されるメトリックを定義します。 |
Randomize Guide | 有効にすると、発生するクランプを取り除くために、補間に使用されるガイドがややランダム化されます。 |
User Unique Guide | 有効にすると、モーション補間に単一のガイドが使用されます。 |
Interpolation (補間) | |
RBF Interpolation | 有効にすると、ローカル スキンの剛体トランスフォームの代わりに、動径基底関数 (RBF) を補間に使用します。 |
Hair Interpolation Type | グルームがスケルタル メッシュにバインドされる時に使用する補間のタイプを選択します。
|
ストランド
[Strands (ストランド)] パネルでは、グルームのストランド ジオメトリに関連するさまざまなレンダリング プロパティを制御します。マテリアルを設定したり、髪のストランドの主要プロパティ (幅、ルート、チップ スケールなど) を変更したり、グルームのレイ トレーシングを有効にしたりできます。
プロパティ | 説明 |
---|---|
Material | カード表現 LOD で使用されるマテリアル。 |
Hair Width | 髪のストランド (束) のサイズを変更します。この値は最大ストランドの幅に対応しており、インポートされたグルームからのデフォルト値と一致します。 |
Hair Root Scale | ストランドの幅をスケーリングします。ストランドのルート (根元) から始まってチップ (毛先) に向かってフェード ダウンします。 |
Hair Tip Scale | ストランドの幅をスケーリングします。ストランドのチップ (毛先) から始まってルート (根元) に向かってフェード ダウンします。 |
Hair Shadow Density | シャドウおよびトランスミッションの強弱がグルーム全体で均一になるよう、髪の密度をスケーリングします。 |
Hair Raytracing Radius Scale | レイトレースされたシャドウイングが使用される場合に、ストランドの幅をスケーリングします。 |
Voxelize | 有効にすると、髪ストランドがボクセル化されてライティング計算の精度が高まります。 |
Use Stable Rasterization | 有効にすると、ストランドのノイズが低下しますが、やや厚めに表示されます。 |
Scatter Scene Lighting | 有効にすると、組み込まれたシーン ライティングを光源としてストランドで使用します。このプロパティは、産毛などの非常に短い髪向けです。 |
カード
[Cards (カード)] パネルでは、カードのジオメトリとテクスチャを設定し、エンジンでカードをプロシージャルに生成するか、インポートされたものを使用するかを指定します。
プロパティ | 説明 |
---|---|
Material | カード表現 LOD で使用される、割り当てられたマテリアル。 |
Source Type | 使用するカードのタイプを選択します:
|
Procedural Mesh | カード ジオメトリのメッシュ参照。 |
Imported Mesh | カード ジオメトリのメッシュ参照。 |
Procedural Settings (プロシージャル設定 - 下記参照) | |
Textures (テクスチャ) | |
Depth Texture | カード アセットに使用する深度テクスチャ。このテクスチャはオプションですが、ここで設定した値はマテリアル エディタの Hair Attributes ノードに送られます。 |
Coverage Texture | カード アセットに使用するカバレッジ テクスチャ。このテクスチャはオプションですが、ここで設定した値はマテリアル エディタの Hair Attributes ノードに送られます。 |
Tangent Texture | カード アセットに使用するタンジェント テクスチャ。このテクスチャはオプションですが、ここで設定した値はマテリアル エディタの Hair Attributes ノードに送られます。 |
Attribute Texture | カード アセットに使用する属性テクスチャ。このテクスチャはオプションですが、ここで設定した値はマテリアル エディタの Hair Attributes ノードに送られます。 |
Auxiliary Data Texture | 予備テクスチャにより、ユーザー データをカード アセット用に転送できるようになります。このテクスチャはオプションですが、ここで設定した値はマテリアル エディタの Hair Attributes ノードに送られます。 |
Material Texture | 髪のメッシュに使用するマテリアル テクスチャ。このテクスチャは、グルーム アセットの Hair-textures オプションで生成することができます。 |
Group Index | このカードのジオメトリのマッピング先のグループ インデックス。 |
LOD Index | このカード アセットが使用される際の LOD インデックス。 |
プロシージャルな生成
これは実験段階の機能です。出力結果は、グルームの複雑度に応じて大きく異なる場合があります。
Procedural の設定により、グルームのストランドからカードが生成されます。Geometry と Texture のプロパティを通じて、グルームのカードをどのように生成するかを指定できます。
プロパティ | 説明 |
---|---|
Geometry Setting (ジオメトリ設定) | |
Generation Type | カードの生成に、ガイドまたはストランドのどちらを使用するかを指定します。ストランドを選択すると、カードの生成に「ランダムな選択」が使用されます。 |
Cards Count | Generation Type を Cards Count に設定した場合に生成されるカードの数を定義します。 |
Cluster Type | カードを生成するために、クランプをどのように形成するかを定義します。[High (高)] または [Low (低)] を選択できます。High を選択するとクランプがより明確になりますが、処理速度が遅くなります。 |
Min Segment Length | 連続した 2 つのカード セグメント間の最小距離を定義します。 |
Angular Threshold | 連続した 2 つのカード セグメントの最大角度値を定義します。この値を高く設定すると、カード デシメーションのジオメトリの複雑度が低下します。 |
Min Cards Length | このしきい値よりも小さい長さのカードが削除されます。 |
Max Cards Length | このしきい値よりも大きい長さのカードが削除されます。 |
Texture Settings (テクスチャ設定) | |
Atlas Max Resolution | 生成されるカード アトラスの最大アトラス解像度。この値はカード ジェネレータに対する単なる推奨値で、強制的に適用されるものではありません。 |
Pixel Per Centimeters | カード アトラスの生成におけるピクセル密度 (または精度) を設定します。 |
Length Texture Count | 生成されるクランプ バリエーションの数。 |
プロシージャル カードの生成
プロシージャル カード アセットを生成するには、以下の手順を行います。
- [Source Type] を、ドロップダウン メニューを使って [Procedural] に設定します。
- 生成するカードの [Group Index] と [LOD Index] を設定します。例えば、ストランドではなくカードを使用する際に LOD 2 を希望する場合は、両方のインデックスを「2」に設定します。
- [Source Type] ドロップダウン メニューの下にある [Refresh (リフレッシュ) ボタンをクリックして、カード アセットを生成します。
- [Source Type] ドロップダウン メニューの下にある [Save (保存)] ボタンをクリックし、カード アセットを保存してリロードします。
メッシュ
[Meshes (メッシュ)] パネルでは、グルーム アセットの LOD に使用するメッシュ ジオメトリを管理します。ここにはすべてのメッシュ ジオメトリが表示されますが、これらのジオメトリがすべて使用されているわけではありません。
プロパティ | 説明 |
---|---|
Material | カード表現 LOD で使用される、割り当てられたマテリアル。 |
Imported Mesh | 参照される、割り当てられたメッシュ ジオメトリ。 |
Textures (テクスチャ) | |
Depth Texture | カード アセットに使用する深度テクスチャ。このテクスチャはオプションですが、ここで設定した値はマテリアル エディタの Hair Attributes ノードに送られます。 |
Coverage Texture | カード アセットに使用するカバレッジ テクスチャ。このテクスチャはオプションですが、ここで設定した値はマテリアル エディタの Hair Attributes ノードに送られます。 |
Tangent Texture | カード アセットに使用するタンジェント テクスチャ。このテクスチャはオプションですが、ここで設定した値はマテリアル エディタの Hair Attributes ノードに送られます。 |
Attribute Texture | カード アセットに使用する属性テクスチャ。このテクスチャはオプションですが、ここで設定した値はマテリアル エディタの Hair Attributes ノードに送られます。 |
Auxiliary Data Texture | 予備テクスチャにより、ユーザー データをカード アセット用に転送できるようになります。このテクスチャはオプションですが、ここで設定した値はマテリアル エディタの Hair Attributes ノードに送られます。 |
Material Texture | 髪のメッシュに使用するマテリアル テクスチャ。このテクスチャは、グルーム アセットの Hair-textures オプションで生成することができます。 |
Group Index | このカードのジオメトリのマッピング先のグループ インデックス。 |
LOD Index | このカード アセットが使用される際の LOD インデックス。 |
LOD | |
Minimum LOD | クック処理に使う最小 LOD をすべてのプラットフォーム向けに一つ指定するか、[+] (プラス記号) ボタンを使って各プラットフォームの最小 LOD をそれぞれ指定します。 |
マテリアル
[Materials (マテリアル)] パネルでは、グルーム アセットで使用可能なマテリアルを定義します。
マテリアル リファレンスを新たに追加するには、[Add (追加)] (+) ボタンをクリックします。マテリアルに名前を付けるには [Slot Name (スロット名)] を使用します。名前を付けないと、マテリアルに割り当てられたデフォルト名が使用されます。
Strands、Meshes、Cards の各パネルにある Material スロットでは、参照されているマテリアルのリストから選択することができます。
物理
[Physics (物理)] パネルには、物理シミュレーションを有効にするための設定や、グルームのモーション 動作を変更するための設定が含まれています。
プロパティ | 説明 |
---|---|
Solver Settings (ソルバの設定) | |
Enable Simulation | グルーム アセットの物理シミュレーションを有効にします。 |
Niagara Solver | シミュレーションに使用する Niagara ソルバを選択します。[Groom Rods (Groom ロッド)]、[Groom Springs (Groom スプリング)]、[Groom Solver (Groom ソルバ)] から選択します。 |
Custom System | Niagara Solver プロパティを Custom Solver に設定した場合に、使用するカスタム Niagara システムを追加します。 |
Sub Steps | フレームごとに実行されるサブステップの数。実際のソルバの呼び出しは毎秒 24 フレームで実行されます。 |
Iteration Count | xpbd ソルバでコンストレイントを解決するためのイテレーションの数。 |
External Forces (外部力) | |
Gravity Vector | 重力で使用される加速度ベクター (cm/s2)。 |
Air Drag | 空気抗力に使用する 0 から 1 の間の係数。 |
Air Velocity | 周囲の空気の速度 (cm/s)。 |
Material Constraints:Bend Constraints | |
Solve Bend | xpbd ループ中の Bend コンストレイントの解決を有効にします。 |
Project Bend | xpbd ループ中の Bend コンストレイントの投影を有効にします。 |
Bend Damping | 0 から 1 の値を使用して Bend コンストレイントに適用する減衰。 |
Bend Stiffness | Bend コンストレイントの剛性 (単位 GPa)。 |
Stiffness Scale | カーブは、曲げの剛性が各ストランドに沿ってどれくらいスケーリングされるかを決定します。X 軸の範囲は 「0,1」です。0 はルートにマップされ、1 はチップにマップされます。 |
Material Constraints:Stretch Constraints (Stretch コンストレイント) | |
Solve Stretch | xpbd ループ中の Stretch コンストレイントの解決を有効にします。 |
Project Stretch | xpbd ループ中の Stretch コンストレイントの解決を有効にします。 |
Stretch Damping | 0 から 1 の値を使用して Stretch コンストレイントに適用する減衰。 |
Stretch Stiffness | Stretch コンストレイントの剛性 (単位 GPa)。 |
Stiffness Scale | カーブは、ストレッチの剛性が各ストランドに沿ってどれくらいスケーリングされるかを決定します。X 軸の範囲は 「0,1」です。0 はルートにマップされ、1 はチップにマップされます。 |
Material Constraints:Collision Constraints (Collision コンストレイント) | |
Solve Collision | xpbd ループ中の Collision コンストレイントの解決を有効にします。 |
Project Collision | xpbd ループ中の Collision コンストレイントの投影を有効にします。 |
Static Friction | 物理アセットに対するコリジョンに使用される静摩擦。 |
Kinectic Friction | 物理アセットに対するコリジョンに使用される動摩擦。 |
Strands Viscosity | セルフコリジョンに使用される 0 から 1 の粘度。 |
Grid Dimensions | 粘度力の計算に使用されるグリッドの寸法。 |
Collision Radius | 物理アセットに対するコリジョン検出に使用される半径。 |
Radius Scale | カーブは、コリジョンの半径が各ストランドに沿ってどれくらいスケーリングされるかを決定します。X 軸の範囲は 「0,1」です。0 はルートにマップされ、1 はチップにマップされます。 |
Strands Parameters (ストランド パラメータ) | |
Strands Size | シミュレーションに使用されるガイドごとのパーティクルの数。 |
Strands Density | ストランドの密度 (g/cm3)。 |
Strands Smoothing | 受け取ったガイド カーブをより安定させるための 0 から 1 のスムージング。 |
Strands Thickness | 質量と慣性の計算に使用されるストランドの厚さ (単位 cm) 。 |
Thickness Scale | 各ストランドに沿ってスケーリングされるストランドの厚さを決定するカーブ。X 軸の範囲は 「0,1」です。0 はルートにマップされ、1 はチップにマップされます。 |