Houdiniはノードを組み合わせてプロシージャルにモデリングができる3Dソフトです。
Houdiniは多機能なソフトで、モデリングだけでなく、マテリアルの作成、物理シュミレーション、レンダリングまで幅広くこなしますが、 今回はHoudiniのモデリングとレンダリングの機能に焦点をあてて勉強しました。
作ったもの
基本操作の学習
まずはチュートリアルや本を参考にして、Houdiniの基本操作に慣れるところからはじめました。
参考にしたチュートリアルや本は後半で紹介します。
#Houdini を触り始めた。球を歪めてアニメーション。 pic.twitter.com/4co2mhcP1E
— がむ🌷🌴 (@gam0022) 2018年4月30日
なんかキモいのができた? #Houdini pic.twitter.com/ERUHkk7xRA
— がむ🌷🌴 (@gam0022) 2018年4月30日
Rigidbodyのテスト #Houdini pic.twitter.com/2RChtxhesa
— がむ🌷🌴 (@gam0022) 2018年4月30日
#Houdini で動画を出力するテスト。
— がむ🌷🌴 (@gam0022) 2018年5月1日
連番画像を出力してMPlayのExportで無圧縮のaviが出力できるのでフリーソフトでMP4変換した。 pic.twitter.com/rjcWPeKoVH
幾何学的な図形+環境マップによるライティング
これ以降はオリジナルの作品の紹介になります。
手順
- Boxに対してPoly Extrudeノードで変形
- Poly Extrudeのパラメータを変化させてアニメーション
- Copy to PointsノードをつかってSphereの頂点上にBoxを配置
- 環境マップをつかったライティング
- Lights and CamerasタブからEnviroment Lightsを追加
#Houdini 楽しいなぁ 😊 pic.twitter.com/KwG5YeNkAQ
— がむ🌷🌴 (@gam0022) 2018年5月4日
フラクタル
有名な3Dフラクタル図形である、メンガーのスポンジをつくりました。
手順
Copy to Pointsノードをつかって再帰的にBoxを配置しました。
- コピー先のPointsの生成
- Axis DivisionsをXYZすべて3にしたBoxからPointsを生成
- Point WrangleノードでVEX(Houdiniで使えるプログラミング言語)で以下の処理を記述
mernger_sponge
グループの作成- コピーされたBoxの向きを揃えるために各Pointsの法線を固定
- Copy to Pointsノードの
Target Point
にmernger_sponge
を指定してBoxをコピー - 以下の操作を3回繰り返す(再帰処理)
- コピー先のPointsのスケールを3倍に調整
- Copy to Pointsノードの入力を直前のCopy to PointsノードでコピーしたBoxの集合にする
- 最後にNormalノードで法線を再計算
Point WrangleノードのVEX
// menger_sponge グループの作成(中心のPointはptnumで除外)
if (!(i@ptnum == 4 || i@ptnum == 13 || i@ptnum == 19 || i@ptnum == 22 || i@ptnum == 24 || i@ptnum == 25)) {
@group_menger_sponge = 1;
}
// 法線の向きを揃える
@N = {0, 0, 1};
#Houdini でフラクタル図形(Menger Sponge)を作ってみた。
— がむ🌷🌴 (@gam0022) 2018年5月5日
少しずつSOPとVEXを理解してきた気がする。 pic.twitter.com/Wip7DbkGN8
skylightのみでライティングしてもそれなりの見た目になる pic.twitter.com/znuSCzV9oT
— がむ🌷🌴 (@gam0022) 2018年5月5日
Point Wrangleノードの @N = {0, 0, 1};
の部分をコメントアウトすると、
Copy to PointsノードでコピーされるBoxの向きが外向きになって、
元のメンガースポンジの整然とした感じのフラクタルから、すごい複雑な感じのフラクタルになって面白かったです。
立方体の向きを揃える処理を省くと複雑な形状になって面白い
— がむ🌷🌴 (@gam0022) 2018年5月5日
MengerSpongeの亜種になる #Houdini pic.twitter.com/OKfd29TtNn
ビル
現実世界にありそうな形状をつくってみたいと思って、ビルのモデリングにも挑戦しました。
とても簡素なデザインなので、ブラッシュアップしていきたいと思っています。
ディテールを足していい感じにしたいです。。。
#Houdini でboxを並べてビル街っぽい感じにする実験 。
— がむ🌷🌴 (@gam0022) 2018年5月6日
さすがにビルの造形が簡素すぎるけどブラッシュアップしていきたいが、方向性が迷子…センスが欲しい😢 pic.twitter.com/OS97ObDiRe
ノードはまだかなりシンプル pic.twitter.com/spm0vfW6mv
— がむ🌷🌴 (@gam0022) 2018年5月6日
Houdiniプロジェクト
今回の勉強用のHoudiniのプロジェクトをGitHubに公開しました。よければ参考にしてください。
勉強のために参考にした資料
自分がHoudiniを勉強する際に参考にした情報をまとめます。
難易度が簡単な順に紹介します(難易度は個人の主観です)。
Absolute Basics | Collections | SideFX
基本的なUI操作などはこちらで勉強しました。
初心者向けの動画によるチュートリアルでした。
Houdiniを勉強したいけど何から手を付けたらいいのか分からない場合、まずはコチラから始めるのがおすすめです。
理論と実践で学ぶHoudini -SOP&VEX編-
ネットの情報だと読者の想定レベルがバラバラだったり、情報に過不足があったりするので、本を買って勉強することにしました。
少なくない金額を投資して自分を追い込むことで、Houdiniの勉強から逃げることを防ぐ狙いもありました。
第3章の「最初に作成するシーン」では、短いチュートリアルでよく使うノードの使い方を効率的に学習できました。
第4章の「数学&力学」は分かりやすくまとまっていて良かったです。 数学や力学の基礎的な知識はHoudiniに限らず様々な場面で応用ができるので、これだけでも価値がありそうでした。
後半の応用チュートリアルはまだ読んでいないので、Houdiniの理解が進んだら改めて挑戦しようと思っています。
チュートリアル | SideFX
動画によるチュートリアル集です。 想定読者のレベルや投稿者がバラバラなので、ある程度Houdiniに慣れてから見るのがおすすめです。
Nature Design with Houdini - 自然界のアルゴリズムを利用したデザインレシピ
Junichiro Horikawaさんの技術書典4で配布したHoudiniの本です。
丁寧な解説で分かりやすかったです。
それぞれの章で1つの自然界のアルゴリズムについて扱う応用チュートリアル集でした。 まず背景知識や数学について丁寧に解説した後に、実際にHoudiniでのアルゴリズムを実装を1ステップずつ解説する流れでした。
ただし、Houdiniの操作は分かっている前提で書かれているので、Houdiniに慣れてから読むのが良いと思います。
技術書典4で配布したHoudiniの本ですが、紙版は売れ切れてしまったもののPDFバージョンをHoudiniの代理店もされているインディゾーンさんのオンラインショップで販売していただけることになりました!興味ある方は是非是非。#Houdini #技術書典https://t.co/55MKds0RcV pic.twitter.com/gciHsflUrY
— Junichiro Horikawa (@jhorikawa_err) 2018年4月23日
感想
自分はエンジニアなのでモデリングソフトに不慣れでしたが、Houdiniの基本操作は直感的ですぐ覚えることができました。
Houdiniを触る感覚はレイマーチングにおける距離関数によるモデリングに近いと思いました。 Houdiniはポリゴンベースの操作で、レイマーチングはSDFへの操作なので、違いもありますが、フラクタルみたいな形状は同じような感じでモデリングできました。
まだ簡単な機能しか扱えないので、もっとできることを増やして、複雑なモデリングに挑戦したいです。