ヘアの代用オブジェクト(インスタンス)をレンダリングする

 
 
 

ヘアをオブジェクトに置き換えると、ヘア シミュレーション内で任意のタイプのジオメトリを使用できます。ヘアを 1 つまたは複数のジオメトリック オブジェクト(インスタンスと呼ばれる)に置き換えることで、さまざまなエフェクトを作成できます。 たとえば、鳥の羽のオブジェクトをインスタンス化したり、葉のオブジェクトをインスタンス化して草木が生い茂ったジャングルを作成したりすることができます。

インスタンス化されたジオメトリはアニメートできます(ローカル回転、スケーリング、デフォーメーションを使ったアニメートなど)。これで、ダイナミクスを使用せずにヘアをアニメートできます(通常のキャラクタをメドゥーサに変えるために頭部でうごめく蛇をインスタンス化する場合など)。

ヘアのインスタンスをレンダリングするには、インスタンス化したいオブジェクトをグループ内に配置するだけです。これで、グループ内の各オブジェクトがガイド ヘアにランダムに割り当てられます。インスタンス化されたジオメトリは、レンダリング時に計算されるため、エフェクトを確認できるのは、レンダ領域内やシーンのフレームをレンダリングする場合だけになります。

レンダ ヘアを置き換えるか、ガイド ヘアだけを置き換えるかを選択できます。また、インスタンスをヘアに割り当てる方法(ランダムに、またはウェイト マップの値を使用して)もコントロールでき、さらにタンジェント マップを使用して向きをコントロールしたり、インスタンスの方向をオブジェクトの方向と同じにしたりできます。

ヘアをインスタンスに置き換える

インスタンス化したジオメトリをヘアに置き換えると、そのローカル Y 軸がガイド ヘアのストランドに揃えられ、ストランドの長さがガイド ヘアに揃えられます。インスタンス オブジェクトの形や長さがおおむね髪束と同じでないとインスタンスが歪む場合があるため、形が全体的に似ているオブジェクトを選択してください。

インスタンス ジオメトリは、ヘアのグルーミング状態、ダイナミクス、およびシェイプ デフォーミングをガイド ヘアから継承します。インスタンス オブジェクトをスムーズにヘアでデフォームするには、サブディビジョン数を十分に確保します(特に Y 軸方向)。

ヘアをインスタンスに置き換えるには

  1. インスタンス化する 1 つまたは複数のオブジェクトを選択し、それらが含まれるグループを作成します([Ctrl]+[G]キーを押すか、[編集]パネル上の[グループ](Group)ボタンをクリックします)。

  2. インスタンスをアタッチするヘア オブジェクトを選択し、[ヘア]プロパティ エディタを開きます。

     
     

    (左)オレンジの円柱と青い円錐のソース オブジェクトが、1 つのインスタンスにグループ化されます。これらのオブジェクトは、髪束に沿ってインスタンス化するのに適しています。これらのジオメトリにも十分なサブディビジョンがあり、髪束のグルーミングとダイナミクスに応じて、スムーズなデフォーメーションを実現できます。

    (右)ヘア オブジェクト。このオブジェクトのヘアが左の 2 つのオブジェクトに置き換えられます。

    ヒント:インスタンス ソース オブジェクトがレンダリングされていないことを確認するには、インスタンス ソース オブジェクトの[表示/非表示]プロパティ エディタの[レンダリング]タブで[インスタンスのマスタ非表示](Instance Master Hidden)オプションを選択します。
  3. [ヘア]プロパティ エディタの[インスタンス]ページで[有効](Enabled)オプションを選択し、レンダ タイプとして、ヘア ジオメトリではなくインスタンス化されたジオメトリをアクティブにします。

  4. [インスタンスグループ](Instance Group)テキスト ボックスの横の[ピック](Pick)ボタンをクリックします。次に、Explorer で、インスタンス化するオブジェクトのグループを選択します。

    [削除](Remove)ボタンをクリックすると、そのオブジェクトのグループが削除され、使用されなくなります。

     
     
  5. ヘアの周囲にレンダ領域を描画するか、シーンをレンダリングして、ヘア上のインスタンス化されたオブジェクト ジオメトリを確認します。

    既定では、インスタンスがレンダ ヘアに適用されます。ただし、[ガイドヘア上のインスタンス](Instances on Guide Hairs)オプションを選択した場合は、インスタンスはガイド ヘアにのみ適用されます。インスタンスをヘア エミッタの頂点にのみ表示するにはこの方法が簡単です。

     
     

    (左)レンダ ヘアが、グループの 2 つのソース オブジェクトによって置き換えられました。

    (右)ガイド ヘアのみが、グループの 2 つのソース オブジェクトによってのみ置き換えられました。

    グループ内の 2 つのオブジェクトが、どのような方法で各自のマテリアル プロパティとテクスチャ プロパティを保持しているかに注目してください。

    インスタンス化されたオブジェクトに変更を加える(そのトポロジやマテリアル属性を変更するなど)と、ヘア上ですぐに更新されます。

    ヒント:レンダ ヘアをインスタンスで置き換えている場合、インスタンス化されたジオメトリは通常のレンダ ヘアより多くの空間を占める場合が多いため、[ヘア]プロパティ エディタの[レンダ設定]領域内にある[ヘアのレンダリング%](Render Hairs %)値を小さくすることができます(「マップをレンダ ヘア パラメータに接続する」を参照)。
  6. インスタンスの割り当て方法を設定します。「インスタンスの割り当て方法を選択する」を参照してください。

  7. インスタンスの向きを決定する方法を設定します。「インスタンスの向きを設定する」を参照してください。

