On this page |
このノードは、APEXリグの自動生成によって、ヘアーのアニメーション工程を高速化および簡素化することを目的にしています。
この考え方としては、数本のマスターヘアーカーブをカスタム選択し、アニメーション可能なジョイントをAPEX Add Groom SOPで作成できるようにすることです。
そうすれば、残りのヘアーカーブはそのマスター選択に追従するようになります。
以下の例では、APEX Add Groom SOPを基本的なグルームと組み合わせて使用する方法を説明しています。
シーンのセットアップ ¶
このノードを動作させるのに必要なものは、リグ付きキャラクタとグルームです。
以下では、HoudiniのTest Geometry: Capybara SOPの頭にコントロールの一部と、APEX Add Groom SOPによってアニメーションさせることとなるモヒカンがあるのが確認できます。
このリグでは、既に
APEX Autorig Component SOPsを使用して、そのリグをセットアップし、ボーンを変形させています。
どちらびパーツにもNull SOPがあり、それぞれ
RIG
、GROOM
という名前が付けられています。
これらのNull SOPには、Add Groom SOPで必要な情報が格納されています。
もちろん、これら2つのパーツは別々のGeometry OBJで存在していても良くて、私どもはより複雑なセットアップができるように、そのワークフローを推奨しています。
Add Groomネットワークでは、Object Merge SOPによって
RIG
とGROOM
を取り込む必要があります。
別の方法としては、適切なBGEOファイルが指されたFile Cache SOPによってリグとグルームを取り込んでも構いません。
APEX Add Groom ¶
これで、APEX Add Groom SOPに接続するのに必要なものがすべて揃いました。
-
APEX Add Groom SOPを追加します。
-
その 1番目 の入力には、
RIG
Object Merge SOPの出力を接続します。 -
その 2番目 の入力には、
GROOM
Object Merge SOPの出力を接続します。
その 3番目 の入力は、フェザーに大きく関係します。 ここでは、フェザーは、数百本もの個別の羽枝(Barb)を持つ高解像度ジオメトリとしてではなく、ポリゴンサーフェスとして表示させることが多いです。 これら2つのストリームを接続すると、その設定を開始することができます。
デフォルトでは、Add Groom SOPは、ヘアーをアニメーションキャラクタのスキンに拘束します。 例えば、キャラクタの頭を動かすと、ヘアーがこの動きに追従します。
Groomセクション ¶
Groom セクションに Short Curve Mode が見つかります。 それを Cull に設定すると、 Length Threshold を定義することができます。 指定した値より短いすべてのカーブは、(例えば、非常に短いカーブがある領域で)Add Groom SOPの影響を受けなくなります。 これによって、パフォーマンスを大幅に改善することができます。
私どもは、 Output Surfaces を無効にすることも推奨しています。 このオプションは、フェザーでのみ必須です。
Jointsセクション ¶
このセクションでは、いわゆるコントロールグループを作成することができます。 コントロールグループは、基本的にはヘアーカーブの選択です。 この選択に基づいて、Add Groom SOPがジョイントを作成し、それらのジョイントをAPEXリグに追加します。 同一ノード上で複数のグループを定義することができますが、たいていの場合、結局のところグループ毎に1個のAdd Groom SOPを追加することになるでしょう。 通常では、これは、様々なグループやマスクをもっと上手く制御できるようにしたいという実用的な理由で用意されています。
-
Name Prefix 接頭辞はデフォルトで
feathers_
に設定されているように、このノードの素性を示します。これをhair_
など他の名前に変更することができます。これらの新しいジョイントは、ビューポート内の Selection Sets リストに表示されます。 -
デフォルトでは、 Skin Vector Attribute は、キャラクタのスキンの法線の
N
を受け取ってジョイントの向きを決めます。 -
Control Groups では、複数のグループを指定して、それらのグループを個別に扱うことができます。グループの数を直接入力するか、または、 + ボタンを押して新しいグループを追加します。新しいグループを作成すると、 Joint Properties パラメータセットが表示されます。
Joint Propertiesタブ ¶
最初の手順は、アニメーションに使用したいカーブを選択します。
既にグループを定義していた場合(例えば、グルームネットワーク内の別の場所でAttribute Wrangle SOPを使用したり、手動でカーブを選択することでグループを定義していた場合)、
Joints ▸ Group パラメータの入力フィールドにそのグループ名を入力することができます。
別の方法としては、以下で説明しているように、ビューポートから直接カーブを選択することができます。
-
Select geometry… ボタンをクリックします。
-
ビューポート上で、ジョイントの作成に使用したいカーブを⇧ Shift +
クリックします。選択したカーブは茶色がかった黄色で表示されます(下図を参照)。
-
準備ができたら、Enterを押して選択を確定します。この工程を中止したいのであれば ⎋ Escを押します。
選択したカーブの番号は Group パラメータの入力フィールドに表示され、それらの番号を手動で編集することができます。 また、新しく作成されたジョイントは、 Root Color から Tip Color に変化するカラーで表示されます。 他に便利なパラメータは Width です。これは、ジョイントのビューポート表現のサイズを決めます。
ジョイントの数を変更したい場合は、 Joint Count を増減させます。 長いカーブの場合には、特にヒーローショットで高い値を使用すると良いでしょう。 短いカーブの場合には、ジョイント数を多くするメリットはないでしょう。
Moving joints ¶
これで、ジョイントの移動を開始できるようになりました。それをするには、Add Groom SOPを選択します。
-
マウスをビューポート上に移動させます。
-
Enterを押すとリグが表示されます。また、ビューポートの左上コーナーにHUDがあるのに気づくことでしょう。
-
ジョイントを選択して、そのジョイントを回転させます。アニメーションモードを抜けたいのであれば、 ⎋ Escを押します。
このノードは、ウェイトを計算して、近隣カーブがどれほど強くジョイントに追従するのかを定義します。 これによって、カーブ間でゆっくりとフェードアウトする滑らかな遷移が得られます。 以下の動画は、そのカーブの動きを示しています。
Orientation ¶
Add Groom SOPの Control Groups マルチパラメータには、 Orient to Skin Vector Attribute トグルが用意されています。
このトグルを有効にすると、このノードは、 Skin Vector Attribute で指定されたアトリビュートのみを使用するようになります。
デフォルトでは、そこにはスキン法線のN
が指定されています。
このトグルを無効にすると、orient
が使用されます。
何も方向系のアトリビュートが使用されていない場合では、このノードは、スキンベクトルアトリビュートを生成します。
Joint Influenceセクション ¶
それでもジョイントの影響力が強すぎるとお考えでしたら、その影響範囲を制限することを検討してください。
Mask Attribute は、ジョイントが影響を与えるカーブを制御します。 マスクアトリビュートは、事前に存在している必要があり、通常では、APEX Add Groom SOPに入る時に既にグルーム上に存在しています。
アトリビュートの代わりに、 Limit Influence Distance を使用することで、静的なままにしておきたい領域ではカーブが移動しないようにすることもできます。 Core Distance と Maximum Distance はフォールオフを生成します。 以下に、その比較を載せています。 制限効果がない場合、他のジョイントの影響下にあるフェザーまでもが移動しています。


