チャネルデータの書き出し
チャネルデータをHscriptと Python で書き出す方法を説明。
例としてパーティクルエミッターを作成し、このときに発生する パーティクルの数を書き出す。
使用バージョン: Houdini 13.0.566
- パーティクルの作成
- Null ノードの追加
- パラメータの追加
- パラメータへのエクスプレッションの追加 (Hscript)
- Python で記述
- ネットワークエディタで、出来た null1 を Ctrl+C、 Ctrl+V で複製。null2 が出来る。
- null2 の Number of Particles ラベル上で RMB クリックし、Expression -> Change Language to Python とする。
切り替えるとテキストフィールドの背景色が赤くなる。 - Python での書き方としては、いくつかあり
- len(node("../import_location").geometry().points())
- len(node("../import_location").geometry().iterPoints())
- len(pwd().inputs()[0].geometry().iterPoints())
- チャネルデータの書き出し
- Python
- メインメニューの Windows-> Python Shell を実行し、Pyhthon Shell ウィンドウを開いたら、
>>> for x in range (1, 60): ... hou.parm('/obj/location_particles/null3/pnum').evalAtFrame(x)
とすれば、最初の60フレームのチャネルデータがプリントされる。 - ファイルに書くには、Pythonの file() や write() を併用。
- メインメニューの Windows-> Python Shell を実行し、Pyhthon Shell ウィンドウを開いたら、
- Hscript
- Windows->Hscript Textport から以下の一行で書き出すことが可能。
chwrite -f 1 60 /obj/location_particles/null3/pnum c:/tmp/chan.chan
chwrite を使う場合、拡張子は、 .chan か .bchan のみ。 .txt や .move または .csv にするには書いた後に変更する必要がある。
- Windows->Hscript Textport から以下の一行で書き出すことが可能。
- まとめ
- 上記の方法は、パーティクルの数だけに限らず、あらゆる数値チャネルに利用することが可能。
- Hscript Textport, Python Shell ともに補完が効くだけでなく、パラメータビューからパラメータのラベルをドラッグ&ドロップしてパスを記述することが可能。
- 大きなシーンまたは重いシーンで実行する場合、キャッシュに書いた後でシミュレーションがかからない状態にしてから実行する。
- 参考リンク: Houdini 製品構成
- Python
0 件のコメント:
コメントを投稿