Houdini 20.0 Feathers(羽根)

ガイド処理とノイズ

On this page

経験豊富なグルーミングアーティストであれば、汎用性の高いGuide Process SOPを既にご存知でしょう。 通常、このノードのいずれのオペレーションもフェザーに適用可能です。 しかし、一部のツールは、ヘアーやファーと組み合わせて使用する方が合理的です。 また、フェザーに特化し、固有の Feather Barbs モードを提供するツールも2つあります(以下参照)。 これらのツールを使用すると、フェザー左右の羽弁(うべん:Vane)を区別することができます。

オペレータの効果を特定の領域に限定したいのであれば、マスクを適用すると良いでしょう。

Guide Process SOPのもう1つのメリットは、複数のオペレーションを“スタック”(積み重ねる)することができる点です。 例えば、1つのノードを介して、縮れや羽枝(うし:Barb)の長さを調整できます。 Solo チェックボックスは、一時的に他のオペレータをオフにすることで、特定のオペレータの結果を分析するのに役立ちます。 また、オペレーション毎に異なるマスクを適用したい場合などには、複数のノードをチェーン接続することもできます。

Tabメニューには、いくつかの事前に設定したツールがあります。 ネットワークエディタ上で⇥ Tabを押し、メニューを開きます。 検索フィールドにguide processと入力すると、利用可能なすべてのツールが表示されます。

Note

次の手順は、フェザーを描画するおよびフェザーのクランプ(束)のページのセットアップをベースにしています。 以下は、フェザーを描画し、クランプ(束)を追加するのに使用されるネットワークです。

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

Set Length

リファレンス画像をよく見ると、右の羽弁(Vane)の羽枝(Barb)は同じ長さで、エッジはハードなのが分かります。 一方、左の羽弁(Vane)では、羽枝(Barb)の長さにわずかな違いがあります。

  1. Tabメニューから Guide Process: Set Length ツールを追加します。ガイドノードの 1番目 の入力を上流のFeather Clump SOP1番目 の出力に接続します。

  2. Operation タブで、2つ目のドロップダウンメニューに移動し、 Feather Barbs を選択します。

  3. Left および Right ボタンがあります。この例では、 Left の羽枝(Barb)のみを変更する必要があります。

  4. Randomize をオンにすると、 Min Length および Max Length パラメータにアクセスできるようになります。スライダを使用して、ビューポートでインタラクティブにその値を調整します。

右の画像は、 Min Length0.045Max Length0.057に設定した場合の結果です。 左の画像では、フェザーの先端の羽枝(Barb)が強くカーブしており、長すぎることが分かります。 あまり大げさにならないようにするには、 Operations ▸ Blend を下げます。 0.7にすると、羽枝(Barb)の曲率は改善しますが、まだリファレンス画像のようにはなりません。 これを修正するには、先端の周りにマスクを追加します。

マスキング

Note

この章は、Guide Process SOPのすべてのマスキング作業で参考になります。

マスクは、オブジェクトの特定の領域が変更されないように保護します。 Guide Process SOPにはいくつかの方法が用意されており、ノードの Masking タブで確認できます。 1つを選択する必要はなく、複数のオプションを組み合わせることも可能です。

ジオメトリのマスキング

フェザーのクランプ(束)をお読みになった方は、ジオメトリマスクの作成方法を既にご存知でしょう。 既存のマスクを再利用することも可能ですが、ここでは、新しいオブジェクトを先端の周囲に追加していきます。

  1. Sphere SOPBox SOPなどを使用してジオメトリを追加し、そのノードの名前をsetlengthmask_geoに変更します。

  2. Center を使用して、マスクしたい領域にオブジェクトを移動します。

  3. オブジェクトのタイプに応じて、 RadiusSizeUniform Scale パラメータを使用してマスクのサイズを定義します。

  4. Guide Mask SOPを追加し、その名前をsetlengthmask_guideに変更します。

  5. その新しいノードをFeather Template from ShapeとGuide Process SOPの間に配置して、その 1番目 の入力に接続します。 4番目 の入力は、マスクジオメトリの出力に接続します。

    ネットワークにFeather Clump SOPが既にある場合は、Guide Mask SOPをそのFeather Clump SOPとGuide Process SOPの間に配置します。

  6. Guide Maskノードの General タブで、 Output セクションに移動します。 Output Type ドロップダウンから Point を選択します。

  7. Output Attributesetlengthmaskに変更します。

  8. Additional Masks タブを開き、 Use Geometry Mask をオンにしてマスクオブジェクトを接続します。

