Variation Builder

Variation Tableを作成することは、時間を要するプロセスである可能性があります。さらに、手動でこの動作を実行することは人的ミスにつながる場合があります。
Variation Builderは、バリエーションを構築するために使用するツールです。このツールは、Maya Render LayersやHoudini Takesなどの本来の3Dアプリケーション機能と連携して機能します。

Atomsに含まれている、AtomsRobot.maシーンを見てみましょう。シーンには、ジオメトリグループとも呼ばれる、エージェントタイプのバリエーションを定義する様々なレンダーレイヤが含まれています。
各階層は、実際にはシーンのジオメトリとマテリアルの組み合わせを定義します。バリエーションのために、ユーザーはmayaマテリアル、またはユーザーのレンダーエンジン特有のノードを使用することができます。


図では、そのシーンで定義されている10個あるレンダーレイヤのうち4つ表示しています。
ユーザーのレンダーレイヤの名前は、ユーザーのバリエーション名になるでしょう。

様々なバリエーションで同一のジオメトリを使用できますが、Variation BuilderはMayaのRender Overrideをサポートしません。Material Render Overrideを使用する代わりに、別のマテリアルを作成してください。

ユーザーは、同一のレンダーに入るすべてのマテリアルノードに異なる名前を付ける必要があります(ファイルノード、マテリアルノードなど)。これは、RendermanとArnoldの制限によるものです。

Variation Builder UI

Export Tab

バリエーションの準備ができた後、Variation Builderを開くことができます。
Atoms > Variations > Variation Builder


バリエーションを適切にエクスポートするには、すべてのパラメータを入力してください。

  • Agent Type:ユーザーのエージェントタイプ名(リストは、ユーザーのシーンで利用可能なすべてのエージェントタイプ名を事前に入力します)。
  • Variation File:出力先のVariation JSONファイル
  • Merge Variation File:Trueで既存のVariation JSONファイルを選択した場合、プロセスは既存のファイルの内容を現在のビルドとマージします。
  • Skeleton File:エージェントタイプのスケルトンファイルへのパス
  • Skeleton Root:ユーザーのスケルトンに対するスケルトンルート
  • Variation List:エクスポートを実行したいバリエーションのリスト。何も選択されていない場合は、それらすべてがエクスポートされます。
  • Renderer:使用するレンダラ。 「Preview Only」を選択した場合は、プレビューデータのみがエクスポートされます。
  • Simple Material Conversion:Trueから、lambertやphongなどのmayaマテリアルを使用した場合、Variation Builderは、エクスポート時にマテリアルノードをレンダリング固有のマテリアルノードに置き換えます(つまり、ArnoldのaiStandard)。
    このプロセスでは、完全な受信ネットワークは置き換えられず、マテリアルノードだけが置き換えられます。
  • Bake Textures:本来のMayaマテリアルノードを使用した場合は、選択したレンダラまたはMaya APIを使用してテクスチャがベイク処理されます。
  • Create Thumbnails:各バリエーションについてjpegプレビューが生成されます。画像は、現在のビューポートを使用して生成されます。
  • Full Path:テーブル内の領域名はフルパスでエクスポートされます。こちらのオプションの使用は、元の階層がKatanaとAtomsによってエクスポートされたAlembicにする必要がある場合にのみ行うように注意してください。

Variation Builderは、Variation JSONファイルと同じレベルに3つのサブフォルダーを作成します。

  • geometries:ジオメトリファイルを含みます。
  • materials:マテリアルファイルを含みます。
  • preview:プレビューベイクテクスチャを含みます。



Variation Tab

バージョン2.4.0からVariation Builderは、ホストシーンでバリエーションを作成できるように拡張されました(この機能は、Maya 2017以降でのみ機能します)。
こちらのツールを使用すると、ユーザーは多数のメッシュからなる独自のバリエーションタイプを作成することができます。また、ユーザーはメッシュやマテリアルのコンストレイントを追加して、バリエーションを変更することができます。
まず、右側のパラメータを見てみましょう。

  • Variation Number:バリエーションタイプ毎に作成されるバリエーションの数です
  • Max Attempt Number:ツールは、同一メッシュとマテリアルを持つ2つのバリエーションが同一のバリエーションタイプに存在しないように調整します。ツールは、指定された回数だけ異なるバリエーションを作成しようとします。
  • Material Prefix:マテリアル検索に使用されるMaterial Prefix
  • Geo-Mat Suffix Replacement:ホストシーンでマテリアルを検索する時に、ツールは、現在のジオメトリ名の最初の値を2番目の値に置き換えます。
    ユーザーは、2番目の値の内側に "*"を使用して、ドキュメントの検索をより柔軟に行うことができます。例えば、ホストマテリアルがホストシーンの命名規則で作成された場合(つまり、 "_ black_MAT"、 "_brown_MAT"などで終わる)。
  • Geo-Mat Alias:こちらで、ユーザーのメッシュ名に対して、実行できる置換のリストを指定することができます。例えば、 "suitClosed_GEO"と "suitOpen_GEO"という名前の2つのメッシュがあり、それらが両方とも "suit_black_MAT"、 "suit_brown_MAT"などの名前のマテリアルで機能する場合、このリストで2つのエイリアスを指定する必要があります。"suitOpen" - "suit", "suitClosed" - "suit".