ヘアのインスタンスを無効にするには

  • [ヘア]プロパティ エディタの[インスタンス]ページで、[有効](Enabled)オプションの選択を解除します。

インスタンスの割り当て方法を選択する

インスタンス化されたオブジェクトをヘアに割り当てる方法を選択できます。これには、2 つの方法(ランダムに、またはウェイト マップの値を使用して)があります。

インスタンスをランダムに割り当てるには

  • [ヘア]プロパティ エディタの[インスタンス]ページで[オブジェクトの割り当て](Object Assignment) [ランダム](Random)オプションを選択します。

    [ランダム](Random)を選択すると、インスタンス グループのオブジェクトがヘアにランダムに割り当てられます。つまり、どのインスタンス オブジェクトをどのヘアに割り当てるかをコントロールすることはできません。

    ヘアは、グループの 2 つのインスタンス化されたオブジェクトによってランダムに置き換えられます。

ウェイト マップに従ってインスタンスを割り当てるには

  1. ヘア エミッタ オブジェクトのウェイト マップを作成し、必要な値をペイントします([W]キーを押します)。

    ヘア パラメータのウェイト マップ全般の詳細については、「マップをレンダ ヘア パラメータに接続する」を参照してください。

  2. ヘア オブジェクトを選択し、[ヘア]ツールバーの[マップの参照](Transfer Map)ボタンをクリックして、このウェイト マップをヘア エミッタからヘア オブジェクトに転送します。

  3. Explorer で、作成したエミッタ オブジェクトのウェイト マップを選択します。これは、ヘア エミッタ オブジェクトのジオメトリの[Clusters]>[WeightMapCls]ノードにあります。

  4. [ヘア]プロパティ エディタの[インスタンス]ページで[オブジェクトの割り当て](Object Assignment) [ウェイトマップの使用](Using Weight Map)オプションを選択します。

    このオプションでは、ウェイト マップの値を使用してインスタンスをヘアに割り当てます。ウェイト マップの値が 0 の場合は、Explorer のインスタンス グループの一番下に表示されているオブジェクトが使用されます。ウェイト マップの値が 1 の場合は、インスタンス グループの一番上に表示されているオブジェクトが使用されます。

    インスタンス グループに複数のオブジェクトがある場合は、グループの中間にリストされているオブジェクトは、それぞれ 0~1 の値に応じてマップされます。複数のインスタンス オブジェクトのエフェクトを表示するには、ウェイト マップの値の範囲が適切になるようにしてください。

  5. [ウェイトマップの使用]を選択したときに下に表示される[オブジェクトの割り当てマップ](Object Assignment Map)の隣で、接続(小さなプラグ)のアイコンを右クリックして、[接続](Connect)を選択します。

    ポップアップ エクスプローラで、[Hair] [Clusters] [WeightMapCls]ノードにあるウェイト マップを選択します。

    接続アイコンが赤に変わり、マップが接続されていることが示されます。

    マップを接続したら、エミッタ オブジェクトのオリジナル マップ上のウェイト マップに戻り、調整できます。調整すると、接続されているマップ(およびヘアの外観)も更新されます。

    (左)ウェイト マップの黒い領域には値 0 が、水色の領域には値 1 が指定されています。

    (右)ヘアは、ウェイト マップの値を使用して、グループの 2 つのインスタンス化されたオブジェクトに置き換えられました。

    Explorer のグループ上側のインスタンス オブジェクト(青い円錐)はウェイト マップの値 1 にマップされ、下側のオブジェクト(オレンジの円柱)は値 0 にマップされます。

  6. また、[曖昧さ(%)](Fuzziness)オプションを設定することもできます。このオプションでは、0~100% の値を使用してウェイト マップの値をブレンドし、インスタンス化されたオブジェクト同士の境が目立たないように仕上げることができます。

