LoginSignup
9
6

More than 5 years have passed since last update.

opnode_sum.pyによるHoudiniのノード一覧、VEXなどの関数一覧を取得する

Posted at

Houdini16.5.557からopnode_sum.pyがノードの一覧だけでなく、VEX、houの情報までもがPython辞書で出力できるようになりました。

Houdiniはデイリービルドレベルでバグ修正だけでなく、新機能も追加されます。
そういった情報はSideFXのジャーナルのページ( https://www.sidefx.com/changelog/ )で確認することができます。
そのため、そこでopnode_sumで検索すると以下の内容が表示されます。
image.png
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ブラウザで開いてみるとこんな感じです。
image.png
Houdini16.5.550以前までのバージョンだとNodes、Shelvesの項目しかリストに出なかったのですが、EXPR、Verbs、Vex、hscriptまで出力されるようになっています!これは嬉しい機能追加ですね。

EXPRを展開:
利用可能なHScriptエクスプレッションの一覧が表示されます。
image.png

Nodesを展開:
ノードの一覧が表示されます。めちゃめちゃあります。
image.png

Shelvesを展開:
シェルフタブとその中に定義されているツール群の情報が表示されます。
image.png

Verbsを展開:
Verbが表示されます。
image.png
Verbって何?って思う人がいるかもしれませんね。
Verb="動詞"です。たしかコンパイルブロックへの対応のために提案されたものだったと思いますが、
通常のノードの処理は、"Houdiniが○○に対して△△を実行する"という命令形体です。Houdiniが主語(Subject)、○○が目的語(Object)、△△が動詞(Verb)です。英文法で言うと、SVOです。
複数ノードの組み合わせの処理を一つの処理形体にまとめるためには、目的語(Object)を共有して動詞(Verb)の部分だけを複数の組み合わせにできるようにさせたいのでこのような概念があり、Python SOPで使用します。
オンラインドキュメント( http://www.sidefx.com/ja/docs/houdini/model/compile#verbs )

Vexを展開:
VEX関数の一覧が表示されます。
image.png

hscriptを展開:
HScript関数の一覧が表示されます。
image.png

オプション

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

-pなし:
image.png
-pあり:
image.png

まとめ

Houdiniはデイリービルドレベルで新しいノードが追加されたり、廃止されたノードが削除されたりします。
それはVEX関数もPython関数も同様です。
バージョンアップの度に、どのような変更が加えられたのかを調べる時にはSideFXのジャーナルのページで確認するのも大事ですがopnode_sum.pyを使うことで綿密に調べることができます。非常に便利ですね。

9
6
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
9
6