LoginSignup
2
3

More than 3 years have passed since last update.

Houdiniにおけるデバッグ Vol.3 デバッガー・最適化について

Posted at

はじめに

Houdiniにおけるデバッグ Vol.1 ではHoudiniにおいて様々な情報を表示・確認する方法について書き、HoudiniにおけるデバッグVol.2ではエラーに関することについて書いてきました。
今回はデバッガーについてと最適化について触れていきたいと思います。

Debugger

HoudiniEngine Debugger

HoudiniEngine DebuggerはHoudini Engineを使用したアプリケーションに対するデバッギングサーバーのことです。(オンラインヘルプより)
HoudiniEngineはMaxonが開発をしているものも含めて5つのプラグインがあります。(Unity版、UnrealEngine版、Maya版、3dsMax版,Cinema4D版)(Houdini Engine APIを利用してカスタムプラグインを開発することも可能です。)
プラグインを介して各ホストアプリケーションでHDAを利用することが可能となるわけですが、HoudiniEngine Debuggerを使うことでHoudini(GUI)内でどのような処理が行われているかが逐次確認できるので開発のトライアンドエラーがしやすくなります。
使用方法は Window>Houdini Engine Debuggerから起動してお使いのマシン、ネットワーク環境に合わせてサーバーの設定をしてStartします。
houdiniengineDebugger01.png
次に使用するアプリケーション側でHodini Engineを立ち上げて Session Configuration から先ほどHoudini側で設定したサーバーの設定と同じ設定をして Start Session します。
※画像は3dsMaxのHoudini EngineのUI。
houdiniengineDebugger02.png
正常に接続できると Houdini Consoleに Client connected と表示されます。
houdiniConsole.png
使い方やデバッグの仕方については下記に紹介します参考のリンクの記事を参照ください。

参考

Houdini Engine Debugger
houdini engine maya debugging menu
Houdini Engine for Maya : デバッグの仕方
Houdini Engine for UnrealでHDAの挙動を確認するためにデバッガーセッションを使用する
Houdini Engine for Unrealデバッグ
Houdini Engine For Maya を調べてみる - Qiita

VEX Debugger

プリントデバッグ

Houdiniにおけるデバッグ Vol.1でも紹介しましたが PrintfHoudini Consoleに出力しながら作業します。

参考

JoyOfVex14
Houdini: Wrangleがわからない - 完結編
Houdini Tricks — QuickTip — Debugging VEX Code

Python Debugger

Python は標準ライブラリーにデバッグ用のモジュールpdbがあります。これを利用してデバッグする方法がDEBUGGING PYTHON IN VFX APPLICATIONSに紹介されています。
Pythonのデバッガーについてはこちらの紹介にとどめさせていただきます。

HDK Debugger

HoudiniではC++でプラグインを作成することが可能です。VSCodeで開発をしてデバッガーを設定する方法がLAPLACIAN EIGENVECTOR PLUGIN FOR HOUDINIに紹介されています。
HDKのデバッガーについてもこちらの紹介にとどめさせていただきます。

参考

HDK
HDKについて

最適化

作業をしているとノードが見にくくなったり、処理が遅くなったりしていやになってくることがあります。そんな時、最適化をして高速化を図ったり、整理して処理の流れを見やすくしたりします。

パフォーマンスモニタ

performancemonitor.png
パフォーマンスモニターを使うとクック時どこが重い処理なのかがわかり、どこを改善すればよいかの助けとなります。

クッキングコントロール

  • ESC でクックをキャンセルできます。
  • 右下のシミュレーションメニュー(脳みそアイコン)でシミュレーションの有効無効をコントロールできます。
  • Update Menu パラメーターの変更による再クックするタイミングを選択することができます。
  • ノードをロックすることで上流をキャッシュすることができ、高速化できます。

リファクタリング

Houdiniにおけるデバッグ Vol.2 の整理の項であげたように適度に整理していくことは修正、変更、引継ぎなどが発生するプロダクションワークにおいては重要なことです。作業中はブランチを作っていろいろ試したりなどあると思いますが、落ち着いたタイミングで整理しておくことが必要と思います。

参考

Refactoring Houdini Node Network – メンテナンス性の高いノードネットワーク構築のために

キャッシュ

ジオメトリーがアニメーションする場合、高レゾルーションであればあるほどクックに時間がかかります。一度bgeoに書き出すことで上流を処理させず軽量なシーンにすることができます。

参考

ジオメトリのキャッシュ化

おわりに

今回はデバッガーと最適化について書いてきました。
PythonやHDKについてはまだ詳しく分からないというのもあり、そのあたりについてはご紹介にとどめてしまったのでそのあたりは心苦しいのですが、機会があれば追記したいと思います。
次回以降の予定としては解析関係を考えています。
自分用のメモも兼ねているので拙い部分もありますが何かの参考になれば幸いです。

2
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
3