houdini-node-library 0.1.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- houdini_node_library-0.1.0/LICENSE +21 -0
- houdini_node_library-0.1.0/MANIFEST.in +10 -0
- houdini_node_library-0.1.0/PKG-INFO +128 -0
- houdini_node_library-0.1.0/README.md +99 -0
- houdini_node_library-0.1.0/docs/format.md +429 -0
- houdini_node_library-0.1.0/docs/security.md +93 -0
- houdini_node_library-0.1.0/docs/user-guide.md +484 -0
- houdini_node_library-0.1.0/pyproject.toml +54 -0
- houdini_node_library-0.1.0/setup.cfg +4 -0
- houdini_node_library-0.1.0/src/hnl/__init__.py +3 -0
- houdini_node_library-0.1.0/src/hnl/__main__.py +5 -0
- houdini_node_library-0.1.0/src/hnl/_houdini/OPmenu.xml +15 -0
- houdini_node_library-0.1.0/src/hnl/_houdini/python/hnl_bridge/__init__.py +2 -0
- houdini_node_library-0.1.0/src/hnl/_houdini/python/hnl_bridge/autostart.py +12 -0
- houdini_node_library-0.1.0/src/hnl/_houdini/python/hnl_bridge/cmdio.py +98 -0
- houdini_node_library-0.1.0/src/hnl/_houdini/python/hnl_bridge/export.py +292 -0
- houdini_node_library-0.1.0/src/hnl/_houdini/python/hnl_bridge/extras.py +439 -0
- houdini_node_library-0.1.0/src/hnl/_houdini/python/hnl_bridge/hdas.py +137 -0
- houdini_node_library-0.1.0/src/hnl/_houdini/python/hnl_bridge/importer.py +533 -0
- houdini_node_library-0.1.0/src/hnl/_houdini/python/hnl_bridge/launcher.py +83 -0
- houdini_node_library-0.1.0/src/hnl/_houdini/python/hnl_bridge/scan.py +392 -0
- houdini_node_library-0.1.0/src/hnl/_houdini/python/hnl_bridge/server.py +416 -0
- houdini_node_library-0.1.0/src/hnl/_houdini/python/hnl_bridge/structure.py +122 -0
- houdini_node_library-0.1.0/src/hnl/_houdini/python/hnl_bridge/userset.py +342 -0
- houdini_node_library-0.1.0/src/hnl/_houdini/python3.11libs/uiready.py +7 -0
- houdini_node_library-0.1.0/src/hnl/_houdini/python3.13libs/uiready.py +7 -0
- houdini_node_library-0.1.0/src/hnl/_houdini/toolbar/hnl.shelf +42 -0
- houdini_node_library-0.1.0/src/hnl/app.py +146 -0
- houdini_node_library-0.1.0/src/hnl/core/__init__.py +1 -0
- houdini_node_library-0.1.0/src/hnl/core/cmdio.py +38 -0
- houdini_node_library-0.1.0/src/hnl/core/cmdscan.py +38 -0
- houdini_node_library-0.1.0/src/hnl/core/cmdtext.py +87 -0
- houdini_node_library-0.1.0/src/hnl/core/collect.py +212 -0
- houdini_node_library-0.1.0/src/hnl/core/index.py +219 -0
- houdini_node_library-0.1.0/src/hnl/core/library.py +474 -0
- houdini_node_library-0.1.0/src/hnl/core/model.py +152 -0
- houdini_node_library-0.1.0/src/hnl/core/refrules.py +128 -0
- houdini_node_library-0.1.0/src/hnl/core/settings.py +108 -0
- houdini_node_library-0.1.0/src/hnl/core/structure.py +195 -0
- houdini_node_library-0.1.0/src/hnl/core/thumbmake.py +67 -0
- houdini_node_library-0.1.0/src/hnl/core/trust.py +77 -0
- houdini_node_library-0.1.0/src/hnl/core/vocab.py +46 -0
- houdini_node_library-0.1.0/src/hnl/houdini/__init__.py +1 -0
- houdini_node_library-0.1.0/src/hnl/houdini/client.py +215 -0
- houdini_node_library-0.1.0/src/hnl/houdini/launcher.py +110 -0
- houdini_node_library-0.1.0/src/hnl/houdini/package.py +129 -0
- houdini_node_library-0.1.0/src/hnl/ui/__init__.py +1 -0
- houdini_node_library-0.1.0/src/hnl/ui/app_icon.py +57 -0
- houdini_node_library-0.1.0/src/hnl/ui/detail_cmd.py +215 -0
- houdini_node_library-0.1.0/src/hnl/ui/detail_header.py +207 -0
- houdini_node_library-0.1.0/src/hnl/ui/detail_info.py +130 -0
- houdini_node_library-0.1.0/src/hnl/ui/detail_panel.py +219 -0
- houdini_node_library-0.1.0/src/hnl/ui/detail_tables.py +145 -0
- houdini_node_library-0.1.0/src/hnl/ui/empty_state.py +34 -0
- houdini_node_library-0.1.0/src/hnl/ui/grid.py +322 -0
- houdini_node_library-0.1.0/src/hnl/ui/hou_icons.py +203 -0
- houdini_node_library-0.1.0/src/hnl/ui/import_dialog.py +305 -0
- houdini_node_library-0.1.0/src/hnl/ui/import_flow.py +233 -0
- houdini_node_library-0.1.0/src/hnl/ui/import_logic.py +483 -0
- houdini_node_library-0.1.0/src/hnl/ui/item_actions.py +117 -0
- houdini_node_library-0.1.0/src/hnl/ui/item_model.py +144 -0
- houdini_node_library-0.1.0/src/hnl/ui/item_table.py +74 -0
- houdini_node_library-0.1.0/src/hnl/ui/main_toolbar.py +72 -0
- houdini_node_library-0.1.0/src/hnl/ui/main_window.py +400 -0
- houdini_node_library-0.1.0/src/hnl/ui/md_pane.py +420 -0
- houdini_node_library-0.1.0/src/hnl/ui/md_render.py +225 -0
- houdini_node_library-0.1.0/src/hnl/ui/rebuild.py +32 -0
- houdini_node_library-0.1.0/src/hnl/ui/register/__init__.py +5 -0
- houdini_node_library-0.1.0/src/hnl/ui/register/capture_dialogs.py +120 -0
- houdini_node_library-0.1.0/src/hnl/ui/register/dialog.py +393 -0
- houdini_node_library-0.1.0/src/hnl/ui/register/logic.py +137 -0
- houdini_node_library-0.1.0/src/hnl/ui/register/meta_form.py +162 -0
- houdini_node_library-0.1.0/src/hnl/ui/register/picker.py +42 -0
- houdini_node_library-0.1.0/src/hnl/ui/register/protocol.py +17 -0
- houdini_node_library-0.1.0/src/hnl/ui/register/refs_tab.py +314 -0
- houdini_node_library-0.1.0/src/hnl/ui/register/simple_tabs.py +240 -0
- houdini_node_library-0.1.0/src/hnl/ui/register/structure_tab.py +21 -0
- houdini_node_library-0.1.0/src/hnl/ui/register/thumb_panel.py +320 -0
- houdini_node_library-0.1.0/src/hnl/ui/register/workers.py +55 -0
- houdini_node_library-0.1.0/src/hnl/ui/register_flow.py +55 -0
- houdini_node_library-0.1.0/src/hnl/ui/settings_dialog.py +348 -0
- houdini_node_library-0.1.0/src/hnl/ui/sidebar.py +247 -0
- houdini_node_library-0.1.0/src/hnl/ui/structure_view.py +231 -0
- houdini_node_library-0.1.0/src/hnl/ui/tag_edit.py +329 -0
- houdini_node_library-0.1.0/src/hnl/ui/theme.py +211 -0
- houdini_node_library-0.1.0/src/hnl/ui/theme_icons.py +61 -0
- houdini_node_library-0.1.0/src/hnl/ui/thumbs.py +93 -0
- houdini_node_library-0.1.0/src/hnl/ui/vcs_controller.py +431 -0
- houdini_node_library-0.1.0/src/hnl/ui/vcs_dialogs.py +63 -0
- houdini_node_library-0.1.0/src/hnl/ui/vcs_history.py +71 -0
- houdini_node_library-0.1.0/src/hnl/ui/vcs_ops.py +121 -0
- houdini_node_library-0.1.0/src/hnl/ui/vcs_style.py +62 -0
- houdini_node_library-0.1.0/src/hnl/ui/vocab_combo.py +73 -0
- houdini_node_library-0.1.0/src/hnl/vcs/__init__.py +33 -0
- houdini_node_library-0.1.0/src/hnl/vcs/base.py +142 -0
- houdini_node_library-0.1.0/src/hnl/vcs/none.py +69 -0
- houdini_node_library-0.1.0/src/hnl/vcs/svn.py +393 -0
- houdini_node_library-0.1.0/src/houdini_node_library.egg-info/PKG-INFO +128 -0
- houdini_node_library-0.1.0/src/houdini_node_library.egg-info/SOURCES.txt +101 -0
- houdini_node_library-0.1.0/src/houdini_node_library.egg-info/dependency_links.txt +1 -0
- houdini_node_library-0.1.0/src/houdini_node_library.egg-info/entry_points.txt +5 -0
- houdini_node_library-0.1.0/src/houdini_node_library.egg-info/requires.txt +8 -0
- houdini_node_library-0.1.0/src/houdini_node_library.egg-info/top_level.txt +1 -0
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 hamu-dev
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
# sdist に入れるもの: ソース (src/)、README、利用者向け文書、Houdini 側ファイル。それ以外は明示的に除外する。
|
|
2
|
+
include README.md
|
|
3
|
+
include pyproject.toml
|
|
4
|
+
include LICENSE
|
|
5
|
+
include docs/user-guide.md docs/format.md docs/security.md
|
|
6
|
+
recursive-include src/hnl *.py
|
|
7
|
+
recursive-include src/hnl/_houdini *
|
|
8
|
+
prune tests
|
|
9
|
+
prune tools
|
|
10
|
+
global-exclude __pycache__ *.py[cod] *.png *.log
|
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: houdini-node-library
|
|
3
|
+
Version: 0.1.0
|
|
4
|
+
Summary: Houdini Node Library: save Houdini nodes as Hscript (cmd) and recall them from a standalone browser app
|
|
5
|
+
Author: hamu-dev
|
|
6
|
+
License-Expression: MIT
|
|
7
|
+
Keywords: houdini,sidefx,node,library,hscript
|
|
8
|
+
Classifier: Development Status :: 3 - Alpha
|
|
9
|
+
Classifier: Intended Audience :: Developers
|
|
10
|
+
Classifier: Environment :: Win32 (MS Windows)
|
|
11
|
+
Classifier: Environment :: X11 Applications :: Qt
|
|
12
|
+
Classifier: Operating System :: Microsoft :: Windows
|
|
13
|
+
Classifier: Programming Language :: Python :: 3
|
|
14
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
15
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
16
|
+
Classifier: Programming Language :: Python :: 3.13
|
|
17
|
+
Classifier: Topic :: Multimedia :: Graphics :: 3D Modeling
|
|
18
|
+
Requires-Python: >=3.11
|
|
19
|
+
Description-Content-Type: text/markdown
|
|
20
|
+
License-File: LICENSE
|
|
21
|
+
Requires-Dist: PySide6
|
|
22
|
+
Requires-Dist: Pillow
|
|
23
|
+
Requires-Dist: markdown-it-py
|
|
24
|
+
Requires-Dist: mdit-py-plugins
|
|
25
|
+
Provides-Extra: dev
|
|
26
|
+
Requires-Dist: pytest; extra == "dev"
|
|
27
|
+
Requires-Dist: pytest-qt; extra == "dev"
|
|
28
|
+
Dynamic: license-file
|
|
29
|
+
|
|
30
|
+
# Houdini Node Library (HNL)
|
|
31
|
+
|
|
32
|
+
Houdini のノードを Hscript (`nodes.cmd`) として保存し、独立したブラウザアプリから呼び出すツールです。
|
|
33
|
+
選択ノード、ネットワーク全体、シーン全体を登録できます。登録した内容は、現在のネットワークへの追加、新規シーンへのインポート、シーンを開く、のいずれかで復元します。
|
|
34
|
+
|
|
35
|
+
## 必要環境
|
|
36
|
+
|
|
37
|
+
- Windows
|
|
38
|
+
- Houdini 20.5 / 21.0 / 22.0(動作確認は 22.0.429。20.5 と 21.0 は Python 3.11 用の起動フックを同梱しています)
|
|
39
|
+
- Python 3.11 以降(アプリ本体用。Houdini 内蔵の Python とは別です)
|
|
40
|
+
- TortoiseSVN(任意。SVN でバージョン管理するときだけ。コミット・履歴・差分の画面に使います)
|
|
41
|
+
|
|
42
|
+
## インストール
|
|
43
|
+
|
|
44
|
+
1. pip で導入します(仮想環境の利用をおすすめします)。PySide6 などの依存も一緒に入ります。
|
|
45
|
+
|
|
46
|
+
```
|
|
47
|
+
python -m venv hnl-env
|
|
48
|
+
hnl-env\Scripts\pip install houdini-node-library
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
2. Houdini のユーザー設定に package を導入します。
|
|
52
|
+
|
|
53
|
+
```
|
|
54
|
+
hnl-env\Scripts\hnl-houdini install
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
`Documents\houdini22.0\packages\hnl.json` が作られます。別の版は `--houdini-version 21.0`、設定フォルダが標準の場所に無いときは `--prefs-dir <フォルダ>` で指定します。`hnl-houdini status` で導入状態を、`hnl-houdini uninstall` で撤去(`hnl.json` の削除)ができます。
|
|
58
|
+
|
|
59
|
+
3. Houdini を再起動します。通常どおり起動した Houdini(GUI)では、起動時にブリッジが自動で立ち上がります。ブリッジは `127.0.0.1` だけで待ち受けます。
|
|
60
|
+
|
|
61
|
+
4. アプリを起動します。
|
|
62
|
+
|
|
63
|
+
```
|
|
64
|
+
hnl-env\Scripts\hnl
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
コンソールは出ません。`python -m hnl` でも起動できます。起動済みのときは、新しいウィンドウを作らず既存のウィンドウが前面に出ます。Houdini のシェルフ「HNL」の `Open Library` からも起動できます。
|
|
68
|
+
|
|
69
|
+
`hnl.json` には、いま使っている Python の場所が書かれます。Python の環境を作り直したり移動したりしたときは、`hnl-houdini install` をやり直してください。
|
|
70
|
+
|
|
71
|
+
## 5 分で試す
|
|
72
|
+
|
|
73
|
+
1. `hnl` で起動します。「ルートフォルダを追加してください」と出るので「設定を開く」を押します。
|
|
74
|
+
2. 「追加...」で空のフォルダを選び、OK を押します。これがライブラリのルートです。
|
|
75
|
+
3. Houdini(package 導入済み)でノードを作って選択し、シェルフ「HNL」の `Register to Library` を押します。ノードを右クリックして `HNL: Register to Library` でも開けます。
|
|
76
|
+
4. 登録画面が開くので、名前(必要ならプロジェクト・部署・タグ)を確認して「登録」を押します。
|
|
77
|
+
5. ブラウザでアイテムを選び、「現在のネットワークへ追加」を押します。確認ダイアログで「インポート」を押すと、Houdini にノードが復元されます。
|
|
78
|
+
|
|
79
|
+
詳しい使い方は [docs/user-guide.md](docs/user-guide.md)、保存形式は [docs/format.md](docs/format.md)、セキュリティと信頼モデルは [docs/security.md](docs/security.md) を見てください。
|
|
80
|
+
|
|
81
|
+
## 開発者向け
|
|
82
|
+
|
|
83
|
+
ソースから動かすときの手順です。
|
|
84
|
+
|
|
85
|
+
```
|
|
86
|
+
python -m venv .venv
|
|
87
|
+
.venv\Scripts\pip install -e .[dev]
|
|
88
|
+
.venv\Scripts\hnl-houdini install # ソースの Houdini 側ファイルを読む hnl.json を作る
|
|
89
|
+
HNL.bat # または .venv\Scripts\python -m hnl
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
フォルダ構成:
|
|
93
|
+
|
|
94
|
+
```
|
|
95
|
+
src/hnl/ アプリ本体 (core / vcs / houdini / ui)
|
|
96
|
+
src/hnl/_houdini/ Houdini 側ファイル一式(python/hnl_bridge, python3.11libs, python3.13libs, toolbar, OPmenu.xml)。wheel にも同梱される
|
|
97
|
+
tests/ pytest(tests/houdini は Houdini を使う検証スクリプト)
|
|
98
|
+
tools/ デモライブラリ生成などの補助スクリプト
|
|
99
|
+
docs/ 利用者向け文書、設計メモ、検証結果
|
|
100
|
+
HNL.bat 開発用の起動バッチ(リポジトリの .venv を使う)
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
テストの実行:
|
|
104
|
+
|
|
105
|
+
```
|
|
106
|
+
.venv\Scripts\python -m pytest -q --ignore=tests/houdini
|
|
107
|
+
"%HFS%\bin\hython.exe" tests\houdini\run_tests.py
|
|
108
|
+
```
|
|
109
|
+
|
|
110
|
+
`tests/houdini/` のスクリプトは Houdini が必要です。`run_tests.py` は `hython.exe` で、`run_e2e.py` などは `.venv\Scripts\python` で実行します(実行すると Houdini が起動するものがあります)。
|
|
111
|
+
|
|
112
|
+
配布物(wheel と sdist)は `python -m build` で作ります(`pip install build` が必要)。
|
|
113
|
+
|
|
114
|
+
## 既知の制限
|
|
115
|
+
|
|
116
|
+
- 保存形式は cmd のみです。`.hip` ファイルは扱いません。
|
|
117
|
+
- ハードロックしたノードのジオメトリは保存されません(フラグだけ残り、復元後は空になります)。
|
|
118
|
+
- ノードグループは保存されません。
|
|
119
|
+
- 選択外のノードからの入力接続は、復元後に失われます。選択外へのチャンネル参照は参照切れになります。
|
|
120
|
+
- 絶対パスで書いたエクスプレッションは、復元後も元のパスを指します。
|
|
121
|
+
- ビューポート撮影の画像に Houdini のロゴ透かしが入ることがあります(Apprentice など、ライセンスの種類によります)。
|
|
122
|
+
- バージョン管理は SVN のみです。
|
|
123
|
+
- Windows 専用です。
|
|
124
|
+
- cmd は実行されるコードです。信頼できる人のアイテムだけをインポートしてください。検査・承認・限界の詳細は [docs/security.md](docs/security.md) を見てください。
|
|
125
|
+
|
|
126
|
+
## ライセンス
|
|
127
|
+
|
|
128
|
+
MIT License です。全文は `LICENSE` を参照してください。
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
# Houdini Node Library (HNL)
|
|
2
|
+
|
|
3
|
+
Houdini のノードを Hscript (`nodes.cmd`) として保存し、独立したブラウザアプリから呼び出すツールです。
|
|
4
|
+
選択ノード、ネットワーク全体、シーン全体を登録できます。登録した内容は、現在のネットワークへの追加、新規シーンへのインポート、シーンを開く、のいずれかで復元します。
|
|
5
|
+
|
|
6
|
+
## 必要環境
|
|
7
|
+
|
|
8
|
+
- Windows
|
|
9
|
+
- Houdini 20.5 / 21.0 / 22.0(動作確認は 22.0.429。20.5 と 21.0 は Python 3.11 用の起動フックを同梱しています)
|
|
10
|
+
- Python 3.11 以降(アプリ本体用。Houdini 内蔵の Python とは別です)
|
|
11
|
+
- TortoiseSVN(任意。SVN でバージョン管理するときだけ。コミット・履歴・差分の画面に使います)
|
|
12
|
+
|
|
13
|
+
## インストール
|
|
14
|
+
|
|
15
|
+
1. pip で導入します(仮想環境の利用をおすすめします)。PySide6 などの依存も一緒に入ります。
|
|
16
|
+
|
|
17
|
+
```
|
|
18
|
+
python -m venv hnl-env
|
|
19
|
+
hnl-env\Scripts\pip install houdini-node-library
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
2. Houdini のユーザー設定に package を導入します。
|
|
23
|
+
|
|
24
|
+
```
|
|
25
|
+
hnl-env\Scripts\hnl-houdini install
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
`Documents\houdini22.0\packages\hnl.json` が作られます。別の版は `--houdini-version 21.0`、設定フォルダが標準の場所に無いときは `--prefs-dir <フォルダ>` で指定します。`hnl-houdini status` で導入状態を、`hnl-houdini uninstall` で撤去(`hnl.json` の削除)ができます。
|
|
29
|
+
|
|
30
|
+
3. Houdini を再起動します。通常どおり起動した Houdini(GUI)では、起動時にブリッジが自動で立ち上がります。ブリッジは `127.0.0.1` だけで待ち受けます。
|
|
31
|
+
|
|
32
|
+
4. アプリを起動します。
|
|
33
|
+
|
|
34
|
+
```
|
|
35
|
+
hnl-env\Scripts\hnl
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
コンソールは出ません。`python -m hnl` でも起動できます。起動済みのときは、新しいウィンドウを作らず既存のウィンドウが前面に出ます。Houdini のシェルフ「HNL」の `Open Library` からも起動できます。
|
|
39
|
+
|
|
40
|
+
`hnl.json` には、いま使っている Python の場所が書かれます。Python の環境を作り直したり移動したりしたときは、`hnl-houdini install` をやり直してください。
|
|
41
|
+
|
|
42
|
+
## 5 分で試す
|
|
43
|
+
|
|
44
|
+
1. `hnl` で起動します。「ルートフォルダを追加してください」と出るので「設定を開く」を押します。
|
|
45
|
+
2. 「追加...」で空のフォルダを選び、OK を押します。これがライブラリのルートです。
|
|
46
|
+
3. Houdini(package 導入済み)でノードを作って選択し、シェルフ「HNL」の `Register to Library` を押します。ノードを右クリックして `HNL: Register to Library` でも開けます。
|
|
47
|
+
4. 登録画面が開くので、名前(必要ならプロジェクト・部署・タグ)を確認して「登録」を押します。
|
|
48
|
+
5. ブラウザでアイテムを選び、「現在のネットワークへ追加」を押します。確認ダイアログで「インポート」を押すと、Houdini にノードが復元されます。
|
|
49
|
+
|
|
50
|
+
詳しい使い方は [docs/user-guide.md](docs/user-guide.md)、保存形式は [docs/format.md](docs/format.md)、セキュリティと信頼モデルは [docs/security.md](docs/security.md) を見てください。
|
|
51
|
+
|
|
52
|
+
## 開発者向け
|
|
53
|
+
|
|
54
|
+
ソースから動かすときの手順です。
|
|
55
|
+
|
|
56
|
+
```
|
|
57
|
+
python -m venv .venv
|
|
58
|
+
.venv\Scripts\pip install -e .[dev]
|
|
59
|
+
.venv\Scripts\hnl-houdini install # ソースの Houdini 側ファイルを読む hnl.json を作る
|
|
60
|
+
HNL.bat # または .venv\Scripts\python -m hnl
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
フォルダ構成:
|
|
64
|
+
|
|
65
|
+
```
|
|
66
|
+
src/hnl/ アプリ本体 (core / vcs / houdini / ui)
|
|
67
|
+
src/hnl/_houdini/ Houdini 側ファイル一式(python/hnl_bridge, python3.11libs, python3.13libs, toolbar, OPmenu.xml)。wheel にも同梱される
|
|
68
|
+
tests/ pytest(tests/houdini は Houdini を使う検証スクリプト)
|
|
69
|
+
tools/ デモライブラリ生成などの補助スクリプト
|
|
70
|
+
docs/ 利用者向け文書、設計メモ、検証結果
|
|
71
|
+
HNL.bat 開発用の起動バッチ(リポジトリの .venv を使う)
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
テストの実行:
|
|
75
|
+
|
|
76
|
+
```
|
|
77
|
+
.venv\Scripts\python -m pytest -q --ignore=tests/houdini
|
|
78
|
+
"%HFS%\bin\hython.exe" tests\houdini\run_tests.py
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
`tests/houdini/` のスクリプトは Houdini が必要です。`run_tests.py` は `hython.exe` で、`run_e2e.py` などは `.venv\Scripts\python` で実行します(実行すると Houdini が起動するものがあります)。
|
|
82
|
+
|
|
83
|
+
配布物(wheel と sdist)は `python -m build` で作ります(`pip install build` が必要)。
|
|
84
|
+
|
|
85
|
+
## 既知の制限
|
|
86
|
+
|
|
87
|
+
- 保存形式は cmd のみです。`.hip` ファイルは扱いません。
|
|
88
|
+
- ハードロックしたノードのジオメトリは保存されません(フラグだけ残り、復元後は空になります)。
|
|
89
|
+
- ノードグループは保存されません。
|
|
90
|
+
- 選択外のノードからの入力接続は、復元後に失われます。選択外へのチャンネル参照は参照切れになります。
|
|
91
|
+
- 絶対パスで書いたエクスプレッションは、復元後も元のパスを指します。
|
|
92
|
+
- ビューポート撮影の画像に Houdini のロゴ透かしが入ることがあります(Apprentice など、ライセンスの種類によります)。
|
|
93
|
+
- バージョン管理は SVN のみです。
|
|
94
|
+
- Windows 専用です。
|
|
95
|
+
- cmd は実行されるコードです。信頼できる人のアイテムだけをインポートしてください。検査・承認・限界の詳細は [docs/security.md](docs/security.md) を見てください。
|
|
96
|
+
|
|
97
|
+
## ライセンス
|
|
98
|
+
|
|
99
|
+
MIT License です。全文は `LICENSE` を参照してください。
|