XGen による毛髪や、体毛、毛皮のレンダリングに関するガイドライン

Unreal Engine 4 で使用するために、グルームを Alembic ファイルとしてエクスポートするためのガイドラインを説明します。

Windows
MacOS
Linux

このガイドでは、「Alembic for Grooms」 のドキュメントで概説されているサポートされた属性のセットを使用して Unreal Engine にインポートを行うために、Maya の「従来の XGen ヘア作成システム」 でグルームを設定する方法を説明します。

このガイドのアセット作成には、Maya 2018.6 を使用しました。

レガシー XGen の記述を変換する

NURBS 曲線の操作

  1. Maya のメニューセットを [Modeling (モデリング)] に設定すると、正しいメニュー オプションが使用可能になります。

    MenuSetSelection.png

  2. メインメニューから [Generate (作成)] のドロップダウンをクリックし、 [XGen Editor (XGen エディタ)] を選択します。

  3. [XGen] ウィンドウで、[Utilities (ユーティリティ)] タブから [Guides to Curves (カーブの操作)] を選択します。

    XGen_Utilities.png

  4. [Create Curves (カーブを作成)] をクリックします。

完了すると、グルームの出力は次のようになります。

GuidesToNurbsCurvesOutput.png

XGen Interactive Groom へのグルーム

従来の XGen Description を使用している場合、グルームを XGen Interactive Groom に変換する必要があります。これを行うには、次のいずれかの方法を実行します。

  1. XGen Description ノードを選択します。

    XGenDescriptionNodes.png

  2. [Modeling (モデリング)] メニュー セットで、メイン メニューから、[Generate (作成)] ドロップダウンをクリックし、[Convert to Interactive Groom] を選択します。

    XGenInteractiveGroom.png

NURBS カーブへのスプライン記述

  1. [XGen Spline Description nodes (XGen スプライン記述ノード)] を選択します。

  2. [Modeling (モデリング)] メニュー セットで、メイン メニューから、[Generate (作成)] ドロップダウンをクリックします。次に、[Cache (キャッシュ)] > [Export Cache (キャッシュをエクスポート)] を選択します。

    SplineDescToNurbsCurve_ExportCache.png

  3. [Export Cache (キャッシュをエクスポート)] ウィンドウで、以下を設定します。

    SplineDescToNurbsCurve_ExportCacheWindow.png

    • [Cache Time Frame (キャッシュのタイムフレーム)]: [Current Frame (現在のフレーム)] に設定

    • [Multiple Transforms (複数のトランフォーム)]:Disabled (無効)

    • [Write Final Width (最終的な幅を書き込み)]:Enabled (有効)

  4. ファイルに名前を付け、ファイル タイプとして [Alembic] を選択します。

    SplineDescToNurbsCurve_ExportCacheFile.png

  5. [Export (エクスポート)] をクリックします

  6. 次に、[File (ファイル)] メニューを使用し、[Import (インポート)] を選択して[Import (インポート)] ウィンドウを開き、Alembic (.abc) ファイルをシーンに取り込みます。

    SplineDescToNurbsCurve_ImportAlembic.png

このプロセスを完了したら、XGen スプライン記述は、Alembic ファイルとしてエクスポートされ、補間されたヘアを NURBS カーブとして取り込むためにインポートされます。

SplineDescToNurbsCurve_Output.png

属性を作成する

ID 属性を作成する

補間されたヘアは、1 つ以上のグループでエクスポートできます。これらのグループは、固有マテリアル割り当てのために Unreal Engine で認識されます。

グループ ID 属性を作成するときは、次のスクリプトを使用します。

from maya import cmds

attr_name = 'groom_group_id'

# NOTE: change the following names to reflect your node's scene.
groups = ['hair_brows_splineDescription1|SplineGrp0', 'hair_lashes_splineDescription1|SplineGrp0', 'hair_head_splineDescription1|SplineGrp0']

