ヘア レンダリング

ストランド ベースのヘアのインポート、レンダリング、シミュレーションの概要

Choose your operating system:

Windows

macOS

Linux

従来、リアルタイムの髪はカード ベースのレンダリングまたは似たような別の方法を用いて作成されていました。カード ベースのワークフローでは少数の大きな平らなシート (またはカード) を使用して、個々の髪の毛をまとめておおまかな形状と動きで再現します。Unreal Engine のグルーム システムとツールを使用すると、髪の毛を 1 本ずつレンダリングできるようになり、シミュレートされた髪のリアルタイムな忠実度を大幅に向上させることができます。

現時点では、ヘアグルームの標準形式はありませんが、グル-ムシステムは、モデリングアプリケーションからエクスポートされたデータを取り込むために Alembic (.abc) ファイルを使用するための命名規則ベースのスキームを提供します。また、単一の Alembic ファイル内の複数の Hair Group (頭の毛、産毛、髭、眉毛、まつ毛など)、最先端のヘア シェーダおよびレンダリング システム、そして Niagara を使用したダイナミクス統合がサポートされます。

グルーム システムは、ストランド ベースの髪のインポート、レンダリング、シミュレーションの最低限実行可能な実装を提供することを目的としています。髪のグルーミングのソリューションは提供されません。髪のシェイピングやグルーミングについては、Maya 内の XGen Ornatrix Yeti Shave and a Haircut Houdini などの外部アプリケーション内で実行する必要があります。

プロジェクトで Hair (髪) を有効にする

プロジェクトで Hair を使用するには、以下の設定とプラグインを有効にする必要があります。

この変更を有効にするには、エディタを再起動する必要があります。

プロジェクト設定

[Edit (編集)] > [Project Setting (プロジェクト設定)] を指定して [Project Settings (プロジェクト設定)] を開きます。 [Rendering (レンダリング)] > [Optimizations (最適化)] [Support Compute Skin Cache (スキンキャッシュの計算をサポート)] を有効にします。

HairProjectSettings.png

プラグイン ブラウザ

[Edit (編集)] > [Plugins (プラグイン)] を選択して、プライグイン ブラウザのウィンドウを開きます。 [Geometry (ジオメトリ)] カテゴリで次のプラグインを有効にします。

GroomPlugins.png

  • Alembic Groom Importer

  • Groom

基本的なワークフロー

次のフローチャートは、独自の Hair Groom を UE4 に取り込み、アニメート可能なスケルタル メッシュ キャラクターにアタッチするための大まかなプロセスを示しています。

HairBasicFlow.png

  1. お使いの DCC アプリケーションで Hair Groom を作成します。

  2. 作成した Hair Groom を Alembic (*.abc) ファイルとしてエクスポートします。

  3. Alembic Groom ファイルを UE4 にインポートします。

  4. (オプション) コンテンツ ブラウザからスケルタルメッシュ用にバインディング アセットを作成します。

  5. Groom アセットを (アクタとして、またはブループリントを通じて) ワールド内に配置します。

  6. Groom コンポーネント (アクタ) を、トランスファー スキニングを含むスケルタル メッシュ ソケットにアタッチします。

  7. Hair マテリアルを設定して割り当てます。

これらの手順を完了すると、アニメートしているアタッチ先のスケルタル メッシュで使用可能なインタラクティブ グルームが完成します。

上記の手順の詳細については、「 髪のレンダリングとシミュレーションのクイック スタート 」ガイドを参照してください。

Hair Groom のエクスポートと UE4 へのインポートに関する追加の設定情報については「 Alembic for Grooms の仕様 」リファレンス ページを参照してください。このページでは、UE4 にグルームを直接インポートするスキーマについて説明しています。

グルーム アセット

グルーム アセットはインポートされた Alembic (.abc) ファイルのヘア グルームを表し、コンテンツブラウザに保存されます。グルーム アセットをダブル クリックすると グルーム アセット エディタ が開きます。

GroomAssetEditor.png

グルーム アセット エディタを使って、グルームの部分を管理および編集することができます。以下が可能です。

  • マテリアルの割り当て

  • ストランド、カード、メッシュを表す LOD メッシュの作成

  • 物理設定の有効化と設定

  • さまざまなビューモードでのグルームのデバッグ

コンテンツ ブラウザでグルーム アセットを右クリックすると、いくつかの追加の Groom Actions (グルーム アクション) を使用して次のことを可能になります。

GroomAsset_ContextMenu.png

  • Rebuild は、選択したグルームのビルド設定を [Groom Import] オプションから再ビルドします。

  • Create Binding は、グルームをスケルタルメッシュにアタッチするために使用するバインディング アセットを生成するためのバインディングを作成します。

  • Create Textures は選択したグルームを使用して毛包とストランド用のテクスチャを作成します。

詳細は、「 グルーム アセット エディタ 」を参照してください。

ストランド テクスチャを生成する

Groom アセットを使って、インポートしたグルームからストランド データに基づいてテクスチャを作成することができます。ヘアをメッシュ サーフェスとうまくブレンドさせるために、スケルトン メッシュに毛根マスクを作成することができます。さらに、ヘア メッシュまたはヘア カードを作成するために複数のストランド テクスチャを作成して使用することができます。

