建築業界向けHoudiniのススメ :  Introduction of Houdini to Architecture

[xRArchiアドベントカレンダー2019](https://adventar.org/calendars/4686)、19日目の記事です。
この記事ではまず、Houdiniへの勧誘を行います。
その後、Houdiniを使って作った↓これらについて軽く解説します。
![ezgif-4-62f41a988b7c.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/239573/0d510db8-dd64-1b96-34b2-2d4f14ce17df.gif)


# はじめに
久しぶりQiita。ドイツで建築学生をやっているTaroです。
ここ2年間ほどHoudiniにどっぷりハマり、挙げ句に昔の夢？をこじらせてゲーム業界への就職活動中の32歳(1児の父)です。
xRArchiでの活動実績はほぼないのですが、建築界隈にHoudiniの布教活動ができたらと思いアドカレに参加しました。(今後の活躍に乞うご期待ｗ)

### 免責事項
この記事は、昨年のHoudiniアドカレに引き続き
**"建築関係の人に、Houdiniを広めたい！"**
と思って書いたものです。
それゆえに技術的な内容に乏しいかも知れませんが、ギリギリQiitaのガイドラインを守っているかと思います。

### この記事のターゲット
- **建築関係の方で、最近"Houdini"をよく耳にする方。**

- **Houdiniでどんなことが出来るのかなんとなく知りたい方。**

- **Houdinistの方で、建築絡みの読み物として単純に楽しんでくれる方。**


### 記事の内容
- Houdiniの紹介
- この記事のメインテーマ
- 作例紹介&簡単な解説
    - 屋根自動生成&PDG
    - Vessel
    - 天窓と柱の配置
    - ボリュームスタディ可視化
    - ドーマー窓
    - ファサードに窓をばらまく
    - リブヴォールト交差部
    - エボリューションタワー
- まとめ
- 最後に軽く自己紹介

# Houdiniの紹介

### とにかく始めよう
とにかく楽しいので今すぐ始めましょう。

Houdiniはもともと映画業界のエフェクト分野で広く使われてきた3Dソフトウェアです。
歴史は長く、前身のPRISMSから数えると30年以上に渡って映画業界で使われてきました。
そのため、"Houdini"でググるとVFXでの使用例が多く表示されます。しかし、個人的には建築業界で参考にしやすいのはゲームでの使用例だと思います。
とりま、この↓Reelを見て下さい。
- [***2019 Houdini Games Reel***](https://www.youtube.com/watch?v=cmZFRwJ7DgY)
世界でゲーム開発にHoudiniが使われている例です。主に背景のモデリングやエフェクトなどに使われている様です。
楽しそうじゃないですか？可能性を感じませんか？
答えがYESなら、今すぐHoudiniをダウンロードしましょう！無料で使えます。

その他の雑多なHoudini推しの理由は、Twitterのハッシュタグ ["#Houdiniのいいところ"](https://twitter.com/search?q=%23Houdini%E3%81%AE%E3%81%84%E3%81%84%E3%81%A8%E3%81%93%E3%82%8D&src=typed_query&f=live) に個人的にまとめてます。
誰かに"Houdiniはいいぞ" と勧める時の材料に是非使ってみて下さい。

### Houdini入門者用リンク
最初に触る前にここらへんの記事↓を眺めておくといいかも。
- [***Houdini超々入門***](https://techblog.kayac.com/houdini-super-super-introduction)
- [***Houdiniやろうぜ！(2)【超のつく初心者向け】***](https://houdini-kitchen.hateblo.jp/archive/category/Houdini%E8%B6%85%E5%88%9D%E5%BF%83%E8%80%85%E5%90%91%E3%81%91)

GHを触ったことがある方は、去年のアドカレの拙記事↓もちょっとは参考になるかも知れません。なにげに4000回以上見てもらってるみたい…そろそろ更新しなきゃですね…
- [***Houdiniで建築***](https://qiita.com/TaroOzaki/items/2e0727c3daccb9158e7e)
あと、今年のHoudiniのアドカレには階段のモデリングだけにテーマを絞った記事↓を書きました。こちらもGIFたっぷりです。
- [***階段のプロシージャルモデリング***](https://qiita.com/TaroOzaki/items/f249ae4b5e8dc46f16f3)

少し使い方がわかってきたら現役JKのHoudinist、さつき先生のチュートリアル↓をオススメします。
- [***理論的な知識をもってHoudiniを使う***](https://www.youtube.com/playlist?list=PLAsWwUHApt3MVF8ByjGNFTwZ2DYUG8NGG)

# この記事のメインテーマ
### Houdiniの"具体的な"魅力
出来ることが多岐にわたるHoudiniは、様々なかたちで紹介されるので実際に何ができるのかなかなか理解しづらいと思います。
そこで昨年の拙記事では、Houdiniの"具体的な"魅力を以下の4点挙げ
- **ジオメトリ間のデータのやり取りが簡単にできる。**
- **データが正確で透明性がある。**
- **繰り返しスタディできる。**
- **複雑な形を簡単に作れる。**
のうち、"ジオメトリの～" をメインのテーマに据えました。

この4点は建築出身の僕が実感していることです。
したがって形態を生成することに重きを置く、建築やデザイン,モデラーの方々には是非この4点に着目して導入を考えてみてはいかがでしょうか。

### 繰り返しスタディできる
さて、今回は**" 繰り返しスタディできる。 "** に焦点を当てたいと思います。
2019年までに僕がTwitterに投稿したものを使って、この魅力についてお伝えできればと思います。

できるだけ建築に関係ありそうなものを選びましたが、建築的にはかなり雑です。温かい目で見ていただければと思います。
また、建築ビジュアライザーや背景モデラーなど仕上げが得意な人がHoudiniを使えば、高品質の一枚絵や映像,リアルタイム環境が作れます。
僕は、まだそのあたり修行中なので、こちらも温かい目で見てくだされば幸いです。

# 作例紹介&簡単な解説

### アニメーションが示す無限大の可能性
2019年までに作ったもので建築っぽいものを紹介します。すべてGIFアニメーションになっているものを選びました。
アニメーションにした理由は、バリエーションを無数に生成できることを可視化したかったからです。

Houdiniは作業したデータが、**"すべて"** 数珠つなぎのようになって保存されていきます。これをHoudiniではネットワークと呼びます。
このネットワークを辿れば、作業の**どの時点の情報にも変更加えることができます**。
また、Houdiniでは**あらゆるところに変数のスライダーを設定できます**。
つまり、**あらゆる作業工程のありとあらゆる時点,場所にスタディ用のUIを設けることができる**イメージです。

アニメーションという手法を使えば、このUIを直接手で動かしたりキーフレームを打ったりすることで、ジオメトリのバリエーションを時間軸方向に並べてスタディを可視化できます。
また、このUIはスライダーを動せるだけではありません。例えば…
もう一つのUIを作成して紐付けたり、複雑な計算式を直接入力したり、他のジオメトリから情報を持って来たり、外部デバイスから入力したり、シュミレーション結果を入れたり…
つまり、***可能性は無限大なのです。***

世界はHoudiniの持つ無限の可能性に気づき始めています。
今やエンタメ業界だけではなく、僕の知る限りでも数学者,天文学者,建築家,ファッションデザイナー,芸術家など、様々な職種で使われ始めているHoudini。
是非、あなた色にHoudiniを染めて下さい。そして、それをSNSで発信するのです！

### 解説について
さあ、宗教っぽくなってきたところで色々と紹介していきたいと思います。

各画像には簡単な解説を付けました。その中でアニメーションをドライブするような重要な変数には、"★" マークを着けました。
解説とGIFを見比べることで、変数でジオメトリをアニメーションさせて " 繰り返しスタディする " ということが伝われば幸いです。

---
### 屋根自動生成
平面概形を入力すると、UVの綺麗に載った屋根(寄棟と切妻)を自動生成するツールを作りたかった。
![ezgif-4-07e1a7d4fc0b.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/239573/8ad43d5e-7562-d9cb-1b55-f6a0e3c29c4a.gif)
***解説***
0, 平面概形を入力★する。
1, 内側にオフセット★する。
2, Voronoi分割を用いて、スケルトンを生成する。
3, 2の分割の際、切妻に設定したいエッジを除外して分割を行う。
4, スケルトンを用いて棟の高さを求め、垂直方向に持ち上げる。
5, スケルトンをガイドに面とUVを生成する。
6, 軒の部分がUV空間上で水平になるように、UV座標を回転させる。
7, 入力を変えて出力結果を確認する。

---
### 屋根自動生成ウェッジング
PDGという機能を少しだけ試したかった。
様々な変数ごとのバリエーションを自動的にコレクションして、動画にしたかった。
![ezgif-1-c26f17499e55.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/239573/9f4517f4-5032-7d60-c4f2-ecdc5df7c3e6.gif)
![ezgif-4-02892ee3fe01.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/239573/47138a88-a7e1-3b7f-50fa-f84947297386.gif)
***解説***
0, 各工程わかりやすくビジュアライズしたものをスイッチ★ノードに束ねる。
1, 中庭の有無の両パターンをスイッチ★ノードに束ねる。
2, 入力ジオメトリをすべてスイッチ★ノードに束ねる。
3, 0-3のスイッチ切り替えをPDG内のウェッジノードにて自動制御する。
4, キャッシュに保存し、切り替えを現行フレームにて制御する。
5, カメラのキーフレームを打つ。

---
### Vessel レシピ1
個人的に大好きな建築家(Thomas Heatherwick)の話題作なので、真似したくなった。
断面形状を任意で操作出来るようにしたい。
メインの構造体を数値やランプ制御のみで生成し、付随する構造体や階段,手すりなども自動生成したかった。
![bandicam 2019-08-05 18-37-33-393.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/239573/a2d99945-d77b-bcf5-2c25-0df9b3e39adc.jpeg)
![ezgif-4-f9f119560173.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/239573/d72e6073-77a8-109e-35cd-1be5114c8492.gif)
***解説***
0, 好みの階数★,階高★を設定した一本のポリラインを作り、垂直方向に法線を設定する。
1, 0の各頂点にpscale(大きさ)というアトリビュートを、ランプ制御★できる状態で設定する。
2, 元になる多★角形ポリラインを用意し、1の点に複製配置した後、各頂点にBevel★をかける。(↑のアトリビュートを適用させる)
3, 2を同じ位置に複製し、上階下階と隔辺毎に0で指定した階高/2上下に移動、それぞれを上下階のそれとスナップさせる。
4, 3で調整したポリラインの各頂点に、断面用のscaleアトリビュートをランプ制御★できる状態で設定する。
5, 2の各頂点を垂直に結ぶガイドジオメトリを作成、その接線から変形具合を取得し、断面形状を決定する。
6, 5で決定した断面上下分割し、4に沿ってスイープする。
7, 5で生成したサーフェスを、マージして構造体を完成させる。
8, 3や6を利用して、付属するものを生成する。
9, ★へのを変えて出力結果を確認する。

---
### Vessel レシピ2
SketchUpで簡単なアプローチでVesselを作ってるのを見かけて、Houdiniで真似してみた。
トポロジーの綺麗さ重視で、プロポーションや細かい制御は度外視。
![ezgif-4-26f92d63cbda.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/239573/02369841-eb73-4afb-badf-389257f89009.gif)
***解説***
0, レシピ1の4のポリラインを各階同一形状で用意する。(筒状でいい。scaleアトリビュート必要。)
1, 各階でスイープする。断面はレシピ1と同じく上下分割したもの。
2, 1をマージさせる。
3, 2をFFDを使って目的の形に変形させる。

---
### 天窓と柱の配置
洞窟のようなプールに、柱と天窓をランダムに配置したかった。
柱や天窓は、洞窟のように天井や床と一体化させたかった
![1550099580EYfFqpZL0JK0eRX1550099575.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/239573/070c2ad1-6d98-3ff5-1990-2eaf727e191c.gif)
***解説***
0, 柱と天窓を配置する範囲を、ボリュームを用いて設定する。
1, 0の範囲内に重ならないように点をばら撒く★。
2, 柱と天窓の割合を設定する。
3, 柱に設定した点には用意した柱のモデルを、天窓にはボリュームののモデルに穴を開ける。
4, 天井,床なども含めすべてを点群化→ボクセル化した後、ポリゴンに戻すことですべてを一体化させる。
5, ばら撒き方を変化させ、モデルの変化を確認する。

---
### ボリュームスタディ可視化
学校の課題でスタディを見せろと言われ作成した、ボリュームスタディの簡単な資料。
スタディ番号や床面積が、モデルと連動して切り替わるようにした。
![studies.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/239573/d501cf0a-8071-c5ba-dfbc-85925a06914b.gif)
***解説***
0, ボリュームモデルを複数用意する。
1, ボリュームの厚さ★によって、階数を判断★しながら床面積を計算する。
2, スタディ番号と1で計算した床面積をジオメトリに変換、画角的に丁度いい場所に配置する。
3, ボリュームモデルと2の文字ジオメトリを一つにまとめ、すべてのスタディをスイッチノードに束ねる。
4, スイッチを切り替え★つつ、ボリュームが切り替わると情報も切り替わることを確認する。

---
### ドーマー窓？(独:Fledermausgaube)
ドイツやオランダの古い建物の屋根によくある？タイプの窓を、現代的な素材感で再現したくなった。
任意のサーフェスにランダムに配置したかった。
![ezgif-4-81368c90c1d0.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/239573/1b03a97e-c18e-db1c-d67b-7e4d972275a8.gif)
***解説***
0, 元になるサーフェスを用意する。(ローポリ目で)
1, 窓の位置をランダム★に決める。
2, 窓の周りに切り込みを様々な方向★に入れる。
3, 切り込みの真ん中の頂点を、サーフェスに対して垂直,及び水平に移動★させる。ついでにノイズ★もかける。
4, 各所に好みのCreaseWeightをかけて、Subdivideする。

---
### ファサードに窓をばらまく
ドイツによく見られるタイプの窓(2方向に開くタイプ)を想定した。
窓の開閉や開く向き、形状などを手作業なしに操作したかった。
![ezgif-4-87553b8fe781.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/239573/0e33d133-cc75-02f8-5264-d67b4edaee05.gif)
***解説***
0, ファサードの元になるサーフェスを用意する。
1, 窓にするポリゴンをランダム★に四角形を選び出す。
2, 窓の分割数を決める。★
3, 各ポリゴンのどの辺★を軸に窓を回転させるかを設定する。
4, 回転角度★を設定する
5, 0のサーフェスを変形★してみて、窓が変形に追従することを確かめる。
6, 窓のポリゴンから枠を生成する。

---
### リブヴォールト交差部
ヴォールト屋根の丸みを交差部単独で形状操作したかった。
実際のヴォールト屋根の交差部は、単にジオメトリを交差させたものよりも複雑な形状になっていることに気がついたことから。
![ezgif-4-a11686175542.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/239573/5b96149c-ebec-64e0-1699-9d54d5cfca42.gif)
***解説***
0, 交差部をBooleanを用いて生成する。(ローポリ目で)
1, 頂部を柔らかく持ち上げる。
2, 頂部の一点のみに頂点モードでBevel★をかける。
3, 各所に好みのCreaseWeightをかけて、Subdivideする。
4, アニメーションがかかっていることを確認する。

---
### エボリューションタワー
モスクワで建設中の超高層ビル。
単純な構造のビルだったので、Twitterで唐突に始めたスピードモデリングチャレンジ。
ノイズによって捻じることで"パラメトリック"感を消したかった。
![ezgif-4-4f007bb3e283.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/239573/6ed6351e-9eac-a921-becf-812a28c75642.gif)
***解説***
0, 好みの階数,階高を設定した一本のポリラインを作り、垂直方向に法線を設定する。
1, 0の各頂点に座標を元にしたノイズ★を載せた、pscale(大きさ)とup(向き)というアトリビュートを設定する。
2, スラブの元になる四角ポリゴンを用意し、1の点に複製配置する。(↑のアトリビュートが自動的に適用される)
3, 2のポリゴンの元の頂点番号を元に、外壁のポリラインを生成する。
4, 3のポリラインをチューブ状に、スラブに厚みをもたせたものに差し替える。
5, アニメーションがかかっていることを確認する。


---
以下、メディアのアップロード制限かかってしまいましたので、また後日。(要望あれば、程度のモチベーション)

パンテオン
波打つファサードに窓を埋め込む
映画Valerianに出てきた宇宙船
現在進行中のプロジェクト


# まとめ

具体的にどうやるのかわからない部分が沢山あったと思いますが、HoudiniのUIは人によってはとっつきにくいかも知れないなと思い、思い切って省きました。実際、僕は操作方法のところはそこまで重要じゃないと考えています。
### 重要なのはHoudiniの無限大の可能性を使ってやろうというマインド、ただ一つです。
もし興味が湧いたなら、日本語でも沢山教材があるのでどんどん掘っていって下さい。そして、是非SNSで発信して下さい。

では、ここまでスクロールしてくださってありがとうございました。
学習成果シェアのモチベーションに繋がるので、Twitterなり他のSNSなりでリアクション頂けると嬉しいです。

# 最後に軽く自己紹介
ドイツの美大で建築を学んでいます。現在M2。ゲーム業界に行きたいです。
日本では土木と建築を学び、建築施工管理と基本設計～確認申請業務を一通り経験。
ドイツでは、都市設計家や現代アーティストの元でコンペや制作のお手伝いなど。

メインツールの遍歴は下記の通り。
ArchiCAD → Rhino+GH → C4D → Houdini
全部で5年間程、Houdini歴は2年程。

ドイツに友達いなくてコミュニケーションに飢えてます。
興味が似ている方、Twitterで絡んでくれると喜びます。