また、マスクを改善したりカスタマイズするための便利な設定もいくつかあります。

  • 期待通りの結果が得られない場合は、 Voxel Size を小さくして、マスクの解像度を上げてみてください。

  • マスクを反転するには、 Presets メニューに移動して Outside を選択します。

  • Depth Ramp で、マスクの柔らかさまたはフォールオフ(減衰)を制御します。

ジオメトリマスクをアクティブ化する

Guide Process SOPでマスクをアクティブ化して、マスクが動作するようにしてください。

  1. setlengthmask_guideノードの出力をGuide Process SOPの 1番目 の入力に接続します。

  2. ガイド処理ノードの Masking セクションで、 Blend パラメータのドロップダウンを No Override から Guide Attribute に設定します。

  3. Blend Attrib のデフォルトのエントリをsetlengthmaskに変更します。

球のマスクを使用した場合の結果の一例です。マスクの中心はフェザーの先端周辺です。左の図では、先端付近の羽枝(Barb)がまたリアルに見えているのが分かります。

Curve Mask

Curve Mask を使用しても、フェザーの先端の長い羽枝(Barb)を修正することができます。

  1. Guide Process SOPを選択し、 Masking タブを開きます。

  2. Use Curve Mask をオンにして、いくつかのパラメータをロック解除します。最も顕著な要素は Curve Mask Ramp です。

    このカーブは、基本的にグラデーションです。 羽枝(Barb)を見ると、羽軸(うじく:Shaft)の根元に近い羽枝(Barb)は Set Length の影響を受けなくなっていることが分かります。

  3. Reverse Domain ボタンをクリックし、ランプを反転します。先端付近の羽枝(Barb)が、元の長さに戻ります。

  4. ランプのスライダを使用して、ニーズに合わせてマスクを調整します。または、 Presets ボタンをクリックして、この例のように Hill に似たカーブを選択します。

以下の画像はカーブマスクの結果で、上の画像では使用したランプを確認できます。

Noise Mask

Noise Maskは、Guide Process SOPの最後のマスキングオプションです。 Set Length オペレーションには、ノイズマスクは最適な選択ではないかもしれませんが、様々な設定を試すことができます。 Attribute Noise SOPなどの別のノードを介してノイズを作成したい場合は、noisemaskなどのアトリビュートを作成しても構いません。

  1. アトリビュートを使用するには、Guide Process SOPを選択し、 Masking ▸ Noise Mask ▸ Amount に移動します。パラメータのドロップダウンを No Override から Guide Attribute に変更します。

  2. Amount Attribnoisemaskに変更します。

Bend