メッシュに適用することができるテクスチャを生成するためにグルームを使用することができます。

DepthTextureOutput.png

TangentTextureOutput.png

HairMeshResult.png

深度テクスチャ

タンジェント テクスチャ

生成したテクスチャのついたヘア メッシュ

詳細については、「 グルーム テクスチャを生成する 」を参照してください。

ヘア マテリアルを設定する

Hair ジオメトリを正しくレンダリングするためには、 [Shading Model (シェーディング モデル)] [Hair (髪)] に設定されたマテリアルが割り当てられている必要があります。

Material_Settings.png

また、[Usage] カテゴリで [Use with Hair Strands (髪ストランドで使用)] を有効にする必要もあります。このオプションはグルームへの初回の適用時に自動的に有効になりますが、そうでない場合は手動で有効にしてください。

次は Hair Attributes 式を使用する Hair マテリアルの例です。

Material_HairExample.png

バインディング アセット

バインディング アセットはグルーム コンポーネントをスケルタルメッシュ コンポーネントにアタッチおよびスキンするために使用します。作成されたスケルタルメッシュにグルームを割り当て、同じトポロジーを共有するスケルタルメッシュに割り当てる方法です。

BindingAsset.png

バインディング アセットを作成するには、コンテンツ ブラウザで Groom Asset を右クリックして、コンテキスト メニューから [Create Binding (バインディングを作成)] を選択します。 [Groom Binding Options] ウィンドウを使って ターゲット スケルタルメッシュ ソース スケルタルメッシュ を割り当ててバインディングを作成します。

バインディング アセットを作成するには ターゲット スケルタルメッシュ を指定する必要があります。指定しないと、このプロセスにといてバインディングは作成されません。

物理シミュレーションを有効にする

グルーム上で物理を有効にするには、 グルーム アセット エディタ を開き、 [Physics] パネルの [Solver Settings (ソルバ設定)] [Enable Simulation (シミュレーションを有効)] の横にあるボックスにチェックを入れます。

HairPhysicsGroomSettings.png

これを有効にすると、グルーム コンポーネントに影響を与えるさまざまな物理設定をいじれるようになります。各プロパティの詳細については、「 ヘア プロパティのリファレンス 」を参照してください。

髪をデバッグする

プロジェクトで使用している髪をデバッグするには、以下のコンソール変数を使用します。

コンソール変数

説明

r.HairStrands.DebugMode

次のコマンド モードのいずれかを有効にして、髪のレンダリングに関するさまざまな統計およびデバック情報を画面に表示します。

  • 0 - オフ

  • 1 - Cluster info

  • 2 - すべての DOM ライト境界

  • 3 - 画面投影されたクラスタ

  • 4 - 深いオパシティ マップ

  • 5 - サブピクセル サンプル カウント

  • 6 - TAA 解決タイプ (通常/応答)

  • 7 - 髪の範囲のタイプ

  • 8 - 髪の密度のボリューム

  • 9 - 髪の接線のボリューム

  • 10 - 髪のベース カラーのボリューム

  • 11 - 髪のラフネスのボリューム

  • 12 - 髪のメッシュの投影

  • 13 - 髪の範囲

r.HairStrands.StrandMode

このコマンドを有効にして、シーン内の髪のストランド用に選択したデバッグ モードをレンダリングします。

  • 0 - オフ

  • 1 - シミュレーション ストランド

  • 2 - レンダリング ストランドの影響

  • 3 - ルート UV

  • 4 - ルート UV UDIM テクスチャ インデックス

  • 5 - 髪 UV

  • 6 - 髪シード

  • 7 - 髪の寸法

  • 8 - 髪の半径のバリエーション

  • 9 - 髪の頂点色

  • 10 - 髪の頂点のラフネス

既知の制約事項

  • フレームレートは、グルームのサイズ、その解像度、それが実行されているハードウェアによって異なります。例えば、RTX-2080Ti では 1080p の人間のグルームの場合、30Hz 以上のフレームレートを期待できます。品質設定を高くすると、パフォーマンスは大幅に低下します。

  • グルームは適切な事前計算 (静止/固定) のライティングをまだサポートしていません。

  • 被写界深度 (DOF) はサポートされますが、アーティファクトを生じることがあります。

HairWorks ユーザー

NVIDIA のヘア ソリューションである HairWorks を使用する場合、DCC ツールの統合と髪用のリアルタイム レンダリングおよびシミュレーションが含まれているので、Unreal Engine ではエンジンのバージョン 4.16 以降 HairWorks を非推奨としています。現在 HairWorks 統合を利用しているユーザーに対して、グルーム システム機能の移行パスを提供する長期計画があります。

GitHub ブランチ経由による UE4 で利用可能な HairWorks の最後の公式 NVIDIA バージョンは 4.16 です。さまざまなパッチとアップグレードが作成されオンラインで入手することができますが、これらは公式にサポートされているものではありません。

Unreal Engine のドキュメントを改善するために協力をお願いします!どのような改善を望んでいるかご意見をお聞かせください。
調査に参加する
キャンセル