Houdini回。
Houdiniにはopから始まるエクスプレッションがたくさんあります。
個人的に紛らわしいと思ってるのはopinput~とか、それに類するやつらです。
opinputとかopinputpathとか。
さらにはop:`opinputpath(“.”,0)`とか合わせ技っぽいのまで。
似たような名前と機能で、モヤモヤしてたのでスッキリさせようと思って取り上げました。
opinputpath
指定したノードの入力に接続されたノードのフルパスを取得できる。
opinputpath("参照ノードのパス", "幾つ目の入力か")
取得するデータは指定したノードじゃなくて、その入力ってのがポイント。
幾つ目かの入力の指定は0始まりなので、1番目の入力は0。2番目の入力は1。3番目は2と続く。
SOP内でDOPを使う場合、パーティクル等の発生元等の指定でもよく使う。
#自分自身の入力の1番目に接続しているノードのフルパスを取得 opinputpath(".", 0) #上位ノードの入力の1番目に接続しているノードのフルパスを取得 opinputpath("..", 0)
opinput
指定したノードの入力に接続されたノードの名前を取得できる。
opinputpathはノードのフルパスを取得できたけれど、こっちは名前だけ。
実はあんまり使ったことないんですけどね。
opinput("参照ノードのパス", "幾つ目の入力か")
opfullpath
opinputなんちゃらじゃないけど、よく見かけるやつ。
指定したノードのフルパスを取得。
opfullpath("参照ノードのパス")
パスを取得するのにパスが必要ってどゆこと?
と思ったのですが、きっと相対パスで指定して絶対パスを取得するとか、そんな使い方かと。
#自分のフルパスを取得 opfullpath(".")
op:
他のと少し違うヤツ。
op:は、シーン外からファイルを読み込む代わりに、シーン内に存在するノードを参照するときに使う。
op:`opinputpath("..",1)`
上の例だと、Vop内のPoint Cloud Openノードが、その上位階層の2番目の入力をファイルの代わりに参照してるという意味。
point cloud open(VOP)でよく使う印象。(最近、ノードのコネクトで済むようになったから、あんまり使ってないかも)
ちなみに、op:で使用するパスは絶対パスでなければならないらしい。(先に紹介したopfullpathに使い道があった!)
op:`opfullpath('../../volume1')`
ファイルの代わりのノード参照用途なら、なんでもop:でイケるのかと思い、copで作ったイメージをAttribute from Map(SOP)に読み込んでみた。
イケた!
要するに、ファイルの代わりにノードを参照するときは、op:使うと。
opdigits
余談になります。
マニュアル見てて、面白いなとおもったのがopdigits。
ノード名の最後の数字を取得できるらしい。
opdigits(".")
“null999″って名前のノードだと”999″を取得できる。
「へ~、こんなのあるのか」と思いましてね。
以上! 間違い等ありましたらご指摘を!
コメント