On this page

フェザーのばら撒きおよびフェザーを適用するのページでは、フェザーを追加する2つの基本的な方法(ばら撒きと、描画して植え付け)を学びました。 描画の良い点は、何百、何千という個々のフェザーは必要なく、いわゆるガイドがいくつかあれば済むところです。 ガイド間のフェザーは、後で特別なノードを使用して補間されます。 そのプロセスの概要は、既にここで説明しています。

ガイドは、Guide Groom SOPを使用して作成されます。 Draw ツールは、文字通りキャラクタのサーフェスからフェザーを“引き”出します。 また、ガイドをミラー化すれば、ワークフローをさらに高速化できます。

このページは、フェザーを適用するページの続きであり、以下はそのネットワークです。 フェザーは別のコンテナ(/obj/atlas/ATLAS)に格納されています。

画像をクリックすると拡大します。

以下は、これ以降で使用するガイドで、前に使用したものと同じです。ご覧の通り、ガイドの長さや方向は様々です。

Hair Generate SOP

Houdiniのヘアーとファーのグルーミングに慣れている方であれば、ここで説明するワークフローの多くに見覚えがあるでしょう。 多くの場合、方法がよく似ていたり、同じノードを使用していたりします。 それらのノードの1つがHair Generate SOPです。 このノードはサーフェスにヘアーをばら撒いたり、ポイントからヘアーを作成します。 そのヘアーを使用して、フェザーを適用します。

  1. 上記の最初の画像に示すネットワークにHair Generate SOPを追加し、青の Display/Render フラグをオンにします。

  2. Hair Generate SOPを以下のように接続します。

    • 1番目 の入力をGuide Groom SOPの 2番目 の出力に( SkinRest Skin )

    • 2番目 の入力をGuide Groom SOPの 1番目 の出力に( GuidesGuides )

  3. Attributes & Appearance タブを開き、 Guide Attribute Transfer まで下にスクロールします。 Point Attributes パラメータに、barborientと入力します。このアトリビュートは、インスタンスをガイドに揃えるのに必要です。

調整を始めて結果を表示する前に、もう1つノードが必要です。すぐ下の章に進んでください。

Guide Interpolation Mesh

このノードは、guidesweightsアトリビュートをペアで追加することで、ガイドを補間するのに必要となる、特別な種類の低解像度メッシュを生成します。

  1. Guide Interpolation Mesh SOPをネットワークに追加します。

  2. Guide Interpolation SOPを以下のように接続します。

    • 1番目 の入力をGuide Groom SOPの 1番目 の出力に( GuidesGuides )

    • 2番目 の入力をGuide Groom SOPの 2番目 の出力に( SkinSkin )

    • 出力をHair Generate SOPの 5番目 の入力に( OutputHair Interpolation Mesh )

通常はガイドメッシュノードのデフォルト設定のまま進めることができますが、ガイドメッシュのジオメトリを微調整または変更したい場合は、 Mesh セクションに移動します。 そこでは、例えば、 Iterations パラメータを使用してメッシュの品質を調整することができます。 値を高くすると、ポリゴン数が減少します。 Remesh をオフにすると、ノードはキャラクタの元の解像度を使用します(左の画像)。

補間設定

Hair Generate SOPで最終設定を行なって、密集したふわふわの“ファー”を作成する準備が整いました。

  1. General タブで、 Guide Weights セクションに移動します。

  2. Compute Weights Using Skin Coordinates をオンにします。このアトリビュートは、補間メッシュからweightsアトリビュートを読み込みます。これはフェザーを均等に分布させるアトリビュートです。以下は、このオプションを オフオン にした場合のプレビューです。

  3. Use Interpolation Mesh をオンにして、キャラクタの低解像度バージョンを使用します。

  4. Skin Guide Mode ドロップダウンで、 Weight Array Pair (guides & weights) を選択します。このオプションは、guidesおよびweightsアトリビュートを組み合わせて、ヘアーを補間します。これで、ヘアーがガイドに追従します。また、ヘアーは様々な長さや方向になっています。

  5. ノードによって、フェザーガイドのない領域にヘアーが追加されている場合もあります。これらのフェザーを削除するには、 Unguided Hairs に移動し、 Grow Unguided Hair をオフにします。

  6. 補間されるフェザーの数を変更するには、 Distribution セクションにスクロールし、 Density を変更します。値が高いと、ヘアー/フェザーの数が増えます。

