ファーの凹み具合をウェイトでコントロールするには
https://www.youtube.com/watch?v=faRwkmKSiTY
今回は均一に生えているファーの凹み具合をウェイトでコントロールする方法をご紹介します。
サンプルとなるこのシーンでは、球体が芝生の上を動き、その動きと同じように芝生がへこむような表現が行われています。これをファーとウェイトマップの組み合わせで行っていきます。
このファーのへこみ具合はウェイトでコントロールされていますが、球体が動くと同じようにへこみも動かすため、アニメーションさせる必要があります。通常のダイレクトモデリングではウェイトのアニメーションは行えませんので、今回はプロシージャルモデリングを用います。
では新規シーンで空のメッシュレイヤーに対して、メッシュオペレーションからプリミティブ > Cubeを追加し、セグメントが細かく切られた板ポリゴンを作成します。さらに、球体が動く軌跡を表すカーブのメッシュも作成しておきます。
それではこのカーブをもとにウェイトマップを作成してみましょう。オペレータ追加 > 頂点マップ > Set Weightオペレーションを追加し、マップタイプをWeight Mapに指定したら、適切なマップ名称を設定します。この状態だと、すべてが選択された状態になるため、値が均一に設定されますので、ウェイトを設定する箇所を選択していきます。この選択はラディアルフォールオフで作ります。Set Weight > Selection > (Selectionを追加)からSelect By Falloffを追加し、さらにSelect By Falloffからフォールオフ > (フォールオフを追加)でRadial Falloffを追加します。これでラディアルフォールオフが位置する箇所にウェイトが設定されるようになりました。
次にこのラディアルフォールオフをカーブに沿って動かします。アイテムをカーブに沿って動かすには、パスコンストレイントというモディファイヤを使います。まずパスに追従させるアイテム、この場合はラディアルフォールオフを選択してから、追従させる先となるカーブを複数選択し、セットアップパレットのモディファイヤのタブにあるパスをクリックします。これでラディアルフォールオフはカーブの上を移動するようになりました。パスコンストレイントタブにあるパスパーセンテージの値が、パス上の位置を示します。パスパーセンテージの値が0%の場合はカーブの始端、100%の場合はカーブの終端に位置しますので、これを0%から100%に変化するアニメーションを設定します。そうすると、ラディアルフォールオフはカーブの上を移動するようになり、それにあわせてウェイトもメッシュ上を移動していくようになります。
ここまででファーのへこみ具合を表現するためのウェイトが用意できましたので、実際にFurを設定してみましょう。まずはマテリアルを設定します。オペレータ追加 > ポリゴン > Material Tagでマテリアルを設定したら、レンダータブへと移り、シェーダツリーでファーを設定します。
まだメッシュオペレーションでマテリアルタグを指定しただけですので、シェーダツリーからマテリアルのグループを作成し、ポリゴンタグを設定したら、その中にマテリアルを追加します。ファーがわかりやすいように、マテリアルの色を緑色などに設定しておきます。ではここにファーを追加します。レイヤー追加 > 特殊 > Fur Materialを追加します。これで簡単にファーをはやすことができました。
デフォルトの状態ではファーは均一に生えてきています。ファーに関する設定はファーマテリアルやファーガイド、ファーキンクといったタブに集約されています。今回はファーキンクタブにあるルートベンドという値を使ってみます。この値はファーが立ち上がる根元の折れ具合を表します。このため、ルートベンドの値が高いと、ファーが踏みならされたように折れてへこんでいる状態を表すことができます。
このルートベンドの値を、先ほど作ったウェイトマップでコントロールします。まずはマテリアルグループの中に頂点マップ用のテクスチャを作成します。レイヤー追加 > 処理 > Vertex Map Textureを追加し、先ほど作った頂点マップを設定します。デフォルトの状態ではエフェクトがディフューズの色になっていますので、ウェイトに従って色が付けられているのが確認できます。今回ほしいのはウェイト値によるルートベンドのコントロールですので、エフェクトをクリックし、ファー > ファールートベンドを選択します。そうすると、ラディアルフォールオフによってウェイト値が設定されている個所だけ、ファーが折れているような表現が可能になります。
あとは球体を作って、先ほどと同様に、カーブに対してパスコンストレイントを設定しましょう。アニメーションしているチャンネルをコピペすれば、簡単に動きを複製することができます。これで球体の動きとあわせて、芝生がへこむような表現が簡単に実現できます。