インスタンス ジオメトリ ワークフローの例

Xgen を使用して、森、草原、採石場、ランダム化された自然の要素を含むその他のシーンを装飾することができます。この例では、草や木のジオメトリを持つポリゴン プレーンを設定します。次の操作方法について例示します。

重要: 開始する前に、Maya プロジェクトの場所を設定していることを確認します。XGen は、Maya プロジェクト フォルダから参照する必要のある Ptex マップ ファイルなどの数多くのファイルを作成します。

既定のアーカイブ ジオメトリを追加します。

XGen には、シーンに追加できる Alembic ベースのジオメトリおよびマテリアル ファイルのサンプルが付属しています。これらのファイルは、Maya インストール フォルダ内の archive フォルダにあります。例:

C:¥Program Files¥Autodesk¥Maya2015¥plug-ins¥xgen¥presets¥archives

ヒント: 開始する前に、既定のアーカイブ プリミティブ ジオメトリとサポート ファイルを Maya のインストール フォルダから C:¥Users¥username¥Documents¥xgen¥archives フォルダにコピーします。

このセクションでは、緑の多い景色に草束を追加します。

  1. アーカイブ ジオメトリをインスタンス化するポリゴン メッシュを選択します。

    この例では、アーカイブ オブジェクトは、スカルプトされたポリゴン プレーンに追加されます。

  2. XGen > ディスクリプションを作成(XGen > Create Description)を選択します。
  3. XGen ウィンドウで、ディスクリプション(Description)コレクション(Collection)名を入力します。
  4. 次の設定を行い、アーカイブ プリミティブのディスクリプションを作成します。
    • このディスクリプションによってどのような種類のプリミティブが作成されますか?(What kind of Primitives are made by this Description?)カスタム ジオメトリ/アーカイブ(作成したモデルに対して使用) (Custom Geometry/Archives (use for any model you have created))
    • プリミティブの生成(Generate the Primitives)サーフェス全体にわたってランダムに(Randomly across the surface)
    • 次を使用してプリミティブをコントロール(Control the Primitives by)配置およびシェイプ ガイド(Placing and shaping Guides)
  5. 作成(Create)をクリックします。

    これでメッシュがディスクリプションにバインドされます。ガイドを追加または移動(Add or Move Guides)ツールを使用してメッシュ サーフェスにガイドを配置します。

  6. XGen ツールバーで、このアイコン をクリックしてガイドを追加または移動(Add or Move Guides)ツールを選択します。
  7. ガイドを配置するメッシュ上の領域をクリックします。

    アーカイブ プリミティブのガイドがオレンジ色の立方体としてメッシュ上に表示されます。これで、どのアーカイブされたジオメトリをメッシュ上でインスタンス化するかを指定できるようになりました。

  8. プリミティブ(Primitives)タブをクリックしてアーカイブ ファイル(Archive Files)セクションまでスクロールします。
  9. 追加(Add)をクリックし、archives フォルダの場所まで移動します。

    例:

    C:¥Program Files¥Autodesk¥Maya2015¥plug-ins¥xgen¥presets¥archives

    または

    C:¥Users¥username¥Documents¥xgen¥archives.

  10. GrassClump1.xarc を選択し、はい(Yes)をクリックしてマテリアル ファイルを追加します。

    シーン内で草束ジオメトリがプレビューされます。アーカイブ ファイル(Archive Files)セクションでサムネイル イメージにより草束ジオメトリが示されていることに注目してください。

ジオメトリのサイズと密度を設定する

この例では、草束のサイズがシーンのスケールに対して大きすぎます。Size アトリビュートを使用してジオメトリをスケールすることができ、さらに、Density を設定することで草束の数を増やすことができます。

  1. 草束をスケールするには、アーカイブ ファイル(Archive Files)セクションでサイズ(Size)を 2.5 に設定します。

    サイズ(Size)の値を大きくすると、ジオメトリのスケールが小さくなります。

  2. 草束の数を増やすには、ジェネレータ アトリビュート(Generator Attributes)セクションで 密度(Density) を 6.5 ~ 8 の値に設定します。

    シーン内のすべての草束が同じサイズのため、不自然に見えます。サイズに変化をつける簡単な方法は、ガイドを再スケールすることです。

  3. シーンでいくつかのガイドを選択し、スケール ツール(Scale Tool)を使用してリサイズします。

    ディスクリプションをプレビューすると、束のサイズに変化がついていることに注意してください。各プリミティブのサイズが異なるサイズのガイドの補間となりました。

    この例の後半で、エクスプレッションを使用してプリミティブのサイズと方向のランダム化をより優れたものとします。

  4. アイコンをクリックしてガイド表示をオフにします。

指定された領域からインスタンス化されたジオメトリを削除する