インスタンスの向きを設定する

インスタンス化されたジオメトリの向きは[Tangent Map]を使用する、または[オブジェクトに従って](Follow Object)(1つまたは複数のオブジェクト)の2つの方法で制御することができます。もちろん、[インスタンス]ページの[Orientation] [Type]オプションを[None]にしておくことで、向きを制御しないようにすることも可能です。

向きのタイプの設定に加えて、[スプレッド](Spread)の値を角度(0~360)で設定し、各インスタンスをローカルに回転させることもできます。割り当て方法を使用して、インスタンス内の回転値のランダム化を可能にします。

  • インスタンス内のスプレッド値をリニアに割り当てるには、[リニア](Linear)を選択します。

  • ベル カーブ状にインスタンス内のスプレット値を正規分布するには、[ガウス](Gaussian)を選択します。

タンジェント マップに従って向きが決められたインスタンス

ヘア エミッタのサーフェイスが絶えずデフォームしている場合は、ヘアの向きがサーフェイス上で同じ方向であり続けるようにする必要があります。デフォームされるときのエミッタと相対的な向きにヘアが固定されるようにするには、エミッタのサーフェイスに基づいたローカル座標系がヘアに必要です。このローカル座標系は既定では存在しません。この座標系がないと、エミッタのサーフェイスがデフォームするとき、インスタンスはヘアの周囲を回転するようになってしまいます。

タンジェント マップを使用すると、インスタンスのローカル座標系を作成できます。タンジェント マップはサーフェイス上の方向(「タンジェント」とも呼ばれます)を示します。各インスタンスの向きは、この方向の反対になります。タンジェント マップを作成すると、タンジェント オペレータが RGB 値(ポリゴン メッシュの頂点カラー プロパティに保存されている)を使用して、各ヘア インスタンスにローカル XYZ 座標系を提供します。マップの RGB 値はそれぞれ、インスタンスの XYZ 軸に対応します。タンジェント マップは、X 軸がヘア エミッタの U 方向に従うように各インスタンスの向きを選択します。

マップ上の RGB カラー値はインスタンスの XYZ 軸に対応するため、頂点カラーをペイントすることによってインスタンスの向きを編集できます。また、テクスチャ サポートを移動または回転させたり、テクスチャ投影方法または投影平面を変更したりして、頂点カラーの RGB 値を変更することもできます。これによって、インスタンスの向きが変わります。

   

このヘア エミッタ(わずかにデフォームされたグリッド)には専用に作成されたタンジェント マップがあり、グリッドの頂点カラー プロパティに保存されています。ここでは、頂点カラーはかなりランダムです。

