1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Joint Capture Biharmonic [Mardini2024]

Last updated at Posted at 2024-07-27

これはMardini2024のDay19 Joint Capture Biharmonic の動画を視聴してまとめたものです。

動画

image.png

公式のサンプルファイル

Day18 APEX Scene Animate | Day19 Joint Capture Biharmonic | Day20 Ragdoll Solver SOP

Joint Capture Biharmonicノードは、ジオメトリにスケルトンを適用するためのSOPレベルのノード

Joint Capture Biharmonicのヘルプ

200R.gif

概要

  • 主な機能:
    • ジオメトリを四面体メッシュに変換
    • スケルトンに基づいてジオメトリにウェイトを割り当て
    • 変形を可能にし、体積を保持
  • 使用方法:
    1. ジオメトリとスケルトンを準備
    2. Joint Capture Biharmonicノードに接続
    3. Rig PoseとJoint Deformを使用して変形を適用
  • カスタマイズ:
    • 四面体メッシュの生成方法(Adaptive/Uniform/Exact/Embed)
    • リサンプリングによるスケルトンの解像度調整
    • Joint Capture Paintによるウェイトの手動調整
    • Blend Factorを使用した元のキャプチャとの混合
    • Scale Attributeによる四面体の解像度の局所的調整
  • 特徴:
    • プロシージャルな性質を持ち、スケルトンの変更に動的に対応
    • 柔軟な使用方法(例:ランダムなポイントを使用した変形)

ジオメトリとスケルトンの準備

Geometryを作成し、その中でJoint Capture Biharmonicノードを呼び出します。
3つの入力、レストジオメトリ、キャプチャポーズ、アニメーションポーズがあります。

image.png

一つずつ割り当てていきます。

レストジオメトリ

キャプチャウェイトを追加するジオメトリを作成します。

Lineを作成、50ポイント
Sweepを作成、 Round Tube、エンドキャップSinglePlygon追加、カラムを30増

image.png

キャプチャポーズとアニメーションポーズ(スケルトン)

スケルトンノードを作成します

image.png

ジョイントを追加しやすいようにビューポートに移動し、
Space+3を押してフロントビューポートに移動します。

Sweepの位置を確認しながらジョイントを作成していきます。
左上にSkeltonのショートカットボタンが出ていない場合は、Sleltonノードを有効にした状態でビューポート上でEnterを押してください。

image.png

Space+1でパースペクティブモードに戻り、
ジオメトリの中心にスケルトンがあることを確認します。

image.png

このノードをキャプチャポーズとアニメーションポーズにつなぎます。

image.png

Joint Capture Biharmonicの使用方法

接続すると、2つのものが生成されます。

image.png

左側はスケルトンから来る各ジョイントのキャプチャウェイトを示しています。
右側は、左側のメッシュのテトラヘドラライズ(四面体化)されたバージョンを示しています。

これをどのように使うのかというと、右側の出力からはRig Poseを中継、その他をJoint Deformに入れ込みます。

image.png

Rig Poseを選択してEnterを押し、ハンドルを選択して回転させます。

image.png

もう一度Joint Deformの結果を見てみましょう。

image.png

これがJoint Capture Biharmonicの効果です。
ジオメトリとスケルトンを適用することで、様々なジョイントを調整できます。

テトラヘドラル(四面体)メッシュの生成

その仕組みは、入力ジオメトリを取得し、
四面体メッシュに変換することです。

image.png

四面体メッシュとは、内部のストラットと内部のジオメトリが存在します。

image.png

これにより、体積を保持しながら変形が可能になります。
Joint Capture Biharmonicの設定を見てみましょう、これらは四面体メッシュを生成するためのものです。ほとんどの場合、Adaptiveのままにしておくことができますが、

image.png

多くの場合、Uniformに変更します。

image.png

Uniformは、これらの三角形のそれぞれが同じサイズになるようにします。

image.png

Adaptiveの場合、シャープなエッジがある場所では、より多くの三角形を作成しようとします。
これはこれで問題ないのですが、メッシュが複雑な場合は、その領域で速度が低下することがよくあります。
そのため、Uniformに切り替える必要があります。

