はじめに
Houdiniでいろいろノードを組んだりVEXやPythonでコーディングしていくといつの間にか複雑になってしまいがちです。そんな複雑になったシーンでエラーの原因を探ったり、修正を加えて行くのは至難の技となることがあります。そこでHoudiniでのデバッグの方法について何回かに分けて書いていきます。今回は様々な情報を確認する方法について取り上げます。
デバッグが必要になる場面
- エラーが起きている時
- 想定した動作にならない時
- 処理が遅く最適化したい時
表示・確認系
まずは状態を知ろうということでいろいろな情報を教えてくれるものを紹介します。
尚、各見出しにHoudiniのヘルプをリンクしています。
Display Options マーカー
Display particles as Disk
パーティクルのサイズは pscale
で設定したものを Diskで可視化できます。
Geometry spread Sheet
Geometry spread Sheet でアトリビュートの確認をします。
各コンポーネント毎で確認ができ、アトリビュートが多いときには検索窓から探すと該当のもののみ表示します。
またグループもここで確認でき group:test
のように接頭に group:
が付きます。
Node Info
各ノードをマウスオーバーした時に出るノードリングの左側にある i
をクリックすると出現。
ここで確認できることはノード名、ノードパス、ジオメトリ情報、アトリビュート、グループ、Time Dependent情報、クックタイム、作成時/編集時情報、HDAの格納ディレクトリーパス、そしてコメントの追加が可能です。
Badges
ノードに関するステータスを表示します。
いくつか種類がありますが、特に Error
と Warning
に気をつけます。どこがおかしいのかを表示してくれて、また不具合が起きている箇所に飛ぶことができるので便利です。(エラーメッセージにに該当ノードパスが表記されている時)
アトリビュートの@Cd や@Alphaを使用する
カスタムアトリビュートを作成してそのアトリビュートを利用してジオメトリに編集を加えたい時、正しく反映されているかを @Cd
や @Alpha
を利用して確認することができます。
例にあげたものは Attribute Transferを使用しているので @Cd
で設定することはできますが簡単な例示のためにこちらをあげました。 動いている球体にactive
というアトリビュートを作成してGridに移し、 active = 1
の時にGridにノイズがかかるようにしています。どの部分が active
に変わるかを @Cd
や @Alpha
を利用して目視できるようにしました。
Visualizersで可視化
Visualizers
Visualize
特定のアトリビュートをビジュアライザーを利用して可視化することができます。
利用方法としてはNodeで追加するか、もしくはディスプレイオプションからも設定ができます。
例はポジションのY値を height
アトリビュートに格納したものを可視化しました。調べたいノードを選択している状態で x
を押すと自動で Visualize
ノードが接続されます。
Printf
VEXの処理をHoudini Consoleに出力します。
書式は printf(“フォーマット文字列“,引数 )
でフォーマット文字列でフォーマットを指定できます。
(%f,%i,%sなど)
単純なものであればアトリビュートを確認したりで可能ですが、引数を渡したりなど複雑化すると途中でプリントデバッグするといいかもしれません。
おわりに
各種データを把握することはデータを構築し、またデバッグするにあたって重要なことです。
今回は表示や確認する方法について書いてきました。次回以降でエラー表示に関することやエラーハンドリングなどについて書いていきたいと思います。
参考
Houdini Tutorial: Send debug output (VEX) to the Houdini Console