Houdini16.5.557からopnode_sum.pyがノードの一覧だけでなく、VEX、houの情報までもがPython辞書で出力できるようになりました。
Houdiniはデイリービルドレベルでバグ修正だけでなく、新機能も追加されます。
そういった情報はSideFXのジャーナルのページ( https://www.sidefx.com/changelog/ )で確認することができます。
そのため、そこでopnode_sumで検索すると以下の内容が表示されます。
Houdini16.5.550からVEXが、さらに16.5.557からはHScript、エクスプレッション、SobVerbまでもの情報を出力できるようになっているじゃないですか!!!
このopnode_sum.pyは、Houdiniインストールディレクトリ/houdini/python2.7libsの直下にあります。
このディレクトリ内にはHoudini関連の便利なモジュールが他にも色々あります。典型的なのがtoolutils.pyです。
これはオンラインヘルプ( http://www.sidefx.com/ja/docs/houdini16.5/hom/tool_script )に使い方あるので参考にしてください。
opnode_sum.pyによるJSONの出力
Houdini Terminal(Windowsならスタートメニュー->Side Effects Software->Houdini16.5.x->Utilities->Command Line Tools)を起動して、
Windows:
hython %HH%/python2.7libs/opnode_sum.py > result.json
Mac,Linux:
hython $HH/python2.7libs/opnode_sum.py > result.json
これで、JSONファイルとしてノード一覧などのリストをファイルとして書き出すことができます。
JSONファイルをFireFoxブラウザで開いてみるとこんな感じです。
Houdini16.5.550以前までのバージョンだとNodes、Shelvesの項目しかリストに出なかったのですが、EXPR、Verbs、Vex、hscriptまで出力されるようになっています!これは嬉しい機能追加ですね。
EXPRを展開:
利用可能なHScriptエクスプレッションの一覧が表示されます。
Nodesを展開:
ノードの一覧が表示されます。めちゃめちゃあります。
Shelvesを展開:
シェルフタブとその中に定義されているツール群の情報が表示されます。
Verbsを展開:
Verbが表示されます。
Verbって何?って思う人がいるかもしれませんね。
Verb="動詞"です。たしかコンパイルブロックへの対応のために提案されたものだったと思いますが、
通常のノードの処理は、"Houdiniが○○に対して△△を実行する"という命令形体です。Houdiniが主語(Subject)、○○が目的語(Object)、△△が動詞(Verb)です。英文法で言うと、SVOです。
複数ノードの組み合わせの処理を一つの処理形体にまとめるためには、目的語(Object)を共有して動詞(Verb)の部分だけを複数の組み合わせにできるようにさせたいのでこのような概念があり、Python SOPで使用します。
オンラインドキュメント( http://www.sidefx.com/ja/docs/houdini/model/compile#verbs )
hscriptを展開:
HScript関数の一覧が表示されます。
オプション
opnode_sum.pyのソースコードを見ると、オプションが用意されています。
-p
:パラメータ情報も出力します。
--briefparms
:名前/ラベルのパラメータ情報を出力します。
Windows:
hython %HH%/python2.7libs/opnode_sum.py -p > result.json
Mac,Linux:
hython $HH/python2.7libs/opnode_sum.py -p > result.json
まとめ
Houdiniはデイリービルドレベルで新しいノードが追加されたり、廃止されたノードが削除されたりします。
それはVEX関数もPython関数も同様です。
バージョンアップの度に、どのような変更が加えられたのかを調べる時にはSideFXのジャーナルのページで確認するのも大事ですがopnode_sum.pyを使うことで綿密に調べることができます。非常に便利ですね。