ああ忙しい忙しい。忙しい時は自動化だ!ということで小さなツールを作りました。
大きいネットワークで作業中、どこでテンプレートフラグが付いているか探しに行くのが大変なときがありますね。そんな時はこのツールを使うと幸せになるかもしれません。
現在操作しているSOPネットワークのテンプレートフラグを一括でオフにしてくれます。
目次
どんなときに使うの?
こんな感じでネットワークを寄りで使ってるとき、下記独り言を言った経験ありませんか。
「ああ!テンプレート表示が邪魔くさい!しかもどこのノードでテンプレートフラグが付いてるのかわからん!」
引いてみるとこう。
これらをすべてオフにして回るのもめんどうです。そこでシェルフツールの出番となります。
シェルフツールの解説
とても短いコードです。簡単な解説を書きますが、間違ってたりより良い書き方があればぜひ僕のTwitter ID、kickbaseまでご指摘いただけるととても喜びます。
main関数
off_templateflags関数
現在開いているネットワークエディタの階層にある子要素(ノード)をまるっとループしてテンプレートフラグをオフにします。
[ 追記 ]
ちょっと補足です。最初のコードではoff_templateflags関数は下記のようになっていました。
def off_templateflags(current): for child in current.children(): hou.node(child.path()).setTemplateFlag(False)
でもこれだとエラーが出る時があるんですよね。SOPレベルに存在するノードの中でもROP FBX Outputなど、テンプレートフラグが存在しないノードがあるとHoudiniが困っちゃうというわけです。
それを回避するために、下記のように修正しています。
def off_templateflags(current): for child in current.children(): node = hou.node(child.path()) if "setTemplateFlag" in dir(node): node.setTemplateFlag(False)
ポイントはif "setTemplateFlag" in dir(node):
のところです。setTemplateFlagメソッド
を持ってたら、実行するというかたちですね。
使い方
シェルフに登録したOffTempボタンをクリックするだけです。アイコンはhicon:/SVGIcons.index?NETVIEW_template_flag.svg
を指定しています。*3
シェルフツールの登録をしたことがないよ!という方は以前書いたこちらの記事にまとめていますのでご覧ください。
まとめ
非常に小さなツールですが、割とよくやる作業なので良さそうと思った方は使ってみてください。