ランドスケープ シーンで、多数の草束が岩群の上に表示されています。Ptex ベースの密度(Density) マスク(Mask)をペイントしてこれらの領域に草束が生成されないようにすることができます。

Ptex マップを使用してプリミティブをコントロールする」を参照してください。

  1. ジェネレータ アトリビュート(Generator Attributes)セクションで、マスク(Mask)の横にあるこのアイコン をクリックし、表示されるメニューからマップを作成(Create Map)を選択します。
  2. マップを作成(Create Map)ウィンドウで、mask_GrassClumps などのマップ名を入力します。
  3. 次の設定を行います。
    • マップの解像度(Map Resolution)を 30 に設定します。

      これにより、Ptex マップのフェースごとのテクセル数が設定されます。

    • スタート カラー(Start Color)白(White)に設定します。

      これによりマップ値が 1 に設定され、サーフェス上でジオメトリがインスタンス化できるようになります。メッシュ上でペイントするときに黒を使用すると、これらの領域がマスクされます。

  4. ツール設定(Tool Settings)ウィンドウで、次のように設定します。
    • アーティザン(Artisan)の横で、ハード エッジ ブラシを選択します。
    • カラー(Color)セクションで、カラー サンプルをクリックして黒を選択します。
    • ペイント操作(Paint Operations)セクションで、ブレンド モード(Blend mode)既定(Default)に設定します。
    • スタイラス圧力(Stylus Pressure)セクションで、スタイラス圧力(Stylus Pressure)をオフにします。
    注: 3D ペイント ツール(3D Paint Tool)ウィンドウが表示されない場合は、ツール ボックスのこのアイコン をクリックしてウィンドウを開きます。
  5. 3D ペイント ツール(3D Paint Tool)を使用して、草束を生成しないメッシュの領域をペイントします。
  6. この アイコンをクリックして Ptex マップを保存します。
  7. ディスクリプションをプレビューします。

    草束がランドスケープの岩の領域上に生成されなくなりました。

ペイント エフェクト ツリーをアーカイブ ジオメトリとして書き出す

このセクションでは、Maya のペイント エフェクト ツリーがカスタム アーカイブ ジオメトリに変換され、シーンに追加されます。

アーカイブ オブジェクトとしてペイント エフェクト ツリーを書き出す前に、ジオメトリに変換する必要があります(修正 > 変換 > ペイント エフェクトをポリゴンに(Modify > Convert > Paint Effects to Polygons))。

  1. ジオ メトリを選択し、Maya のメニューからXGen > 選択項目をアーカイブとして書き出し(XGen > Export Selection as Archive)を選択します。
  2. 選択項目をアーカイブとして書き出し(Export Selection as Archive)ウィンドウで、次のように設定します。
    • フッテージ フォルダ(Destination Folder)ユーザ アーカイブ($){HOME}/xgen/archives) (User Archives ($){HOME}/xgen/archives))に設定します。

      Maya がユーザ フォルダにある xgen フォルダにアーカイブ ファイルを保存します。例:

      C:¥Users¥username¥Documents¥xgen¥archives

      このワークフロー例の最初で説明されているように既定のアーカイブをこのフォルダにコピーしていた場合、すべてのアーカイブが同じ場所にあることになります。

    • PE_Tree などのファイルのアーカイブ名(Archive Name)を入力します。

      Maya はこの名前をアーカイブに対して生成されるすべてのファイルに使用します。

    • 詳細レベル(Level of Detail)無効(Disabled)に設定します。
    • 書き出し(Export)をクリックします。

    Maya がペイント エフェクト ツリーのカスタム アーカイブ ファイルを生成します。

    アーカイブ ファイルについては、「カスタム アーカイブ プリミティブ」を参照してください。

次のセクションでは、ポイント指定ツール(Specify Points Tool)を使用してシーンにジオメトリを配置します。

ポイント指定(Specify Points)ツールを使用してジオメトリを追加する

