Houdiniモデリング初心者向け小技集。

ここでは、Houdiniモデリング初心者（自分）が簡単な事だけど、Houdiniではどうやってやれば良いのか分からずに、結構右往左往したものを紹介したいと思います。
わりと定石のような感じですがあまり明示的に文章では紹介されていないようです（個人的な観測のみに基づく意見）。

# 選択したエッジでポリゴンを切る(頂点を独立させる) - Edge Cuspノード
エッジを選択してそこで切る（独立したポイントを作る）には**edgecusp**ノードを使う。
http://www.sidefx.com/docs/houdini/nodes/sop/edgecusp.html

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/336581/83368a0a-ee13-d359-3434-d4174d7f258a.png)

## 使用例
上の参考画像の場合です。

1. **grid**ノード作成。
2. **group**ノードを追加しで切り取るedgeグループを作成。
3. **edgecusp**ノードを追加し**"Group"**にedgeグループを指定。
4. **edgecusp**ノードの**"Cut Boundary Points"**のチェックを入れる。
5. **explodeview**ノードで別れていることを確認。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/336581/1499ff65-49ae-63d5-aad9-7efb83352bfb.png)

**"Cut Boundary Points"**のチェックを入れないと、端のポイントまで切り取ってくれません。

# ポリゴンの辺だけ残す("shared edge"を消す) - Divideノード

**Divide**ノードの**"Remove Shared Edges"**を指定すれば外だけ残してエッジ消せる。
http://www.sidefx.com/docs/houdini/nodes/sop/divide.html

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/336581/10a33f82-7451-192d-1fd2-8b7997ab6feb.png)


## 使用例
上の参考画像の場合です。

1. **grid**,**scatter**,**clusterpoints**,**voronoifracture**を使ってグリッドを分割。
2. **scatter**の**"Force Total Count"**は100にする。
3. **voronoifracture**の**"Copy Cell Point Attributes"**のチェックを入れて**"To Piece Points"**に"cluster"、**"To Piece Primitive"**に"Cd"と入れる。(破片をcluster毎にまとめる準備、Cdはわかりやすさのため付加)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/336581/195ed45e-2b38-4ceb-a433-d5a378b9d18a.png)
4. **fuse**を追加し、**"Match Attribute"**に"cluster"と入れる。(clusterごとに頂点を結合)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/336581/592d2baa-5ce2-b2f0-9d16-b9c8b976a3c1.png)
5. **divide**ノードを追加し、**"Remove Shared Edges"**にチェックを入れる。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/336581/ad926100-3a5b-4e9f-c158-c46786a14ef7.png)



# 選択したエッジをカーブに変換 - Dissolveノード
**Dissolve**ノードを利用すると出来る。
参考：https://www.sidefx.com/forum/topic/14838/?page=2#post-267545
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/336581/423b7f4b-b477-b718-412c-c752b08f5361.png)

##使用例
上の参考画像の場合です。

1. **torus**,**clip**,**group**を使って、カーブに変換したい場所を選択。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/336581/161f69d2-f695-f4a8-fe22-ffd1a5c7d0b8.png)
2. **dissolve**ノードを追加して、以下の通りパラメータを設定。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/336581/215c89e6-c62d-5926-b4dc-0714fa2e0639.png)
  - **"Group"**に、エッジグループを入れる
  - **"Operation"**を、**"Delete Non-Selected"**に。(選択以外を削除)
  - **"Remove InlinePoints"**のチェックを外す。(これを外さないと頂点が消えてしまいます。)
  - **"Bridge"**を**"Create Disjoint Polygons"**にする。(これを**"Create Bridge Polygons"**にすると、ブリッジ用の線が作られます)
  - **"Create Curves When Dissolving Boundary"**にチェックを入れます。(これを入れないと、ループエッジではない場合にカーブが作成されませんでした)
3. polypathとpolywireを追加して完成。polywireする場合はpolypathしなくても良いかもしれません。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/336581/c7c44cbb-e034-b8fc-9c9b-9ea6fee8cc86.png)

### polycutも使える(2020/08/31追記)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/336581/1ace0936-7b1e-0e06-9e95-af4e82cec300.png)
**dissolve**ノードの代わりに**polycut**ノードを使っても同じ事が出来るようです。(Houdini 18.0.532で確認)
**polycut**ノードの**"Type"**を**"Edge"**に変更し、**"Cut Edges"**に"!エッジグループ名"を入れます。(先頭に!を付けるのを忘れずに)

# サンプルファイル
今回のサンプルファイルをUPしておきます。
https://www.dropbox.com/s/e2cpjsy1g0j86yo/qiita_sample190426.zip

何か間違いや質問等があればお気軽に！