インスタンスの向きは、頂点カラーの RGB 値に応じて決定されます。

   

ここでは、頂点カラーの違いは、より微妙です。

頂点カラーの変化に応じて、インスタンスの向きがどのように変わるかに注目してください。

タンジェント マップに従ってインスタンスの向きを決定するには

  1. ヘア エミッタ オブジェクトのテクスチャ プロジェクション(任意のツールバーから、[取得](Get) [プロパティ](Property) [テクスチャプロジェクション](Texture Projection)を選択)およびタンジェント マップ([取得](Get) [プロパティ](Property) [タンジェント](Tangent)を選択)を作成します。

  2. Explorer を開き、ヘア エミッタのジオメトリ >[Clusters]>[Texture_Coordinates]>[VertexColor]ノードでタンジェント マップを探します。

  3. [TangentOp]アイコンをクリックして[タンジェント](Tangent)プロパティ エディタを開き、[状態](State)[アクティブ](Active)に設定されていることを確認します。

    [スムージング](Smoothing)値を大きくすると、タンジェント マップ上の鋭角を滑らかにできます。滑らかにしすぎてもアーティファクトが発生するため、[スムージング]値は少しづつ大きくする必要があります。

  4. ここで、エミッタからヘア オブジェクトに、[VertexColor]プロパティを介してタンジェント マップを転送する必要があります。このためには、ヘア オブジェクトを選択し、[ヘア]ツールバーの[マップの参照](Transfer Map)ボタンをクリックします。Explorer で、エミッタ オブジェクトの[VertexColor]プロパティを選択します。

  5. [ヘア]プロパティ エディタの[インスタンス]ページで、[向き](Orientation) [タイプ](Type) [タンジェントマップ](Tangent Map)オプションを選択します。

  6. このオプションを選択したときに表示される[Tangent Map]オプションの隣で、接続(小さなプラグ)のアイコンを右クリックして、[接続](Connect)を選択します。

    ポップアップ エクスプローラで、[Hair]>[Clusters]>[Texture_Coordinates]ノードにある[VertexColor]プロパティを選択します。接続アイコンが赤に変わり、マップが接続されていることが示されます。

  7. タンジェント マップを使用して向きをコントロールするために、エミッタの頂点カラープロパティを編集できます。[W]キーを押してブラシ ツールをアクティブにし、[Ctrl]+[W]キーを押してブラシ プロパティを開きます。次に、[頂点カラー]タブをクリックします。

    マップの RGB カラー値はそれぞれ、インスタンスの XYZ 軸に対応します。

ターゲット オブジェクトに従うインスタンス

インスタンスが 1 つまたは複数のオブジェクトに従う場合、これらのオブジェクトの方向に応じてこれらのインスタンスの向きが決定されます。複数のオブジェクトを使用して、各ターゲット オブジェクトとの距離によるウェイト平均となるインスタンスの向きを決定することができます。つまり、ヘアに近いターゲット オブジェクトほど向きの影響力が大きくなります。単一オブジェクトでは、インスタンスは常にターゲット方向に向きます。

オブジェクトに従うインスタンスは、ターゲット オブジェクトがヘア オブジェクトの近くにある場合に最適のエフェクトを生み出します。

オブジェクトの方向にインスタンスを向けるには

  1. ヘアを従わせるオブジェクトを 1 つまたは複数選択し、それらのオブジェクトを含むグループを作成します([Ctrl]+[G]キーを押すか、[編集]パネルの[グループ](Group)ボタンをクリックします)。

  2. [ヘア]プロパティ エディタの[インスタンス]ページで、[向き](Orientation) [タイプ](Type) [オブジェクトに従って](Follow Object)オプションを選択します。ターゲット オブジェクトの位置に従ってインスタンスの向きが決定されます。

  3. 表示される[ターゲットグループ](Target Group)オプションの横の[ピック](Pick)ボタンをクリックします。Explorer で、インスタンスが従う位置のオブジェクト グループを選択します。

    [削除](Remove)ボタンをクリックすると、インスタンスのターゲット グループのエフェクトが削除されます。