for groom_group_id, group_name in enumerate(groups):

    # get curves under xgGroom
    curves = cmds.listRelatives(group_name, ad=True, type='nurbsCurve')

    # tag group with group id
    cmds.addAttr(group_name, longName=attr_name, attributeType='short', defaultValue=groom_group_id, keyable=True)

    # add attribute scope
    # forces Maya's alembic to export data as GeometryScope::kConstantScope
    cmds.addAttr(group_name, longName='{}_AbcGeomScope'.format(attr_name), dataType='string', keyable=True)
    cmds.setAttr('{}.{}_AbcGeomScope'.format(group_name, attr_name), 'con', type='string')

ガイド属性を作成する

グルーミングのガイド属性を作成するとき、「ガイド」とタグ付けされたカーブのみが、Unreal Engine でのシミュレーションに使用されます。Alembic ファイルにガイドが指定されていない場合、補間されたヘアのパーセンテージは、UE4 へのインポート プロセス中にガイドとして内部でタグ付けされます。

ガイドなしでグルームをインポートする場合、「ガイド」とタグ付けされた補間されたヘアの割合は、 [Groom Import Options (グルームのインポートオプション)] で設定できます。デフォルトでは、ヘア数の 10% のみがガイドとして使用されます。

ガイド属性を作成するときは、次のスクリプトを使用します。

from maya import cmds

attr_name = 'groom_guide'

# get curves under xgGroom
curves = cmds.listRelatives('xgGroom', ad=True, type='nurbsCurve')

# create new group
guides_group = cmds.createNode('transform', name='guides')

# tag group as groom_guide
cmds.addAttr(guides_group, longName=attr_name, attributeType='short', defaultValue=1, keyable=True)

# forces Maya's alembic to export curves as one group.
cmds.addAttr(guides_group, longName='riCurves', attributeType='bool', defaultValue=1, keyable=True)

# add attribute scope
# forces Maya's alembic to export data as GeometryScope::kConstantScope
cmds.addAttr(guides_group, longName='{}_AbcGeomScope'.format(attr_name), dataType='string', keyable=True)
cmds.setAttr('{}.{}_AbcGeomScope'.format(guides_group, attr_name), 'con', type='string')

# parent curves under guides group
for curve in curves:
    cmds.parent(curve, guides_group, shape=True, relative=True)

Maya から Alembic にエクスポートする

  1. Maya でエクスポートするガイドと Group_ID カーブを選択します。

    各ノードには固有の名前が必要です。

  2. [Modeling (モデリング)] メニューセットで、メイン メニューから [Cache (キャッシュ)] ドロップダウンをクリックし、[Alembic Cache] > [Export Selection to Alembic] を選択します。

    ExportToAlembic_ExportSelection.png

  3. [Export Selection (選択範囲をエクスポート)] ウィンドウの [General Options (全般オプション)] カテゴリで、[Cache time range (キャッシュ時間の範囲)][Current Frame (現在のフレーム)] に設定します

    ExportToAlembic_ExportSelection_CurrentFrame.png

  4. 次に、[Attributes (属性)] カテゴリの下で、リストに追加する [Attributes (属性)] の名前を入力し、[Add (追加)] ボタンをクリックします。次のスキーマ属性を追加してください。

    ExportToAlembic_ExportSelection_AddAttributes.png

    • groom_group_id

    • groom_guide

  5. [File name (ファイル名)] テキストボックスでファイルに名前を付け、[Files of type (ファイルの種類)][Alembic] に設定します。

    ExportToAlembic_ExportSelection_FileNameType.png

  6. [Export Selection (選択範囲をエクスポート)] ボタンをクリックします。

Select Skin
Light
Dark

Welcome to the new Unreal Engine 4 Documentation site!

We're working on lots of new features including a feedback system so you can tell us how we are doing. It's not quite ready for use in the wild yet, so head over to the Documentation Feedback forum to tell us about this page or call out any issues you are encountering in the meantime.

We'll be sure to let you know when the new system is up and running.

Post Feedback