髪のレンダリングとシミュレーションに関する本ガイドでは、Unreal Engine でスキン メッシュ上の Hair Groom に対して作業を行う際の基本について説明します。
このチュートリアルでは、以下の習得を目指します。
- 髪のレンダリングとシミュレーションを適用するプロジェクトの設定方法。
- アニメートされたスケルタル メッシュで使用するための Groom の設定方法。
- 基本的な Hair マテリアルの設定方法。
- 髪用物理の有効化および調節方法。
1 - 必要な設定
- Unreal Project ブラウザ を使用して「Third Person (サードパーソン)」テンプレートで新しいプロジェクトを作成します。
-
エディタのメイン メニューから [Edit (編集)] > [Project Settings (プロジェクト設定)] を選択して、[Project Settings (プロジェクト設定)] ウィンドウを開きます。[Rendering (レンダリング)] > [Optimizations (最適化)] で [Support Compute Skin Cache (スキンキャッシュの計算をサポート)] を有効にする
エディタのウィンドウの右下隅に [Restart Now (今すぐ再起動)] ポップアップが表示されますが、次の手順でもエディタの再起動が必要になるため、この時点では無視してもかまいません。
-
メイン メニューに戻って [Edit (編集)] > [Plugins (プラグイン)] を選択し、[Plugins (プラグイン)] ブラウザ ウィンドウを開きます。
検索バーで「Groom」を検索するか、左側のパネルで [Geometry (ジオメトリ)] カテゴリを選択し、次のプラグインを有効にします。
- Alembic Groom Importer
- Groom
-
エディタを再起動して、プロジェクト設定とプラグインの変更を有効にします。
2 - グルームを作成してインポートする
キャラクター向けのグルームには、シンプルなものであっても、さまざまなタイプの髪 (頭の毛、髭、眉毛など) が含まれます。これらのタイプの髪には、独自のマテリアルや物理設定を持つものもあります。また、シミュレーション時に使用される髪など、1 つのグループ内に複数のタイプの髪が含まれている場合もあります。この情報は DCC アプリケーションでのグルーミングの際に定義することができ、Unreal Engine ではこの情報に基づいてガイドを定義します。
-
お使いの DCC アプリケーションでグルームを作成し、Alembic (.abc) ファイル形式でエクスポートします。
「Alembic for Grooms の仕様」を参照し、適切な命名規則に従ってグルームを Unreal Engine 向けに準備します。
-
コンテンツ ブラウザの [Import (インポート] ボタンをクリックするか、Alembic ファイルをコンテンツブラウザにドラッグアンドドロップします。
-
[Groom Import Options (グルーム インポート オプション)] ウィンドウで 以下のオプションを考慮します。
- グルームにベイクされた最初の回転を修正します。これにより不要なランタイム負荷を避けます。
- [Override Guides] のチェックボックスを使って、インポートされたグルームからストランド セットを選択してインポートされたガイドを置き換えます。ガイドの量は Hair to Guide Density 値に依存します。
- [Interpolation Quality] と [Interpolation Distance] を使用して、ガイドとストランド間のペアリングがガイドの動きを転送する処理方法をを変更します。
- [Randomize Guide] と [Unique Guide] のチェックボックスを使って、単一のガイドのみ、または複数のガイドがストランドに影響を及ぼすかどうか、ガイドがストランドに与える影響の処理方法を指定します。
-
[Import (インポート)] をクリックします。
グルーム システムでは、インポート プロセス中に、「Alembic for Grooms の仕様」ページで説明されている Alembic の命名規則に準拠する属性とグループを検出して、これらを新しグルーム アセットにインポートします。これらの属性の中で、RootUV 属性は、肌の表面など、下にある表面の UV をフェッチし、グルーム全体に空間的な変化を作り出すことができます。
3 - スケルタルメッシュにグルームをアタッチする
Groom コンポーネントを使用すると、Groom Asset をアタッチし、グルームをスケルタルメッシュのサーフェスにバインドできます。オプションの BindingAsset は、グルームの投影データをスケルタルメッシュにキャッシュします。これにより、GPU が作成および割り当てられていない場合に、起動時にこれを行うための GPU コストを節約できます。
グルーム コンポーネントを設定する
本ガイドのこのセクションでは、「サードパーソン」テンプレートに含まれる SK_Mannequin
を使用します。これをお持ちでない場合は、コンテンツ ブラウザの [Add New (新規追加)] > [Add Feature or Content Pack (機能またはコンテンツ パックの追加)] をクリックして、ThirdPerson テンプレートを選択することでプロジェクトに追加することができます。
また、これと同じ設定をキャラクター ブループリント内にも適用できることに留意してください。
-
コンテンツ ブラウザ 内で「Mannequin > Character > Mesh」フォルダの SK_Mannequin スケルタル メッシュを選択し、シーン内にドラッグします。
-
スケルタルメッシュを選択した状態で [Details] パネルの [Add Component] ボタンをクリックして Groom コンポーネントを探して追加します。
-
[Groom] コンポーネントを選択し Groom Asset スロットを使ってインポートしたヘア グルームをこのスケルタルメッシュに割り当てます。
バインディング アセットを作成する
-
コンテンツ ブラウザで Groom アセットを探します。グルームを右クリックして、コンテンツ メニューを使って [Create Binding (バインディングを作成)] を選択します。
-
[Groom Binding Options] ウィンドウが開きます。アセットを作成するには、ターゲット スケルタルメッシュ を割り当てて、類似するトポロジーを共有する ソース スケルタルメッシュ をオプションでターゲット スケルタルメッシュとして指定します。これらのスロットを割り当てたら [Create (作成する)] をクリックします。
-
これにより Groom Binding アセットが開きkます。保存してウィンドウを閉じます。
-
レベルでスケルタルメッシュを選択します。[Details (詳細)] パネルを使って [Components] パネルで Groom コンポーネントを選択します。[Groom] セクションで、フラグ [Bind Groom to Skeletal Mesh] が有効にされていることを確認し、[Binding Asset] スロットを使って作成したバインディング アセットを割り当てます。
4 - Hair (ヘア) マテリアルを設定する
Unreal Engine には、デフォルトでシンプルな Hair マテリアル、HairDefaultMaterial
が用意されています。
Unreal Engine にはデフォルトの Hair (ヘア) マテリアルが用意されているため、以下の手順は任意ですが、まだ Hair マテリアルを設定したことがなければ、以下の手順に従うことで、Hair マテリアルの設定に必要なプロパティや設定について学ぶことができます。
-
コンテンツ ブラウザで [Add New (新規追加)] ボタンをクリックし、ドロップダウン メニューから [Material (マテリアル)] を選択します。
-
マテリアル アセットに名前を付けて開きます。
-
マテリアル エディタの [Details (詳細)] パネルで、次のように設定します。
- Shading Model:Hair
また、[Use with Hair Strands (髪ストランドで使用)] を有効にする必要もあります。マテリアルが Groom コンポーネントに適用されると、このチェックボックスが自動的にオン (有効) になり、マテリアルが再コンパイルされます。自動的に有効にならない場合は、マテリアル エディタの [Details (詳細)] パネルにある [Usage (使用方法)] カテゴリでこれを有効にすることができます。
-
マテリアル グラフ内で、基本的な Hair マテリアル向けに次のようにノードを設定します。
ベース カラーには Constant4Vector を使用し、ラフネスの制御には 定数 を使用します。
より複雑な Hair マテリアルを設定する場合は、マテリアル グラフ内で HairAttribute 式を使用して、UV、Dimensions (寸法)、RootUV (ルート UV)、Seed (シード) などの髪の属性にアクセスします。
- マテリアル エディタを 保存して閉じます。
- Hair マテリアルは、レベル内の [Details (詳細)] パネルまたはブループリントを通じてグルーム アセット コンポーネントに直接適用するか、コンテンツ ブラウザでグルーム アセットを開いて適用することができます。Hair マテリアルを [Material (マテリアル)] 要素スロットに割り当てます。
グルーム アセット アクタ (詳細パネル)
グルーム アセット (グルーム アセット エディタ)
5 - 髪の物理を設定する
この手順では、グルーム アセットを使用して物理シミュレーションを追加します。
-
コンテンツ ブラウザでグルーム アセットを探します。
-
Hair Physics カテゴリで、[Enable Simulation (シミュレーションを有効にする)] の横のボックスにチェックを入れます。
有効にすると、Hair Physics カテゴリ内のプロパティを使って、髪の物理プロパティを制御することができます。
これらのグルーム アセット プロパティの詳細については、「ヘア レンダリングとシミュレーション設定」を参照してください。
有効にすると、エディタの作業中およびプレイ インエディタ (PIE) またはシミュレート インエディタ中に物理が髪に適用されていることが確認できます。