[Houdini] VEXで外部vflの読み込み


VEXでよく使う関数やスニペットを外部にまとめておきたい人向け。
色々見たけれど以下の2つの方法で動いた。 (H18にて確認)

ローカルな方法

$HIP/vex/include となるようにサブフォルダを作ってその下にvflを置く。

グローバルな方法 (やや強引)

houdini.envのHOUDINI_PATHに任意のパスを追加する。
houdini.envはMacなら ~/Library/Preferences/houdini/(version)/ にある。

HOUDINI_PATH = "/Users/gupon/houdini/mylib;&"  # ;& 忘れない

この場合は mylib/vex/include を作ってそこにvflを置く。

wrangle内で使う

#include <utils.vfl>

// サブフォルダもいけるらしい
#include <utils.vfl>

// 絶対パスなら上記何もせずいけるらしい
#include </Users/gupon/houdini/mylib/include/vex/utils.vfl>

補足

  • HOUDINI_VEX_PATH という環境変数の上書きで以前いけた気がするけど上手く動かず。。
    参考: https://www.sidefx.com/ja/docs/houdini/ref/env.html

  • HOUDINI_PATHへの追加は冗長な気もするけれど、vex以外のデジタルアセット等を追加したくなったときにも/olts等入れて対応できそうなので、包括的な個人的ライブラリを置くには良さそう。

  • Houdini上ではwrangleを少しでも書き換えれば外部ファイルもリロードされるっぽい

  • より詳しく: 【Houdini】vexのinclude文の挙動