0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

[Houdini]PDGの備忘録

0
Last updated at Posted at 2026-04-08

{
4/10追加 :[Geometory Importの詳細、アトリビュートについて]
4/19追加 :[Wedge : (Switch SOPと連携し、Work ItemでInputを切り替え)]
}

はじめに

ForeachノードでグループごとにFBXやテクスチャの書き出しをしようとすると結構大変でした。
そんなときはPDGを使うと簡単、らしいので調べながら使ってます。

そんなわけで調べてわかったことを書き溜めていきます。
躓いたら書き足していきます。

Geometory Import

最初に使ったのがコレです
image.png

検証ノードネットワーク

SOP

Voronoi Fracture で分けたname の Pieceを
Groups From NameでGroupに更に分けています
こうすることでGeometry ImportはGroup毎をタスクとして認識します

image.png

TOP

Geometry Importの Geometry SourceをSOP Nodeに変更しSOP Pathを
明示しておいたNullにしています

image.png

ハマりどころ

FBX書き出し

症状:グループ毎に書き出しができない

image.png

ROP FBX OutputをつないでOutput Fileを

$HIP/fbx/out`@pdg_index`.fbx

このようにすればGroup毎にバラバラに出ると思いましたが
そうではない


image.png

Output Size同じになっていてGroup毎にバラバラに出力してくれてはいないです

処方箋 Group毎にバラバラにしてから出力する

image.png


BlastのGroupのパラメーターに

`@groupname`

こう書いてグループ毎にバラバラの状態を ROP FBX Outputに伝えてあげると
ちゃんとグループ毎にFBXが書き出されます

原因

Geometry ImportのWork ItemsがGroup毎にあっても
それは別々のジオメトリそのものではなく、あくまでTaskのIndex情報なので
ジオメトリはちゃんとバラバラにしておく

pdg_indexとグループ名が一致しない

image.png

groupname piece20がpdg_index 0に来ています

処方箋 Create Work item for : Each Piece Attribute Valueにする

image.png

piece valueがpdg_indexと一致しました

Piece Attribute Value とは?

ここではVoronoi Fractureで作ったnameアトリビュートです


BlastのGroupのパラメーターに

`@piecevalue`

image.png

これでGroup名とpdg_indexが一致しています

原因  Create Work item for : All Groups はインデックスを考慮しない

多分・・・
インデックスを気にするときは Each Piece Attribute Valueにしましょう

アトリビュートについて

`@piecevalue`
`@groupname`

など、こういうものはWork item infoを見ればわかるので覚える必要はないと思います

image.png

ただし、以下の3つはWork item infoには出てないので、PDGを使う際は覚えた方がよいと思います

  1. @pdg_index
    タスクの「通し番号」です。
    役割: 並列処理される各タスク(仕事の粒)に割り振られる 0 から始まるインデックス番号です。
    使い道: ファイル名に test_@pdg_index.bgeo.sc のように入れて、出力ファイルが上書きされないように区別したり、特定の番号のタスクだけ処理を変えたりするのに使います。
  2. @pdg_input
    そのタスクに入力される「ファイルパス」です。
    役割: 前の工程(ノード)から渡されてきたデータの場所を指します。
    使い道: 例えば「モデルを読み込んでベイクする」というタスクなら、読み込むべきモデルのパスがここに入っています。
  3. @pdg_output
    そのタスクが「出力したファイルパス」です。
    役割: そのノードでの処理が終わった後に生成されたデータの場所を指します。
    使い道: 次のノード(後続タスク)はこの @pdg_output を自分の @pdg_input として受け取ります。

HoudiniのPDGを「工場のライン」だとすると:
@pdg_index: ベルトコンベアに乗っている商品の「整理番号」
@pdg_input: 加工前の「材料」が置いてある場所
@pdg_output: 加工が終わった「製品」を置いた場所
これらを使うことで、大量のボックスを一度に破砕して連番ファイルで保存する、といった作業を自動化できます。

Wedge

Switch SOPと連携し、Work ItemでInputを切り替え

Work Itemを変えるたびに表示を切り替える仕組みのためには、以下の2つを行う

タイトルなし-2026-03-16 03 23 32(copy)-2026-03-29 19 30 32(copy)-2026-04-02 08 46 21(copy)-2026-04-08 07 14 39(copy)-2026-04-12 13 32 37(copy)-1.gif

Wedge Countの取得

image.png

opninputs("/obj/Props_BaseMesh/switch1/")

Switch SOPのSelect Inputと Wedge Indexを一致させる

image.png

@wedgeindex
0
0
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
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?