Joint Capture Paintで混み合った場所を塗る場合

   1502   2   0
User Avatar
Member
40 posts
Joined: Jan. 2021
Offline

図のようにペイントしたい物の前に障害物が有る場合、上流のVisibility SOPで非表示にしようと思ったのですが、Visibility SOPで変更した内容がJoint Capture Paint SOPで直ちに反映されません。
Copy Inputボタンを押せば反映されるのですが、Joint Capture Paint SOPの上でJoint Capture Biharmonic等でウェイトを付けていた場合、その値に塗り変わってしまうので使えません。
障害物の表示/非表示はどの様に切り替えるのが良いでしょうか?


障害物をVisibility SOPで非表示にしてからJoint Capture Paint SOPを置いた場合でも、障害物に隠れていた部分はペイントの感度が悪くて上手く塗れませんでした。
ブラシをかなり大きくすると塗れる場合も有りますが、どうしても塗れない箇所が残る場合も有ります。


Visibility SOPの内容を変更した後にLabs Reset Viewportを使えば変更が反映されるかとも思いましたが、変更は反映されずブラシサイズ変更やTarget Jointを変更したりするとPython Callback Errorが4回出ます。

Windows 10
Houdini 19.5.569 Py3.9
nVidiaドライバのバージョン 531.61

Attachments:
JtCapPaint01.jpg (1.8 MB)
JtCapPaint02.jpg (2.0 MB)
JtCapPaint03.jpg (1.8 MB)
JtCapPaint.hiplc.zip (32.6 KB)

User Avatar
Staff
20 posts
Joined: Feb. 2022
Offline
Advanced の下に、Output Visualization Geometry と Paint on Displayed Node の二つがあるので、チェックを入れます。その下に Visibility をつないで任意の箇所を非表示にします。Visibility の Display Flag をオンにした状態で Joint Capture Paint を選択すると一部非表示にした状態でペイントできます。ただし、ヘルプによるとペイントが重くなるかもしれないとのことです。
Paint on Displayed Node は Attribute Paint などにもみられる項目です。boneCapture アトリビュートは少し特殊な型なので、視覚化のオプションがついています。

Split を使って個別にペイントしてもよいです。ノードを削除すればパーツごとに簡単にリセットできるので、こちらの方が管理しやすいかもしれません。


boneCapture は自動で計算されることと手動でペイントするほかに、独自の処理をもって加工することもできます。二つのウェイトをブレンドしたり、特定のボーンに対するウェイトのみを操作したりといったことです。
例えば、Joint Capture Biharmonic 等で計算したウェイトと手動でペイントしたウェイトとを別で用意して、あとからそれぞれの場所でどのようにブレンドするかコントロールすることなどが可能です。
詳しくは添付する hip ファイルをご覧ください。

Attachments:
BoneCapturePaint.hip (1.1 MB)

User Avatar
Member
40 posts
Joined: Jan. 2021
Offline
さつき先生、コメントありがとうございます。

頂いたhipで試しておりますが上手く行きません。
obj/geo1/visibility2のDisplay Flag をオンにした状態でobj/geo1/jointcapturepaint1でペイントをすると次のエラーが出ます。

Error
Invalid source /obj/geo1/jointcapturepaint1/capturepaintcore
Error: Skin topology has changed. Please restash..
Warning
Skin topology has changed. Please restash.

Spilitで分割してペイントする方法の場合は、ジオメトリのポイント番号が変わってしまうのが厄介なのですが、その場合はSplitする前のジオメトリにアトリビュートを転送するという事でしょうか?

Houdiniのバージョンは19.5.605 Py3.9です。
  • Quick Links