フェザージオメトリを取得する

前述のように、フェザーとグルームは別々のGeometry OBJs内にあります。 このように分けることは必須ではなく、すべてを1つのジオメトリコンテキストに収めても構いません。 しかし、20、30、またはそれ以上のフェザーを含むテンプレートの場合、混乱状態に陥りやすくなります。

  1. Object Merge SOPを現在のネットワークに追加します。

  2. Object1 に移動し、 Open floating operator chooser ボタンをクリックします。シーンツリーを含むフローティングパネルが表示されます。フェザージオメトリを含むネットワークを終了する、Null SOPに移動します。この例では、パスは/obj/feathers/ATLASです。

既にGuide Process SOP内でATLAS Nullに接続して、bodyおよびdownテンプレートを選択してあります。 しかしこの手順では、ATLASを別のノードに接続する必要があります。 そのため、フェザーを“再インポート”しなくてはなりません。

Feather Template Interpolate

3つ目の最後のノードですべてがまとまり、最終的にキャラクタの元のジオメトリ上にフェザーが作成されます。

  1. Feather Template Interpolate SOPを追加します。

  2. Feather Template Interpolate SOPを以下のように接続します。

    • 1番目 の入力をHair Generate SOPの 1番目 の出力に( FeathersHair Curves )

    • 2番目 の入力をHair Generate SOPの 2番目 の出力に( SkinSkin )

    • 4番目 の入力をObject Merge SOPの出力に( Feather TemplatesOutput )

デフォルトの設定と値では、結果は以下の画像のようになります。 ノードは、templatenamestemplateweightsbarborientアトリビュートを使用して、フェザーの形状を補間します。

フェザーの交差を回避する

結果をよく見ると、多くのフェザーが交差していることが分かります。 しかし実際の鳥の羽根は、重なり合った屋根板のように配置されています。 Feather Deintersect SOPを使用すれば、フェザーを離して交差を回避することができます。 フェザーの交差回避はGPUアクセラレーションに対応していますが、フェザーが大量で低性能のGPUの場合は、処理が遅くなる可能性があります。

以下がネットワーク全体です。

画像をクリックすると拡大します。
  1. Feather Visualize SOPを追加し、その3つの入力をFeather Template Interpolate SOPの3つの出力に接続します。

  2. このノードを使用して、ビューポートでフェザーがどのように表現されるか定義できます。 Barb Mode ドロップダウンメニューから、 Surface を選択してフェザーのポリゴンバージョンを作成します。

  3. また、Color SOPも配置できます。このノードは必須でなく、上のネットワークグラフでは追加していません。Color SOPを使用してフェザーにランダムな色を適用すると、交差を特定しやすくなります。ノードの入力をFeather Visualize SOPの 1番目 の出力に接続します。

  4. フェザーオブジェクトを着色したいので、 Class ドロップダウンから Primitive を選択します。

  5. Color Type を __Random_ に設定します。

  6. Feather Deintersect SOPを配置し、 1番目 の入力をColor SOPの出力に接続します。 2番目3番目 の入力は、Feather Visualize SOPの適切な出力に接続します。

    まずはFeather Deintersectノードのデフォルト設定のまま、その設定で十分かどうかを確認します。 フェザーの交差回避をするのに最も効果的なパラメータは Feather Geometry ▸ Thickness で、ここでフェザーのボリュームを制御することができます。 値を高くすると分離効果が強くなり、よりふわふわした印象になります。

    またこのノードは羽軸(Shaft)と羽枝(Barb)をリサンプルするため、結果が向上することがあります。 Iterations を使用して、交差回避処理の品質を制御します。 高く設定するほど結果は向上しますが、パフォーマンスの低下につながります。

以下は、交差回避処理の前後のフェザーを比較したものです。

Feathers(羽根)

基本セットアップ

描画とシェイピング

ブラッシングとグルーミング

シミュレーション

テクスチャとレンダリング

ツール

動画