Houdini Node Library (HNL)
Houdini のノードを Hscript (nodes.cmd) として保存し、独立したブラウザアプリから呼び出すツールです。
選択ノード、ネットワーク全体、シーン全体を登録できます。登録した内容は、現在のネットワークへの追加、新規シーンへのインポート、シーンを開く、現在のシーンへのマージ、のいずれかで復元します。
ノード単体・ノード群は Hscript(cmd)で、シーン全体は hip のまま保存します(大きなシーンでも数秒で登録・開けるため。0.3.0 から)。
必要環境
- Windows
- Houdini 20.5 / 21.0 / 22.0(動作確認は 22.0.429。20.5 と 21.0 は Python 3.11 用の起動フックを同梱しています)
- Python 3.11 以降(アプリ本体用。Houdini 内蔵の Python とは別です)。Houdini 21 以降なら、付属の Python でアプリを動かせるので、各 PC への Python のインストールは不要です(下の「Houdini 付属の Python で使う」)
- TortoiseSVN(任意。SVN でバージョン管理するときだけ。コミット・履歴・差分の画面に使います)
インストール
-
pip で導入します(仮想環境の利用をおすすめします)。PySide6 などの依存も一緒に入ります。
python -m venv hnl-env hnl-env\Scripts\pip install houdini-node-library -
Houdini のユーザー設定に package を導入します。
hnl-env\Scripts\hnl-houdini installDocuments\houdini22.0\packages\hnl.jsonが作られます。別の版は--houdini-version 21.0、設定フォルダが標準の場所に無いときは--prefs-dir <フォルダ>で指定します。hnl-houdini statusで導入状態を、hnl-houdini uninstallで撤去(hnl.jsonの削除)ができます。 -
Houdini を再起動します。通常どおり起動した Houdini(GUI)では、起動時にブリッジが自動で立ち上がります。ブリッジは
127.0.0.1だけで待ち受けます。 -
アプリを起動します。
hnl-env\Scripts\hnlコンソールは出ません。
python -m hnlでも起動できます。起動済みのときは、新しいウィンドウを作らず既存のウィンドウが前面に出ます。Houdini のシェルフ「HNL」のOpen Libraryからも起動できます。
hnl.json には、いま使っている Python の場所が書かれます。Python の環境を作り直したり移動したりしたときは、hnl-houdini install をやり直してください。
ライブラリに載せない直接共有(0.2.0)
Houdini でノードを選んで「Share Selection」を押すと短い共有コード(テキスト HNL1:...、共有フォルダ K7Q2-M9XD、SVN r1234)が出ます。相手は「Receive」でコードを貼って内容を確認し、取り込みます。使い方は docs/user-guide.md の「共有コード」を見てください。
5 分で試す
hnlで起動します。「ルートフォルダを追加してください」と出るので「設定を開く」を押します。- 「追加...」で空のフォルダを選び、OK を押します。これがライブラリのルートです。
- Houdini(package 導入済み)でノードを作って選択し、シェルフ「HNL」の
Register to Libraryを押します。ノードを右クリックしてHNL: Register to Libraryでも開けます。 - 登録画面が開くので、名前(必要ならプロジェクト・部署・タグ)を確認して「登録」を押します。
- ブラウザでアイテムを選び、「現在のネットワークへ追加」を押します。確認ダイアログで「インポート」を押すと、Houdini にノードが復元されます。
詳しい使い方は docs/user-guide.md、保存形式は docs/format.md、セキュリティと信頼モデルは docs/security.md を見てください。
Houdini 付属の Python で使う(各 PC に Python 不要・0.4.0)
Houdini 21 以降には PySide6 と Pillow が付属の Python に入っています。書き出しに --runtime houdini を付けると、その Python でアプリが動き、各 PC への Python と pip install が要らなくなります。
hnl-houdini export <出力先フォルダ> --runtime houdini
1 台で pip install して書き出し → ランチャーの管理領域か SVN に置く → 各 PC は Houdini を起動するだけ、です。hnl_package\hnl.bat をダブルクリックすれば、Houdini を起動していなくてもブラウザを開けます。書き出しには、Houdini に入っていない純 Python ライブラリ(markdown-it-py、mdit-py-plugins、mdurl。約 0.4 MB)が vendor/ に入り、ライセンスは THIRD_PARTY_LICENSES.txt に一覧されます。hou は読み込まないので、アプリを開いても Houdini のライセンスは追加で消費しません。対応は Houdini 22.0(全機能)と 21.0(PySide6 6.5。起動と主要画面を確認)で、PySide6 の無い版では不足の理由を表示して終了します。手順・更新・制限は docs/getting-started.md の「11.1 Houdini 付属の Python で使う」を見てください。
ランチャーや共有フォルダ・SVN で使う場合
会社のランチャーが Houdini の環境変数やパッケージを管理していて Documents\houdini<版>\packages\hnl.json が読まれないときや、共通の SVN で全員に配りたいときは、一式を任意のフォルダへ書き出します。
hnl-houdini export <出力先フォルダ>
<出力先>/
hnl.json Houdini パッケージ定義(相対指定。絶対パスを含まない)
hnl_package/
hnl/ アプリ本体 + Houdini 側ファイル
requirements.txt hnl.bat VERSION README.txt
- 場所を移しても、別の PC へコピーしても、SVN で共有しても動きます。出力は決定的(
.pycなし、テキストは LF、時刻やマシン名なし)なので、再実行しても無駄な差分は出ません。 - (既定の
--runtime pythonでは)Python と依存ライブラリ(requirements.txt)は各 PC に用意します。--runtime houdiniなら不要です(上の節)。起動に使う Python は、環境変数HNL_APP(完全なコマンド)、HNL_PYTHON(python.exeのパス)、出力先と同じ階層のpython\や.venv\、pip 導入環境、pyw/py、PATH 上のpythonw/pythonの順で決まります。全 PC で Python の場所が同じなら--python <パス>でhnl.jsonにHNL_PYTHONを書けます。ライブラリが足りないときは、不足分とpip install -r requirements.txtの案内が出ます。 - オプション:
--runtime python|houdini(前回の値を引き継ぐ)、--json-name <名前>、--no-json(ランチャーが環境変数を直接設定する場合)、--dry-run、--prune、--init-site-settings。hnl-houdini env [--root <出力先>] [--format bat|ps1|json|plain]で、ランチャーに登録するHOUDINI_PATH(既定の検索パスを表す末尾の&を残す)・PYTHONPATH・HNL_PYTHONの値を表示します。 - 共有の
hnl.jsonを置く場所が分かっているときはhnl-houdini install --packages-dir <フォルダ>でも作れます。hnl-houdini statusは、HOUDINI_PACKAGE_DIRなどの環境変数で既定の場所のhnl.jsonが読まれない可能性があるときに知らせます。 - 共通ライブラリを最初から見せたいときは、
hnl_package/site_settings.json(または環境変数HNL_SITE_SETTINGS)にrootsとref_excludesの既定値を書きます。利用者がルートを 1 つも持たない間だけ初期値として使われ、利用者が編集した後は上書きされません。exportはこのファイルを上書きも削除もしません。 - 更新: 新しい版を pip で入れる → 同じ出力先へ
hnl-houdini export→ SVN にコミット。SVN 管理下で不要になったファイルは一覧表示だけです(svn deleteは利用者が行う。--pruneで作業コピーから消せます)。 - Houdini の Python Shell で
import hnl_bridge; hnl_bridge.diagnose()と打つと、ブリッジの場所・サーバーの状態・アプリの起動コマンド・シェルフがHOUDINI_PATH上にあるかを確認できます。
詳しくは docs/getting-started.md を見てください。
開発者向け
ソースから動かすときの手順です。
python -m venv .venv
.venv\Scripts\pip install -e .[dev]
.venv\Scripts\hnl-houdini install # ソースの Houdini 側ファイルを読む hnl.json を作る
HNL.bat # または .venv\Scripts\python -m hnl
フォルダ構成:
src/hnl/ アプリ本体 (core / vcs / houdini / ui)
src/hnl/_houdini/ Houdini 側ファイル一式(python/hnl_bridge, python3.11libs, python3.13libs, toolbar, OPmenu.xml)。wheel にも同梱される
tests/ pytest(tests/houdini は Houdini を使う検証スクリプト)
tools/ デモライブラリ生成などの補助スクリプト
docs/ 利用者向け文書、設計メモ、検証結果
HNL.bat 開発用の起動バッチ(リポジトリの .venv を使う)
テストの実行:
.venv\Scripts\python -m pytest -q --ignore=tests/houdini
"%HFS%\bin\hython.exe" tests\houdini\run_tests.py
tests/houdini/ のスクリプトは Houdini が必要です。run_tests.py は hython.exe で、run_e2e.py などは .venv\Scripts\python で実行します(実行すると Houdini が起動するものがあります)。
配布物(wheel と sdist)は python -m build で作ります(pip install build が必要)。
既知の制限
- 保存形式は cmd のみです。
.hipファイルは扱いません。 - 完全には再現できないノード・構造があります(ハードロックのジオメトリ、ノードグループ、VOP 内蔵ノードなど)。登録・共有時に自動で照合し、お知らせとして出します(止めません)。一覧と対処は docs/getting-started.md の「保存されないもの・制限」を見てください。
- 選択外のノードからの入力接続は、復元後に失われます。選択外へのチャンネル参照は参照切れになります。
- 絶対パスで書いたエクスプレッションは、復元後も元のパスを指します。
- ビューポート撮影の画像に Houdini のロゴ透かしが入ることがあります(Apprentice など、ライセンスの種類によります)。
- バージョン管理は SVN のみです。
- Windows 専用です。
- cmd は実行されるコードです。危険な記述が見つかったときだけインポートを止めます(検査は補助です)。信頼する場所・検査・限界の詳細は docs/security.md を見てください。
ライセンス
MIT License です。全文は LICENSE を参照してください。
Metadata
Release files for houdini-node-library 0.4.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| houdini_node_library-0.4.0.tar.gz | 319.0 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| houdini_node_library-0.4.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 660.9 kB
Release files / houdini_node_library-0.4.0.tar.gz
| Download URL | houdini_node_library-0.4.0.tar.gz |
|---|---|
| Size | 319.0 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
1bc04afadaaf73e23a43389acc73412358b756015ef0f1c8ef74dab6d9a08673
|
|
BLAKE2b-256 checksum How to use checksums |
f3571cfd23f768df881765eefb355292bbc4f62d74bc61f2978adba368a0bef0
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.11.5
|
Release files / houdini_node_library-0.4.0-py3-none-any.whl
| Download URL | houdini_node_library-0.4.0-py3-none-any.whl |
|---|---|
| Size | 342.0 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
323408f690b63673373248973b1f5f5e39a6277655783a9278839491cf2a4022
|
|
BLAKE2b-256 checksum How to use checksums |
d82f6e76d7c8b4499511bfb6667ca5d4e46557c4f597129e6b1d677b363484de
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.11.5
|