テストケース

少し混乱を防ぐために、実際に例を見てみましょう。
UIには以下があります。

  • 「smartClosedJacket1」、「casualAutumn」、および「casualSummer」の3つのバリエーションタイプ
  • "Hairs"という名前の1つのグローバルエクストラジオ
  • "SuitClosedToTrousers"という名前の1つのマテリアルコンストレイント
  • "casualAutumn"バリエーションタイプには、 "Hairs"と "Props"という2つの追加のジオグループがあります。


バリエーション作成プロセスの後、ユーザーはホストシーンに30のバリエーションを保有することになります。このホストシーンでは、すべてのマテリアルに "woman_"という接頭辞が付けられています。
UI項目は、上部のボタンを使用して作成できます。ボタンを左から右へ:

  • バリエーションタイプを作成します。
  • ホスト選択ジオをSelected Variation TypeまたはExtra Geo Groupに追加します。
  • 新規のExtra Geo Groupを作成します。バリエーションタイプを選択すると、Extra Geo Groupが追加されます。それ以外の場合は、ルートレベルで作成されます。各範囲について、配分のウェイトを指定できます。
  • マテリアルコンストレイントを作成します。
  • 選択した要素を上に移動します。
  • 選択した要素を下に移動します。
  • 選択した要素を削除します。


UIの右側には、現在の設定の保存や、UIに設定ファイルをロードするためのボタンがさらに2つあります。設定は、JSONファイルとして保存されます。


Extra Geo

Variation、Extra Geo Group毎に1つのジオのみが選択されます。
各Extra Geo Groupの下には、Noneの要素もあります。同じ種類のすべてのバリエーションで余分な範囲情報を取得したくない場合は、「None」を0より大きい値に設定する必要があります。


ご覧のとおり、 "casualAutumn"バリエーションタイプには2つのExtra Geo Groupがあり、そのうちの1つは、rootレベルのExtra Geo Groupとまったく同じ "Hairs"という名前です。
"Hairs"Local Extra Geo Groupは、rootの "Hairs"Extra Geo Groupをオーバーライドし、CasualAutumnバリエーションがすべてhair3_GEOのみを使用するようにします。


マテリアルコンストレイント

マテリアルコンストレイントは、構築プロセスによって、別のマテリアルが別の範囲用に既に選択されている場合は、常時特定のマテリアルが範囲に割り当てられていることを確認する場合に便利です。
例えば、キャラクターのジャケットとズボンの色を同一色にすることや、スキンマテリアルを選択した際に特定のヘアマテリアルを使用することが可能です。

こちらの例では、スーツのマテリアルがズボンのマテリアルを動かします。Source MaterialとDestination Materialの両方に "*"が含まれている場合、Source Material名で一致した文字列がDestination Materialに適用されます。別の方法として、該当するドキュメントにのみ "*"Wildcardsを指定できます。
提供されたコンストレイントに対して、マテリアルが見つからない場合、マテリアルの検索は上記のパラメータを使用して標準の検索にフォールバックします。

マテリアルコンストレイントの場合は、UIまたはホスト内からアイテムの入力やドラッグアンドドロップを実行してアイテムを定義します(Mayaでは、マウスの中央ボタンを使用して、ジオまたはマテリアルをドラッグアンドドロップできます)。

構築プロセス

これら2つのステップでは、アルゴリズムが各バリエーションタイプを処理する方法を説明します。

  • 現在のバリエーションタイプのすべてのジオメトリについて、まず標準の検索を実施して、次にマテリアルコンストレイントでマテリアルを検索します。
  • 現在のバリエーションタイプに有効なすべてのextra geos ついて、最初に標準検索を実施して、次にマテリアルコンストレイントでメッシュが選択され、マテリアルが割り当てられます。

ご注意ください:

  • ジオはUI順に処理されます。
  • ジオのマテリアルが見つからない場合、そのジオはバリエーションに追加されません。
  • マテリアルのコンストレイントがある場合は、Driven Geo/MaterialがDriving Geo/Materialの後に割り当てられるようにしてください。

LOD

LODの設定は非常に簡単です。実際には、バリエーションを作成することと同じです。

唯一変更されるものはユーザーのレンダーレイヤ(またはテイク)名です。 Atomsでは、LODは、バリエーショングループの子としてのみ有効です。よって、次の命名規則が考えられます。LOD名は、常に "$(VariationName)__"で始まる必要があります。

例えば、レンダーレイヤにRobot1のバリエーションのLOD定義(A)が含まれている場合、その名前は "Robot1__A"にする必要があります。



ユーザーのエージェントに対して、LODを割り当てる場合はLODモジュールを使用してください。

Copyright © 2017, Toolchefs LTD.