Houdini側がメインの諸々。後で見直したとき見れば何かしらHoudiniのPythonがわかるようにメモ。
ターゲットは同じようにPythonよくわかんないぜ!って言う人向けです。とりあえずなんかちょっとできるかもだぜ!を一緒に目指しましょう。
用語とか怪しいのでなにかあればお願いします。
最初にメモ
Console
print()などの出力結果を表示するHoudini Console、Windowsだとデフォルトで出てた気がする...?
Linuxだと起動時に-foregroundのフラグを立てるか、フラグを立てなくても起動後にPython Shellに出力される。
スクリプトの置き場
他にもいくつあったはずだけど簡単な2つ。
このパス(ディレクトリ、フォルダ)を認識させることによって、外部ファイルの~~.pyやモジュールとかが実行できるようになる。
PYTHONPATH
これはPython自体の環境変数なので、Pythonが使えるDCCならどれでも同じように指定できる。
Linux
export PYTHONPATH="/my/script_dir_path"
Windows
set PYTHONPATH="/my/script_dir_path"
Houdini Package
環境変数が設定されたHoudiniが起動する
起動用のShell Script例 (Linux)
#set version VERSION="20.0.547" #set path export PATH=$PATH:/opt/hfs${VERSION}/bin #set env export HOUDINI_PACKAGE_DIR="your_package_json_dir"; #run Houdini houdini
パッケージファイル例
もっと色々設定できるので詳細は公式ヘルプを見ること。
{ "env": [ {"HOUDINI_PATH": "your_houdini_config_file_dir"}, {"EDITOR": "your_editor"} ] }
Houdini Config File
環境変数HOUDINI_PATH
に記述する、Houdiniの初期設定やHDAなど各種を読み込むディレクトリです。
これは、指定したディレクトリ以下の特定のフォルダ名を自動的に処理してくれる便利なやつです。
例えば以下画像のような構成であればこのdefaultをHOUDINI_PATH
で設定することで、
このフォルダ内のPython ScriptやHDA、Shelfなども全部読み込んでくれます。
HOUDINI_PATH以下のフォルダ名の定義
以下のコマンドを走らせるとどういうフォルダ名にすればどのように利用されるかが羅列されるので、
それをもとにHOUDINI_PATH
で設定するディレクトリ以下の階層名を決める。
Python Scriptであればpython3.10libs
というようなディレクトリ名にする。(3.10の部分はPythonのバージョンが入る)
Windows
HoudiniのCommand Line Toolsを実行してhconfig -ap
Linux
cd /opt/hfs20.0.547 source houdini_setup hconfig -ap
Python Scriptが使えるかどうかの確認方法
外部ファイルのPython Scriptを呼び出して実行するためには、環境変数PYTHONPATH
にそのディレクトリが設定されている必要がある。
Python Pathを確認するPython
import sys for path in sys.path: print(path)
を実行する。これもPython自体の機能なのでDCC問わず使える。
Consoleにこんな感じで表示される。
一時的にPathを通すPython
テスト中とかで所定の箇所に配置せずに使いたい場合。これもPython自体の機能なのでDCC問わず使える。
import sys sys.path.append(" /my/script_dir_path")
HoudiniのPythonで使えるモジュールとか
こういうふうに調べるとか、ここに書いてあるとか。
Python標準ライブラリ
Pythonが内包しているものはこっち
USD関連
USDのヘルプ?はよくわからないと本当によくわからない。
左のメニューのSdfの項目のSdfLayerとかはfrom pxr import Sdf, Usd
した後でたまに使うような気がする。
メニューがいっぱいあって嫌になるが、ClassesのClass Listで、LOPでよく使いそうなのはSdf〜とUsd~のような気がする?
USDに関してはゼロからPythonでUSDやりまーす!とかじゃなければOmniverseのヘルプもあり。
Sdf module — pxr-usd-api 105.1 documentation
公式 HOM Help
その他モジュール
Houdiniには(多分)公式ヘルプに記載のないモジュールがいっぱいある。
以前は以下URLのページを見たりもしていましたが永らく更新がないようなので、それの調べ方。
Welcome to Houdini Python modules’s documentation! — Houdini Python modules 17.0.439 documentation
調べ方
Houdiniを起動して、Python Shellからhelp('modules')
を実行する。
するとなにか謎の呪文のようなものが大量にリストアップされてくる。
これがすべて使えるモジュールなので、Pythonでimport モジュール名
にするとその機能が使える。
絞り込んでの調べ方
さらに、例えばLOP関連のモジュールを表示したいとかであれば、help('modules lop')
とするとlopを含むモジュールをリストアップできる。
モジュール(パッケージ)のファイルの場所を調べる
だいたいはここにある`$HFS/houdini/python3.10libs/`
Pythonから探す場合は〜
import モジュール名 print(モジュール名.__file__)
パッケージの場合は__file__
を__path__
でもいける。
モジュール内の関数を調べる
help('モジュール名')
にするとそのモジュール内の関数とその引数がリストアップされる。
ものによってはhelp('モジュール名.関数?')
とかで調べると更に詳しく出たり?
ただし、以下の画像のようにHoudiniのHelpに乗ってない系モジュールはモジュール名と引数くらいしかわからないことが多い。