Alembic for Grooms の仕様

グルームを Alembic ファイルとしてエクスポートして Unreal Engine で使用するための操作方法を説明します。

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

このドキュメントでは、Hair Groom のインポートを標準化する試みにおける Alembic ファイルの非公式なスキーマの概要を説明し、髪の情報を 髪のレンダリングとシミュレーション 機能で使用するために、Unreal Engine に取り込む方法についても説明します。このドキュメントの目的は、Hair Groom の生成に際してこのスキーマに準拠することで、グルームを Unreal Engine で直接インポートできるようにすることです。インポートが完了すると、レンダリングと物理の両方で Unreal Engine でサポートされている属性が、Alembic ファイル内のこれらの属性にマッピングされます。

目標

  1. Unreal Engine への髪のインポートを可能にする、グルーム特有の非公式な Alembic メタデータ スキーマを定義する。

  2. Unreal Engine でサポートされている髪の属性を調べて、これらの属性を Alembic にマッピングする。

カーブ トラック

髪の全般的な形状は、標準の Alembic カーブ スキーマから読み取られます。

Alembic::AbcGeom::ICurves

この使用を使ってエクスポートされたグルーム属性によって、グルームのビルド時にインポーターはそれらを取得および使用できるようになります。ただし、幅の属性には特別な挙動があります。たとえば、Maya などの DCC アプリケーションでは、幅値はカーブ上に直接エクスポートされるので、カスタムされた groom_width 属性をエクスポートする必要はありません。インポーターが Maya の幅値を groom_width 属性に変換します。groom_width 属性がグルームに含まれる場合、インポート中は上書きされることは注目に値します。groom_width 属性が指定されていない、または幅値から変換できない場合、Unreal Engine のビルダーが幅値に 1 センチメートルという値を使用するようにフォールバックします。

カーブの幅は、以下を使用して ICurve ごとに保存できます。

(GeometryScope::kConstantScope)

または、以下を使用してカーブごとに保存できます。

(GeometryScope::kUniformScope)

または、以下を使用して cv ごとに保存できます。

(GeometryScope::kVertexScope)

インポーターは kUniformScope をサポートしますが、テストされていないことに留意してください。

命名規則

プロパティ名はすべて小文字で、スペースまたは特殊文字を含めることはできません。

すべてのプロパティは、次のプレフィックスで始める必要があります。

groom_<attr>

例えば、groom_idgroom_color、または groom_width では適切な命名規則がすべて使用されています。

スコープと優先度

このドキュメントで紹介するプロパティにはスコープが割り当てられています。このスコープでは、グルームのどの「レベル」でプロパティを定義できるかを制御します。

利用可能なスコープは次のとおりです。

スコープ

説明

Constant

これらのパラメータは、AbcGeom::ICurves オブジェクトを持つすべてのカーブに対して単一の値を含んでいます。

Uniform

これらのパラメータは、AbcGeom::ICurves オブジェクト内にカーブごとの値を含んでいます。

Vertex

これらのパラメータは、カーブごと、cv ごとの値を含んでいます。

全般的なプロパティ

このセクションでは、グルーム全体に適用されるプロパティの概要を説明します。これらのプロパティは、最上位ノードである IXForm または ICurves に追加する必要があります。

名前

省略可能

説明

groom_version_major

int16

いいえ

このファイルが適合する メジャー なバージョンのグルーム スキーマの特定に使用されます。

1

groom_version_minor

int16

いいえ

このファイルが適合する マイナー なバージョンのスキーマの特定に使用されます。

5

groom_tool

string

はい

このファイルを生成したツールの名前とバージョン。問題の追跡・特定とデバッグに便利です。

groom_properties

string

はい

このグルームの生成に使用されるパラメータを説明する文字列。これらはツール特有のオプションであり、デバッグに使用されます。

ジオメトリ パラメータ

すべてのジオメトリ パラメータは省略可能ですが、エクスポートされたグルームにない場合は、内部挙動的にフォールバックします。

名前

スコープ

省略可能

説明

範囲

groom_ guide

int8/16/32

Constant/Uniform

はい

ガイドはインポートされたストランドとでじメーション設定から生成されます。

0 = ガイドではない、1 = ガイド

groom_group_id

int32

Constant/Uniform

はい

すべてのストランドは一緒にグループ化されます。

[0, INT_MAX]

groom_root_uv

float32/64[2]

Uniform

はい

ルート UV はストランドのルートを球に投影することで計算されます。

この属性は省略可能です。指定しない場合、ルート UV は球状マッピングを使ってエンジン内に自動生成されます。

[-FLOAT_MAX, FLOAT_MAX]

groom_id

int32

Uniform

はい

ストランドに ID はありません。これはデバッグで groom_closest_guides 属性 と使用することを意図しています。

[0, INT_MAX]

groom_color

float32/64[3]

Vertex

はい

黒にフォールバックします。

[0, FLOAT_MAX]

groom_closest_guides

int32[3]

Uniform

はい

補間データが Unreal Engine 外で計算されるような特別な使用を意図しています。

[0, INT_MAX]

groom_guide_weights

float32[3]

Uniform

はい

補間データが Unreal Engine 外で計算されるような特別な使用を意図しています。

[0, FLOAT_MAX]

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