HOME

PDGでjsonの保存

Houdiniで解析などを行った結果を Top/ json output で保存を検討する

環境

Houdini Indie 20.5.410

json output ノード

PDGで解析などを行った結果をjsonとして保存したいとする。
topには json output ノードがあり、これを使うとTOPのアトリビュートとして持たせた値を保存することができる。

モーションFBXを複数読み込む構造を作成した時のデータを試しに出力してみる。

PDGの終端などにこのノードを接続し、Cookが走ったタイミングで出力される。

この時、複数のデータをまとめて出力したい場合は Wait For AllなどでワークをパーティションにまとめてWrite Partition Contentstにチェックを入れるとすべてのワークの持つアトリビュートが出力できる。

必要なアトリビュートをワークに持たせたらWaitForAllとJsonOutputを接続

Skip Default Valueにもチェックを入れておくと値の抽出時には不要そうなデータも幾分か消してくれる。

Skip Default Valueで消える値の例

問題点

以下を見ていただくと判るがSkipDefaultValueを消しても結構な量の不要なデータがついてくる。
今回テストしたのは13ワーク、文字列アトリビュートが10個ほどだったが出力されたjsonの容量は40KBとすごい膨らんでいた。
jsonのインデントもだいぶ深い。

文字列を出しただけなのに…

設定情報っぽいデータが多いところを見るとPDG間で Json Input と Json Outputで何らかのデータをやり取りするための仕組みなのかと思う。

情報を出力してゲームエンジンでも使い回せるようなデータを作るには向いていない印象。
ぱっと見で判りづらいデータにもなってしまうしROP Output 内でpythonノードなどで出力部分だけコード書いた方が管理も楽そう。

20.0と20.5でもアップデートされていたノードなので今後に期待ということで。

fish_ball

プロシージャル魚類