はじめに
Houdiniを初めて触る方に教えていると、「ハードエッジってどうやって付けるんですか?」とよく聞かれます。
そこで本記事では、Houdiniにおけるハードエッジの扱い方と、設定方法を解説します。
Houdiniにおけるハードエッジの扱い
Mayaでは、ハード/ソフトエッジの情報はエッジそのものに属性として保存されています。そのため「このエッジをハードにする」という操作が直感的に行えます。
一方、Houdiniではエッジにハード/ソフトという概念は存在しません。代わりに、頂点法線(Vertex Normal)の向きによって、結果としてハードエッジかソフトエッジかが決まります。
- 共有するポイントの頂点法線の向きが異なる → ハードエッジ
- 頂点法線の向きが同じ → ソフトエッジ
つまり、Houdiniでは「エッジをハードにする」のではなく、頂点法線を分離することでハードエッジに見せている、というのが本質です。
Mayaでも内部的にはハードエッジの情報を元に頂点法線を分離していると思われます。
Point NormalとVertex Normal
HoudiniにはPoint(ポイント)とVertex(頂点)という2つの概念があります。

- Point:位置情報を共有する点
- Vertex:プリミティブ(面)ごとに存在する頂点
もし法線(N)をPoint属性として持たせた場合、そのPointを共有しているすべてのポリゴンで同じ法線方向が使われます。この状態では、法線を分離できないため、結果としてハードエッジを作ることができません。
これは法線に限らず、以下のような属性も同様です。
- 法線(Normal)
- UV
- 頂点カラー
これらはポリゴンごとに異なる値を持つ必要があるため、Vertex属性として保持される必要があります。そのため、HoudiniにはVertexという仕組みが存在しています。
Houdiniのハードエッジ設定方法
Houdiniでハードエッジを扱う場合、基本的に使用するのは Normal SOP です。

Normal SOPは、ポリゴンの向きや角度に応じて法線を生成・再計算するノードです。
このノードを使い、Cusp Angleを調整することで、
- 鋭角な部分だけをハードエッジ
- なだらかな部分はソフトエッジ
といった制御が可能です。
狙ったエッジだけをハードエッジにする方法
「このエッジだけをハードにしたい」という場合は、以下の手順を取ります。
- エッジグループ を作成する
- Normal SOPのGroup 欄に、そのエッジグループを指定
- Cusp Angleを0に設定
Cusp Angleを0にすることで、指定したエッジ部分の法線が必ず分離され、確実にハードエッジになります。
Normal SOPのWeighting Method
Normal SOPを使う際に、非常に重要なのが Weighting Method の設定です。
基本的にBy Face Areaに変更するのがおすすめです。

特に質感が付いた状態だと大きく見た目に影響するので、必ず設定するようにしましょう。


まとめ
- Houdiniではエッジにハード/ソフトの情報は存在しない
- ハードエッジは「頂点法線の分離」によって表現される
- Point法線ではハードエッジは作れない
- ソフトエッジ、ハードエッジの制御はNormal SOPを使う
- 狙ったエッジだけハードにしたい場合は Edge Group + Cusp Angle 0
- Weighting Method は By Face Area を推奨