髪のレンダリングとシミュレーション

UE4 内でのストランド ベースの髪のインポート、レンダリング、シミュレーションに関する概要を説明します。

Windows
MacOS
Linux

従来、リアルタイムの髪はカード ベースのレンダリングまたは似たような別の方法を用いて作成されていました。 カード ベースのワークフローでは少数の大きな平らなシートを使用して、個々の髪の毛をまとめておおまかな形状と動きで再現します。 新機能の Hair Rendering and Simulation を使用することで、髪の毛を一本ずつレンダリングできるようになりました。髪の毛をそれぞれ一本ずつレンダリングすることで、リアルタイムにシミュレーションされた髪のビジュアルの忠実度が大幅に向上します。

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

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

HairWorks ユーザー

NVIDIA では、「HairWorks」と呼ばれる髪のソリューションを提供しています。HairWorks には、DCC ツールの統合と、髪向けのリアルタイム レンダリングおよびシミュレーションが含まれています。 UE4 での HairWorks の使用はバージョン 4.16 以降非推奨とされており、髪のレンダリングとシミュレーション機能に関するこの長期的な計画は、現在 HairWorks 統合を利用しているユーザーに移行の道すじを提供するものです。 UE4 向け HairWorks の最新の公式 NVIDIA バージョンは 4.16 ですが、さまざまなパッチやアップグレードが作成されており、オンラインで入手可能となっています。ただし、これらは公式にサポートされているものではありません。

この実装は HairWorks を今すぐ置き換えるものではなく、外部 DCC ツールでグルームされた髪のレンダリングとシミュレーションのための暫定的なソリューションです。

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

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

プロジェクト設定

[Edit (編集)] > [Project Setting (プロジェクト設定)] を指定して [Project Settings (プロジェクト設定)] を開きます。次のセクションで以下の設定を有効にします。

  • [Rendering (レンダリング)] > [Optimizations (最適化)] で [Support Compute Skincache (スキンキャッシュの計算をサポート)] を有効にする

  • [Animation (アニメーション)] > [Performance (パフォーマンス)] で [Tick Animation on Skeletal Mesh Init (スケルタル メッシュ初期化時のティック アニメーション)] を無効にする

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

プラグイン ブラウザ

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

  • Alembic Groom Importer

  • Groom

プラグインに対するこれらの変更を有効にするには、エディタを再起動する必要があります。

基本的なワークフロー

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

HairBasicFlow.png

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

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

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

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

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

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

  7. ナイアガラの GroomAssetSystem を Groom コンポーネントの子として割り当てます。

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

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

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

Hair 属性マテリアル式の例

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

Material_Settings.png

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

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

Material_HairExample.png

ナイアガラでの髪の物理

Groom システムでは、物理を使用するために、ナイアガラ システムを子コンポーネントとして Groom コンポーネントにアタッチする必要があります。これは、[Details (詳細)] パネルを通してレベル内でアクタにアタッチするか、ブループリントの [Components (コンポーネント)] パネルで子コンポーネントとしてアタッチします。

UE4 Groom システムには、GroomAssetSystem と呼ばれる Groom コンポーネントで使用可能な独自のナイアガラ パーティクル システムが備わっています。これには、ナイアガラ コンポーネントを通じてナイアガラ システムを割り当てる際にアクセスすることができます。

AssignNiagaraGroomAsset.png

  1. Groom コンポーネントの子となるナイアガラ コンポーネントを設定します。

  2. ナイアガラ システムの割り当てボックスを使用して、ナイアガラ パーティクル システムを選択します。

  3. ドロップダウンから [GroomAssetSystem] を選択します。

ナイアガラの GroomAssetSystem は Groom システムのプラグインの一部であり、「Content Plugins」フォルダに保存されています。Groom プラグインを有効にした後もこれがリストに表示されない場合は、[View Options (表示オプション)] ドロップダウンから [Show Plugin Content (プラグイン コンテンツを表示)] を有効にします。

ViewOptionsNote.png

髪をデバッグする

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

コンソール変数

説明

r.HairStrands.DebugMode

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

  • 0 - オフ

  • 1 - クラスタ情報

  • 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 - 髪の頂点のラフネス

周知の制限事項

  • 距離に基づいたデシメーションはまだ実装されていません。

  • フレームレートは、グルームのサイズ、その解像度、それが実行されているハードウェアによって異なります。例えば、2080Ti 上で 1080p の解像度の「ヒューマン」グルームでは、30Hz 以上のフレームレートを期待できます。

  • ビュー モードは、髪に対してはまだサポートされていません。

  • マルチビュー (複数のオープン ウィンドウで髪を表示) はまだサポートされておらず、実行するとアーティファクトが発生する場合があります。

Select Skin
Light
Dark

新しい Unreal Engine 4 ドキュメントサイトへようこそ!

あなたの声を私たちに伝えるフィードバックシステムを含め、様々な新機能について開発をおこなっています。まだ広く使える状態にはなっていないので、準備ができるまでは、ドキュメントフィードバックフォーラムで、このページについて、もしくは遭遇した問題について教えていただけると助かります。

新しいシステムが稼働した際にお知らせします。

フィードバックを送信