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

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

Windows
MacOS
Linux

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

現時点では 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 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 にグルームを直接インポートするスキーマについて説明しています。

Hair 属性マテリアル式の例

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

Material_Settings.png

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

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

Material_HairExample.png

バインディング アセット

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

スケルタルメッシュ上でグルームをバインドするためにバインディング アセットを作成するかどうかは任意です。ただし、作成しない場合、プロジェクションは実行時に行われ、これは起動時の GPU 負荷が大きいことを意味します。

BindingAsset.png

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

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

ナイアガラでの髪の物理

キャラクターの髪に物理を使用するには、グルーム アセットを開いて、[Hair Physics (ヘアの物理)] カテゴリの [Solver Settings (ソルバ設定)] の [Enable Simulation (シミュレーションを有効にする)] にチェックを入れます。

HairPhysicsGroomSettings.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 ドキュメントサイトへようこそ!

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

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

フィードバックを送信