Houdini入門しました

Houdiniはノードを組み合わせてプロシージャルにモデリングができる3Dソフトです。

Houdiniは多機能なソフトで、モデリングだけでなく、マテリアルの作成、物理シュミレーション、レンダリングまで幅広くこなしますが、 今回はHoudiniのモデリングとレンダリングの機能に焦点をあてて勉強しました。

MengerSponge亜種

作ったもの

基本操作の学習

まずはチュートリアルや本を参考にして、Houdiniの基本操作に慣れるところからはじめました。

参考にしたチュートリアルや本は後半で紹介します。

幾何学的な図形+環境マップによるライティング

これ以降はオリジナルの作品の紹介になります。

手順

  • Boxに対してPoly Extrudeノードで変形
    • Poly Extrudeのパラメータを変化させてアニメーション
  • Copy to PointsノードをつかってSphereの頂点上にBoxを配置
  • 環境マップをつかったライティング
    • Lights and CamerasタブからEnviroment Lightsを追加

フラクタル

有名な3Dフラクタル図形である、メンガーのスポンジをつくりました。

手順

Copy to Pointsノードをつかって再帰的にBoxを配置しました。

  • コピー先のPointsの生成
    • Axis DivisionsをXYZすべて3にしたBoxからPointsを生成
    • Point WrangleノードでVEX(Houdiniで使えるプログラミング言語)で以下の処理を記述
      • mernger_sponge グループの作成
      • コピーされたBoxの向きを揃えるために各Pointsの法線を固定
  • Copy to Pointsノードの Target Pointmernger_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};

Point Wrangleノードの @N = {0, 0, 1}; の部分をコメントアウトすると、 Copy to PointsノードでコピーされるBoxの向きが外向きになって、 元のメンガースポンジの整然とした感じのフラクタルから、すごい複雑な感じのフラクタルになって面白かったです。

ビル

現実世界にありそうな形状をつくってみたいと思って、ビルのモデリングにも挑戦しました。

とても簡素なデザインなので、ブラッシュアップしていきたいと思っています。

ディテールを足していい感じにしたいです。。。

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に慣れてから読むのが良いと思います。

感想

自分はエンジニアなのでモデリングソフトに不慣れでしたが、Houdiniの基本操作は直感的ですぐ覚えることができました。

Houdiniを触る感覚はレイマーチングにおける距離関数によるモデリングに近いと思いました。 Houdiniはポリゴンベースの操作で、レイマーチングはSDFへの操作なので、違いもありますが、フラクタルみたいな形状は同じような感じでモデリングできました。

まだ簡単な機能しか扱えないので、もっとできることを増やして、複雑なモデリングに挑戦したいです。

comments powered by Disqus

gam0022.net

Qiita