Bend オペレーションは、左右の羽枝(Barb)に利用できるもう1つのツールです。 このモードは、フェザーの先端や下部など、指定した Direction に羽枝(Barb)を押し出したり、羽枝(Barb)を曲げてU字型のフェザープロファイルを作成します。 この例では、フェザーの下部付近のみ羽枝(Barb)の方向を変更しています。 また、リファレンス画像を見ると、左右の羽弁(Vane)で羽枝(Barb)の形状が異なっていることも分かります。

  1. TabメニューからProcess Guide (Bend)ツールを選択し、そのノードの 1番目 の入力を前の上流のノードの 1番目 の出力に接続します。ここまでのワークフローの手順を実行していれば、最後のノードもProcess Guide SOPです。

  2. Operations タブで、 CurvesFeather Barbs に変更します。

  3. Right ボタンをクリックしてオフにします。

  4. Mode ドロップダウンから Direction Constant を選択します。

    Direction パラメータでは軸を定義することができ、デフォルトのベクトル0,0,-1は羽枝(Barb)を先端の方に押し出します。 現在、左の羽弁(Vane)のすべてのフェザーが影響を受けているため、もう1つマスクが必要です。 マスクを追加する手順は、上記のマスキングの章で説明したものと同じです。 ここでは、おそらくジオメトリマスクを使うことになるでしょう。 このマスクの Output Attributebendmaskleftですが、他の名前を使用しても構いません。

    また、非常に小さいオブジェクトになる可能性もあります。 その場合は、Guide Mask SOPの Additional Masks ▸ Geometry Mask ▸ Voxel Size を下げる必要があります。 そうすれば、マスクを必要な領域に制限するのに十分な解像度が得られます。0.005から0.01`の間の値でうまくいくはずです。

  5. 新しいマスクを作成したら、 Angle および Random Angle を調整して、羽枝(Barb)を動かします。

  6. マスクオブジェクトの位置とスケールも必要に応じて変更します。

右の羽枝(Barb)の下部付近には、マスクオブジェクトを含むGuide Mask SOPがもう1つ必要です。 羽枝(Barb)を形成する手順は、この章で説明したものと同じです。左の羽枝(Barb)のノードをコピーし、それらを出発点として使用できます。 Output Attributebendmaskrightに設定するのを忘れないようにしてださい。最終結果は以下のようになります。

Frizz

Frizz オペレーション(およびガイド処理ノードの残りのモード)は、羽枝(Barb)ではなくカーブでのみ機能します。 つまり、オペレータは羽軸(Shaft)のポイントを変更して羽枝(Barb)を変位させます。

Note

羽枝(Barb)に縮れを追加したい場合は、フェザー全体をカープポイントを含む実際のジオメトリに変換しなければなりません。 これはUncondensed(具現化)にする変換プロセスであり、フェザーを羽軸(Shaft)と左右の羽枝(Barb)に分割したり、 適切なSOPノードを通して羽枝(Barb)のカーブを操作するなど、様々な可能性を開いてくれます。

このフェザーには Frizz は必要ありませんが、オペレーションを試してその効果を確認してみましょう。

  1. TabメニューからGuide Process (Frizz)ツールを選択し、そのノードの 1番目 の入力を最後の上流のノードの 1番目 の出力に接続します。

  2. Frequency を上げ、 Amplitude を下げます。クランプ(束)が増え、その間には乱れた羽枝(Barb)ができます。羽枝(Barb)の中点も変位されるため、羽軸(Shaft)のポイントは元のカーブともう一致していません。

  3. 均一なルックを避けたい場合は、 Random FrequencyRandom Amplitude を変更します。

もちろん、もう一度ノードにマスクを適用することも可能です。

ノイズ

ノイズを使用すると、フェザーを非常に効果的にランダム化することができます。 Feather Noise SOPは、3次元のノイズ関数を使用して、より有機的なルックを作成します。 ノイズは、フェザーのtangentbitangentnormalベクトル( TBN行列 )に沿って適用されます。 ノードが一般的なXYZ表記を使用しないことに混乱するかもしれません。 TBN行列を使用するのは、ノイズベースのトランスフォーメーションはフェザーのグローバルな向きから独立していなければならないからです。 TBNベクトルは方向を持ち、各羽軸(Shaft)のポイントにローカルXYZシステムを用いますが、このシステムは必ずしもグローバルなXYZ方向と一致しません。

  • フェザーを平面と考えると、normalはこの平面の法線となります。フェザーはHoudiniのXZ空間に描画する必要があるため、normalはY軸に相当します。

  • tangentは、羽軸(Shaft)に沿ったトランスフォーメーションを定義します。

  • bitangentは、羽枝(Barb)に沿ったトランスフォーメーションを定義します。

  • ノードの3つの Amplitude パラメータを使用して、各ベクトルに沿ったノイズ/変位の強さを制御することができます。

以下の画像は、この概念を表したものです。

Feather Noise SOPは、 Condensed(縮約化) フェザーを使用した場合にのみ機能します。 左右の羽枝(Barb)を区別することはできませんが、羽枝(Barb)と羽軸(Shaft)のノイズ周波数を個別に制御することが可能です。 以下の画像では、次のような値が使用されています。

  1. Amplitude0.001に設定します。これは、ベクトル振幅のグローバル乗数です。

  2. Amplitude Normal および Amplitude Tangent は必要ないので、0に設定します。

  3. の羽弁(Vane)の下半分に小さい波紋を作成するために、 Shaft Frequency150に上げます。

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

フェザーアトラス

Guide Process SOPは、単一のフェザーとのみ機能するわけではありません。 複数のフェザーを結合して、そのグループ全体にノードを適用することもできます。 この方法では、単一のノードを使用して素早く効率的に大規模なフェザーセットをランダム化することができます。

Feathers(羽根)

基本セットアップ

描画とシェイピング

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

シミュレーション

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

ツール

動画