Mask Attribute と Limit Influence Distance は共存可能で、これらの値は乗算されます。つまり、両方のプロパティが適用されている領域でのみカーブが移動します。
APEXのセットアップ ¶
既にAPEXノードで作業しているので、このテクノロジを進めて、それに応じてセットアップを準備する必要があります。
Note
HoudiniのAPEXテクノロジー全体がまだ開発中です。機能と特徴は変更される可能性があります。
-
APEX Scene Animate SOPを追加し、その入力をAdd Characterノードの出力に接続します。このノードは、これまで作成したアニメーションセットアップを操作する場所なので必須です。
-
APEX Scene Invoke SOPを配置し、その 1番目 の入力をそのAPEX Scene Animate SOPの出力に接続します。このノードは、アニメーションするフェザーの実際の動きを表示します。
-
Bind Multiple Outputs を有効にして、 Output All Character Shapes ボタンをクリックします。この例では、このボタンは、 Multiple Outputs セクション内に2個のエントリを作成します。パスとキーのペアは、どの部分のアニメーションを使用するのかを定義します。 このボタンをクリックすると、利用可能な出力のリストからすべての適切なエントリが選択されます。 Geometry Spreadsheetペインで、特定のノードのすべてのエントリを確認することができます。 この場合では、関連するエントリは
Base.shp
とGroom.shp
のみです。Groom.skel
やBase.rig
などの他のエントリはヘアーでは不要です。