ポイント指定(Specify Points)ツールを使用して、メッシュ上の指定した場所にジオメトリを追加することができます。このツールを使用することで、ガイド補間に依存してアーカイブ プリミティブを配置することなく、ジオメトリを正確に配置することができます。

  1. 次の設定で新しいディスクリプションを作成します。
    • このディスクリプションによってどのような種類のプリミティブが作成されますか?(What kind of Primitives are made by this Description?)カスタム ジオメトリ/アーカイブ(Custom Geometry/Archives)
    • プリミティブを生成する(Generate the Primitives)指定したポイント上(At points you specify)
  2. 作成(Create)をクリックします。
  3. プリミティブ(Primitives)タブをクリックします。
  4. ジェネレータ アトリビュート(Generator Attributes)セクションで、ポイントの指定(Specify Points)をクリックします。

    ポイントの指定ツール(Specify Points Tool)ウィンドウが表示され、カーソルがポイント ツールに変化します。

  5. 木を生成するメッシュ上の領域をクリックします。

    黄色いインジケータがこれらの位置をマークします。

    注: ポイントを削除するには、+クリックします。
  6. ポイントの指定ツール(Specify Points Tool)ウィンドウで、保存して閉じる(Save & Close)をクリックします。

    ポイント マップが指定した場所に保存されます。

    次に、アーカイブされたペイント エフェクト ツリーを選択します。

  7. アーカイブ ファイル(Archive Files)セクションまでスクロールして追加(Add)をクリックします。
  8. ペイント エフェクト ツリー アーカイブ ファイルが格納されているアーカイブの場所を参照します。
  9. XGen マテリアルの読み込み(XGen Import Material)ウィンドウが表示されたら、はい(Yes)をクリックしてツリー ジオメトリに関連付けられたマテリアル ファイルを読み込みます。
    ツリー ジオメトリがポイントの位置に表示されます。シーンのスケールによって、アーカイブ ジオメトリのサイズ変更が必要となる場合があります。
    注: アーカイブ ファイル(Archive Files)リストで、アーカイブ ジオメトリを表すサムネイル イメージを追加することができます。「アーカイブ グループの編集(Edit Archive Group)ウィンドウ」を参照してください。
  10. アーカイブ ファイル(Archive Files)セクションで、サイズ(Size)を調整してツリーをスケールします。
  11. すべてのツリーが同じサイズとシェイプであることに注意してください。次のセクションでは、ツリーのサイズと方向の値をランダムに生成するためにエクスプレッションを作成します。

インスタンス化ジオメトリのサイズ、シェイプ、方向を変更するには、エクスプレッションを使用します。

エクスプレッションを使用して、ジオメトリのサイズ、シェイプ、方向のランダム化を操作できます。この方法では、同じジオメトリを複数回インスタンス化できますが、各インスタンスはシーン内で異なって表示されます。

インスタンス化されたジオメトリに簡単に変化をつけるには、ランダム化エクスプレッションを使用します。

ツイスト(Twist) アトリビュートをランダム化するには

  1. プリミティブ アトリビュート(Primitive Attributes)セクションで、ツイスト(Twist) の横にあるこのアイコン をクリックします。
  2. XGen エクスプレッション エディタ(XGen Expression Editor)で、次のエクスプレッションを入力します: rand(0,360)

  3. 適用(Accept)をクリックします。

    これで各ツリーに独自の固有 ツイスト(Twist) 値が設定されました。

コレクション エクスプレッションを使用して変化をつける

ランダム化する別の方法は、コレクション エクスプレッションを作成することです。このタイプのエクスプレッションは、コレクション内のすべてのディスクリプションの異なるプリミティブ アトリビュート値に適用できます。

この例では、コレクション エクスプレッションを使用してスライダ コントロールを持つカスタムの XGen アトリビュートを作成します。スライダ コントロールを使用することで、LengthWidthDepthTwist などのアトリビュートに適用できる、ランダム化された値を生成することができます。

  1. XGen ウィンドウで、エクスプレッション(Expressions)タブをクリックします。
  2. 名前(Name)の横に、randomizer などのカスタム エクスプレッションの名前を入力します。

    float 値を使用するため、このエクスプレッションは浮動小数(Float)に設定されたままにします。

  3. アイコンをクリックしてアトリビュートを作成します。
  4. アトリビュートの横にある アイコンをクリックします。
  5. XGen エクスプレッションエディタ(XGen Expression Editor)で次のように入力します。

    $a=;

    これにより、アトリビュート用のスライダ コントロールが作成されます。

  6. 次の行に、次の式を入力します。

    $a*rand(0.1, 3.0)

  7. 適用(Accept)をクリックします。

    このエクスプレッションでは、スライダ値がランダム化関数によって乗算されています。これで、プリミティブ アトリビュートを設定して、エクスプレッションによって生成されたランダムな値を使用することができるようになりました。

  8. プリミティブ(Primitives)タブをクリックし、長さ(Length) の横にある アイコンをクリックします。
  9. XGen エクスプレッションエディタ(XGen Expression Editor)に表示された内容をクリアし、カスタム アトリビュート名に続けて()を入力します。例: randomizer()適用(Accept)をクリックします。

    長さに割り当てられる値が、カスタム アトリビュート スライダの設定に基づいてランダムに生成されるようになりました。

  10. 上記の手順を 幅(Width)深度(Depth)ツイスト(Twist) に繰り返します。
  11. エクスプレッション(Expressions)タブをクリックし、カスタム アトリビュート スライダを使用して適切な値を生成します。

    また、randomizer()エクスプレッションを使用して、シーン内の草束のサイズと方向に変化をつけることもできます。