Uniformの設定ではUniform Scale調整(四面体の最小サイズ)や最大サイズの設定が可能です。

image.png

その他の設定

image.png

Exactは、正確な三角形のサイズを与えてくれます。
Embedは入力ジオメトリにおおよそ一致させます。例えば平らなオブジェクト(Grid)などを四面体にする際に便利です。

リサンプリングとスケルトンの解像度

Ted MethodをAdaptiveに戻して、下の他のオプションを見てみましょう。

image.png

このリサンプリングは、入力されるスケルトンのためのものです。
これにより、入力されるスケルトンの解像度が上がり、各ジョイントのウェイトがより良くなります。

Joint Capture Paintによるウェイトの調整

Joint Capture Biharmonicを実行した後に、ジョイントのウェイトをどのように調整できるかを見ていきます。

図中の、ここにはソフトなBend(曲がり)があります。

image.png

これはJoint Capture Biharmonicから出てくるジョイントのウェイトに依存しています。
そこでウェイトの調整に利用するのがJoint Capture Paintノードです。

ここに差し込みます。

image.png

このノードでは、特定のジョイントをペイントすることができます。
Target Jointでpoint_0を選択するとその箇所のウェイトが表示されます。

image.png

point_1を選ぶと中央のエリアに最も影響を与えているウェイトが確認できます。

image.png

スムージングしている部分が、これらのソフトな曲がりの原因となっています。
ペイントして強いウェイト(赤色を増)にすると、Joint Deformに戻ったときに、より鋭い曲がり方になります。

image.png

Blend Factorによるキャプチャのブレンド

先程の手順で非常に鋭く曲がる結果となりました。
例えばそれが私たちの望むものではないとしましょう。
これを修正する手立てがあります。

ここでもう一度Joint Capture Biharmonicの出番です。

image.png

このノード内で最初のJoint Capture Biharmonicと同じ計算をやり直します。
しかし、実際にここで注目すべきはBlend Factorです。

image.png

このBlend Factorを使うと、既存のキャプチャと、このノードで生成されたキャプチャ、2つのウェイトを利用して好きなようにブレンドすることができます。

image.png

Scale Attributeによる四面体の解像度調整

Scale Attributeは入力ジオメトリのAttributeに基づいて、四面体の解像度を調整することができます。
Attribute Wrangleを追加し以下の内容を記述します。

image.png

@targetscale = v@P.y;

そしてJoint Capture BiharmonicにてScale Attributesを有効にすると、下は高解像度、上は低解像度になります。

image.png

このようにして、生成される四面体メッシュをさらに制御することができます。

プロシージャルな特性

Houdiniのリグシステムで素晴らしいのは、すべてがプロシージャルだということです。
スケルトンに戻って、(modifyで)途中にジョイントを追加しても、破綻せずに機能します。

image.png

※スケルトンの分割はShift + Ctrl + 左Clickです。
※うまく動作しない場合は、Blend Factorの値が上書きされている可能性があります

そのほかの変わった使い方

例えば、Rubber Toyを作成し、IsoOffset(SamplingDiv:100)→Scatter(TotalCount:10)→Skeltonをつなぎます。

image.png

Rig Poseを移動させるとランダムな変形に使用することができます。

image.png

つまりスケルトンをランダムなポイントで代用できます。
さらにこのポイントに対してAttribute Noiseを使うこともできます。

image.png

image.png

このようなとても奇妙な動きをつけることができます。

Move2.gif

サンプルファイル

ラバートイの例のようにサンプリングしたポイントをノイズアニメーションで適用し、スケルトン変換したサンプルです。

image.png

image.png

image.png

おまけ:シワの表現 Wrinkle

Houdini20.5でWrinkleDeformerが追加されました。
Joint Capture Biharmonicノードの後ろにつなげるだけで簡単にシワの表現をすることができます。
WrinkleDeformerノードの前にポリゴン数を増やすためのSubdivideノードを挟む必要があります。

image.png

200R.gif

ちょっと怖い

image.png

ホラー表現でも使えそうです

image.png

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?