Created on | Updated on

Solaris:アセットデータベースのファイルパスは変更できるか?

Asset Reference の Reference File パラメータを参照パスとフルパスで切り替える方法についてです。

 

Asset Reference の Reference File パラメータに入れるファイルパスは、アセットデータベースからそのまま来ています。

例えば Houdini に同梱されているサンプルデータベースを使用している場合、このデータベースはローカルにインストールされた Houdini を指す必要があるため、ファイルパスに $HFS を使用して保存されています。

mceclip0.png

 

独自のデータベースを作成する場合、ファイルパスを絶対パスに設定することができ、その場合 Asset Reference ノードはその絶対ファイルパスで作成されます。

既存の .hip ファイルで Asset Reference のファイル名を相対パスから絶対パスに変換したい場合、ノードを列挙してパラメータを変更する Python スクリプトを書くのが一番手っ取り早い方法です。

 

既存のデータベースでファイルパスを変換したい場合、これも Python スクリプトで可能ですが、より複雑な作業になるかもしれません。

 

単純に絶対パスを見るだけなら、パラメータの値を右クリックして、Expression > Expand String Value を選択します。(もしくはパラメータのラベル名をホイールクリック)
これで文字列の展開されたバージョンが表示されますが、これはパラメータの実際の値を変更するものではありません。パラメータの値には変わらず env 変数が入ったままです。

mceclip1.png

mceclip2.png

このメニューを使ってファイル名を展開/圧縮することはできますが、実際の値を変更する方法はなく、追加する予定は今のところ(2022年 12月 20日現在)ありません。

しかし、パラメータ値を展開・変更するような簡単なメニュー項目を独自で追加することは可能です。

より難しい問題に対処する場合には、ファイルパスを取得して任意に圧縮して env 変数を使用することをお勧めします。

 

以下は $HFS 入りファイルパスをフルパスに変更させる Python Script の例です。これをLayout LOP の中の Asset Reference と同じ階層の Python Script ノードに記述し実行すれば機能します。

ただし $HFS > フルパスの一方向のみですのでご注意ください。(インデントに注意)

for node in hou.node("../").children():
if node.type().name() == "assetreference":
print ("target:" + "\t\t\t" + node.path())
old_filepath = node.parm("filepath")
print ("changed filepath:" + "\t" + old_filepath.eval() + "\n")
node.parm("filepath").set(old_filepath.eval())

mceclip0.png

問題が解決しない場合は、Born Digital サポートまでお問い合わせ下さい。

※ 問い合わせ対応はBorn Digitalより製品をご購入頂きましたお客様のみのサービスとなります。ご了承下さい。
サポート問い合わせ