HoudiniBBAの台所

Houdiniを覚えたいリアルタイム系VFXババァが覚えたことをいろいろと残しておくブログ。

「ノードベース」とか「プロシージャル」を雑に解説する【超のつく初心者向け】

専門家さんたちがよく使ってるあれやこれやをできるだけ丁寧に噛み砕いて解説するこーなー。

今回は「ノードベース」と「プロシージャル」。
個人で噛み砕いて、半分無理やり飲み込んだようなものなので、間違ってたらごめんね(てへぺろ

 

最近よく聞くけど「ノードベース」って何よ

とりあえず視覚的に見たことがある方は mayaのハイパーシェードとか、UnrealEngineのマテリアルとか、 BISHAMONの編集画面とか、NUKEの合成してるアレとかの、 「なんか四角いのを線で繋いでなんかやってるやつ」ってことは 知っているかと思います。

この「四角いやつ」とか「線」が書いてある全体のことを だいたいの場合は「ネットワーク」と呼んでいて、 ネットワークの中の「四角いやつ」を「ノード」って呼んでます。 たいてい、1つの「ノード」には1つの「処理」が入っています。

たとえばmayaで「Sphereをつくって上半分を切る」という処理を

f:id:houdini_kitchen:20181002222039p:plain

Houdiniでやる場合はこんな感じでノードを繋ぎます。

f:id:houdini_kitchen:20181002222050p:plain

一番上の「Sphere1」ノードでは 「球体を世界の中に置く」という処理が行われています。

真ん中の「Sellect_Y-positive」というノードには 「Yの値が0以上の頂点を選んで覚えておく」という処理が入っています。

最後の「delete」というノードでは、 「さっきのノードで選んだ頂点だけ消す」という処理が入っています。

細かい性格は違えど、 こんな感じで処理の流れを設計図のように残しながら(作りながら?)、 画を仕上げていくのが「ノードベース」のソフトたちになります。

最近、この「ノードベース」が何でこんなにもてはやされているかというと

 1.シーンを見ればどうやって作られたかが分かる
  →作った本人が不在でも、調整したり改良したりできる
   (誰が操作しても全く同じ結果を作り出すこともできる)

 2.いちど作った仕組みを他に使いまわすことができる
  →例えば上記の「Yが0以上の頂点を全部消す」は、SphereがBoxになってもちゃんと動く(「毎回お決まりの処理」は手でやらなくて良くなる)

この2点が大きな理由かと思います。
あと、ゴリゴリのmelとかPythonに比べたら、 あんまりプログラムプログラムしてないことかな...?

 

Houdiniの人がよく「プロシージャル最高!!」って叫んでるけど、何が最高なの?

「プロシージャル」の考え方は、 先述の「ノードベース」に似てるというか含まれてるというか、 日本語にすると「手続き型」って言われるもの。
「何らかの法則に従って、あらかじめ準備しておいた処理をしてくれるやつ」。

たとえば、「木」とか「ビル」みたいに、「一定の法則に従って作ることができる」 モデルをじゃんじゃん自動生成する方法(プロシージャルモデリング)だったり、 「グリッド」とか「グラデーション」みたいに、「計算式で表現できる模様」を テクスチャとして使う(実質、テクスチャ画像が不要になる)ことだったり...。

大規模なものだと、たとえば「自動生成する迷路のゲーム」で 「迷路の形に添って、いい感じにランダムに草とか木とかランダムに置く」とかも。

例ばっかりになってしまうけど、 手作業で「迷路のステージ」を作っている(しかも9割完成してる)時にディレクターが 「ごっめーん!ここの迷路の形状、変更になっちゃった♡」なんて言ってきた日には 変更指示を出した奴とそのディレクターとラインマネージャを血祭りに上げるほか無いですが、
プロシージャルで作っていた場合は、迷路の形状を変更すると、 あとは「草は壁に沿って生える」とか「曲がり角に木が植わっていることがある」みたいな 法則に従って、バババっと自動でレイアウトが修正されます。

どちらの環境で作業をしたいかと聞かれれば、 圧倒的に後者でしょう。

リテイク以外の場面、たとえば日本人が大好きな「複数パターン提案して」に対しても、 最初にきちんと法則と素材を作っておけば、あとは 「ランダムのシード値を変える(俗にいう「ガチャを引き直す」)」とか 「ここに置くアセットこれじゃないやつにする」みたいな感じで、 ポッキー食べたり鼻くそほじったりしながらクリックするだけの手間で済むと。

乱暴にまとめると、 リテイクもパターン出しも自動化しちゃうとか、プロシージャルまじで最高! ってことですはい。

以上、できるだけ難しい言葉を使わずに 「ノードベース」と「プロシージャル」を解説してみました。

あと主にHoudiniなんですが、何気に最強なのが 「非破壊編集であること」だったりします。

たとえば、普通にデータ自体を編集する(破壊的編集)mayaのようなソフトで上述のように球の上半分を消しちゃうと、本当に頂点が消えちゃいます。
元に戻そうとしたら、Undoするしかありません。

が、Houdiniだと「その頂点を消す」って処理をスキップしたり、 「その処理やっぱいらない」ってやれば、 消しちゃった頂点はいつでも帰ってきます。

ヒストリ消えただのバグっただの、増分保存ミスっただの、 いまいじってたファイルはリファレンスじゃなくて本体だった、等々で 悲鳴を上げる日々とはもうおさらばです。

これだけでもHoudini、使いたくなったでしょう?(笑)

あ、ちなみに例に出していた、半分に球を切るアルゴリズムに関しては、 あんまりプロシージャルな作りにはなってないです...。 (Yが0以上、だと原点にオブジェクトが無かったりすると上手くいかないし、 既存のポイントで消すとポリゴンの割られ方によっては綺麗に半分にならないので...)

本日もありがとうございました。

Houdiniのキホンのホ【超初心者向け】

Houdiniがチョットデキルな人たちと話していると、 ポイントやらアトリビュートやらソップやら、聞いたことがあるような気がするけど、イマイチよくわからん用語に出会うことがあるかと思います。

今回はそんな「Houdiniやってる人たちのお約束」についてご紹介します。

 

ネットワークには何種類かある

Houdiniはノードをいろいろ繋いでネットワークを作っていくのですが、 その中でも「SOP」やら「DOP」やら「ROP」やら、種類がいくつかあります
とりあえず大事なのが「SOP」です。音声だとソップっていう人が多いです。
こちらは「Surface Operator」の略で、すごくおおざっぱに言うと「モデリング系のネットワーク」。

でもなんかモデリング以外にも大活躍する子(パーティクル読み込んだりとかするし)なのでややこしいんですが... まぁとにかくサーフェスをオペレーション(操作)するんすよ。(投げやり

「Houdiniキホンのキ」でご紹介した「Geometry」も、SOPです。

houdini-kitchen.hateblo.jp

 

とにかくHoudiniはSOPなしで語れない、大事なヤツです。
SOPで何かしらを読み込んで、アトリビュートをわーってやるのが、Houdiniのキホンであり奥義です。

ちなみに「DOP」はダイナミクス、「ROP」はレンダリングです。 エフェクトを作るなら両者ぜったいに使いますが、必要になってから覚えればOK。
他にもCHOPとかCOPとかあるけど、最初から覚える必要はないですよー。

 

ちょっとだけ、mayaと考え方が違う

オブジェクトを構成している要素、ありますよね。
mayaだと選択ツールで切り替えられるアレ。

「頂点(Vertex)」、「辺(edge)」、「面(サーフェス)」とか。

Houdiniだとちょっと感覚が違います。

単位がPoints、Vertexs、Premitivesになります。

「PointsとVertexs、一緒やんけ!」とツッコミを入れたくなるかと思いますが、 Houdiniだと別物扱いになります。

Point」が、いつも我々が「点」と呼んでいるものになります。
mayaとかで「Vertex」と呼ばれているアレですね。
位置情報とか法線とかカラーとか持ってます。

Vertex」は、「頂点情報」です。
ちょっと感覚が難しいんですが、たとえばすべての面の色が違う立方体があったとき、 それぞれの面の角の点はみんな同じ位置情報を持っていますが、色の情報はバラバラです。
あとはUV展開するとき、対応する頂点は共有してるけど、面がそれぞれ位置情報を持たないといけない、とか...。
こんな感じで、面によって持ってる情報は違うよ」ってときはVertexの出番です。 ※VertexのTransformの値をいじいじしてモデルを変形させることはできません

Premitives」は、MayaでいうPrimitive(原始的な)とはちょっと意味合いが違います。
Houdiniでいうプリミティブは、「ポイントいろいろで構成されたもの全て」です。
1数式で表すことができるもの=1つのプリミティブ、ってことらしいです。
ポリゴンとかカーブ、サーフェスはもちろん、 パーティクル(エミッタのかたまりごと)とかボリューム(ボックスごと)もプリミティブ単位で触ります。

ちなみに、Houdiniはなんと「Point(点)」が単体で存在できます
「点が1個だけで存在できる3Dソフト」ってなかなか無いですよね!
他にも、別のソフトウェアだとアクセスできないようなパラメータが見えたりいじれたりするので、項目は多いけどとっても便利なツールです。

つい最近、「新しくmayaを入れたPCからで書き出したFBXだけ、頂点カラーがUE4で反映されない」っていうトラブルが発生したとき、HoudiniにFBXをインポートしてアトリビュートを1個1個確認する、なんて方法でエラーを解決しました...
(PointじゃなくてVertexにColorを持っていたのが原因でした...なんでや...)
mayaしか持ってなかったら、迷宮入りするところでした_(:3」∠)_

ちなみに「こんなザックリじゃなくてちゃんと勉強したいわ!」って人は MdNさんから出ている「Houdini Visual Effects」っていう技術書がオススメです(盛大な丸投げ 

books.mdn.co.jp

本日もありがとうございました!

Houdiniおすすめの勉強方法【超のつく初心者向け】

どうもこんにちは。
今日は初心者さんにオススメのHoudiniの勉強方法を紹介します。

とにかく言いたいことがある

まず最初に言っておきたいのが 「Houdini始めた瞬間からシミュレーションとかやろうとすると詰むからやめとけ」です!

最初にやるべきは「ジオメトリを自由自在に操作できるようになること」。
そして次に「プロシージャルな作りになるように考えられること」。
そこから、破壊なり自動生成なり、好きなほうに展開して行きましょう。

※プロシージャルな作り≒「非破破壊でつくる(上流工程のデータがなくならない)」とか、「最初に渡すものを変えればすぐバリエーション」ができる、とか。
Houdiniがマジヤバイ(褒めてる)って言われている最大の理由(若干、個人の偏見入ってます)。

すんごいエフェクト作りたくてHoudini始める気持ちはよ~くわかります。
ハリウッド映画メイキングとかCGWORLDさんの記事とかですごいVFXが紹介されて「Houdiniで作ってるんですよー(ドヤッ)」っていうのがいっぱいあるし、私も師匠にHoudiniの基礎を教えてもらうまで、Houdiniはシミュレーションとかに特化したエフェクト用のソフトか何かかと思ってました...。(業界人として非常にダメな人間の鏡)

ですが、HoudiniはMayaや3dsMaxと同じようなDCCツール(CGを作るためのお道具)です。
MayaやMaxがシミュレーションやパーティクルの計算もできるように、HoudiniだってモデリングしてUV展開して、リギングしてアニメーションつけることもできます。
あまり にHoudiniのシミュレーションとかパーティクル計算は、あまりにできる子すぎてちょっと目立っちゃっただけなのよ。

まぁ何がいいたいかというと、 基礎なくして応用なんてもってのほか
「私、画面に立方体呼ぶ方法知らないけどparticle計算のプロでーすw」っていうmaya使いが世の中に存在しないように、Houdiniもまずはジオメトリの操作(ポリゴン呼び出したり、変形させたり、パラメータ変更したり)をきちんとできるようになってから、流体表現とか破壊シミュレーションにチャレンジしようね!ってことです。

エフェクト作りもジオメトリの操作も、結局はノードをつないで、アトリビュートをいじいじするだけなので。急がばまわれ、です。

おすすめ勉強法!

さてさて、前置きが長くなっちゃいましたが、オススメの勉強法を紹介しますね。

じつは若干、上述の話と矛盾してしまうんですが 、いちばんのおすすめは「なんか面白そうな動画のチュートリアルを、とりあえずやってみること」です。

いやー、だって、まずは興味あるものからはじめたいじゃん?((

それに、「こういうのを作るときにようわからんけどこのノード使ったわ」っていう経験は、後からけっこういい感じに作用します。
公式非公式問わず、ネット上にいっぱい転がってますのでお金もかかりませんしね。
言語が分からなくても、動画なら同じような操作をすれば同じものが出来上がるので、最初はまず動画の操作を真似するだけで大丈夫

先人の方々の「完成品のシーン」を、いっぱい見て真似してみましょう。

ちなみに、ジオメトリ操作もエフェクトっぽい動きも 一度にやりたい欲張りさんにオススメなのはこちら。
英語だけどミュートでも操作を追うだけで完成はするので大丈夫!
(※バージョンが13なので、見た目とかノードの種類が微妙に違うのでそこだけ注意で)

Introduction to Houdini 13 particles from Rohan Dalvi on Vimeo.

 

技術書は買ってもたぶん損はしない

チュートリアル形式の技術書を片手に、制作してみるのもお勧めです。
ちょうど最近、めちゃくちゃいい本が出ました。 3D屋さんにはおなじみ、「No More Retake(http://nomoreretake.net/)」の北川さんのHoudiniチュートリアル本です。

books.mdn.co.jp

すべてのチュートリアルが無料版(APPRENTICE)に対応しているうえに、 「レンダリングするまで」をきちんと解説してくれている、非常にありがたい本です。
(Houdiniもmayaも、ライティングとかレンダリング設定すっ飛ばして「完成品がこちらでーす!」ってなるチュートリアル多すぎるよね...)
毎回とっても丁寧な操作説明がしてありますし、フルカラーでサンプルデータまでついています。素晴らしいよ!Houdiniの使いどころほぼ網羅してるし!なにより日本語だし!

あとは北田さんの本で面白そうだなーと思ったチュートリアルをひと通り作ってみた後に読んでみてほしいのが、ボーンデジタルさんから出てる佐久間さん著の「理論と実践で学ぶHoudini」。

www.borndigital.co.jp


こちらの本はプログラマさんが書いているので、チュートリアルもけっこうコードをゴリゴリと書くタイプです。 ただデータの構造とか、処理の考え方はとっても丁寧に解説されているので、Houdiniの操作ができるようになったあと、自分の思い通りのシーンを構築しようとしたときに役に立つ知識が満載です。
「もともとmelやPythonでバリバリやってました!」な方はいきなりこちらの本から始めても大丈夫かも。 ある程度のお約束(Wrangleで書けるものはVOPでも作れるとか、回転はよくわかってなくてもとりあえずクォタニオン使っとけばええんやとか)を知っていると、すんなり頭に入る気がします。
こちらもフルカラーな上にサンプルデータがいっぱいついているので、本のページと同じ状態でお勉強を進められるのが嬉しいところです^^

CGの専門書はフルカラー印刷の都合とか、購入する人の割合的にちょっとお高いものが多くなってしまいがちですが、上記2冊とも買って損はしないと思います。

だいじょうぶ、Houdiniマスターになっちゃえば、本の代金なんて1時間もあれば稼げるようになるから!!(根拠のない自信)

あと、「チュートリアルをやっていくときに、初見のノードが出てきたら公式リファレンスを見てみる」のもおすすめです。 公式サイトには「このノードはこういう機能がついてるからねー」っていうのがまとまってます。

http://www.sidefx.com/docs/houdini/nodes/index.html

(※リファレンス=プログラマ界隈では関数とかの機能一覧のこと。一部のCG屋さんは参考資料とかもリファレンスって呼びますが。) なお、本やチュートリアルで「Houdiniのお約束」が大体わかってきたら、ネットサーフィンが楽しくなるよ。
CGWORLDさんのHoudini記事や、ネット上のHoudini使いの人のブログとかを理解しながら読めるようになっていると思うので。 記事とかブログの内容をそこそこ理解できれば、もうHoudiniを使いこなしたも同然です。初心者脱出おめでとうございます!(無責任

でも、ジオメトリを自由自在に操作できるようになった後は、もうやりたいこと専用の機能とかお約束を覚えるだけなので、出来ることがメチャクチャ増えます!これはガチです。

もっと増えろ、日本のHoudini使い!! そして一緒にエフェクト沼にはまろう^ω^←

本日もありがとうございました。

Houdiniのキホンのキ【超のつく初心者向け】

いやぁ、Houdini17発表されましたねぇ。
いろいろ強化されてて楽しみだなぁ!!

つい先日16.5で解説記事書くよーって書いた気もしますが...まぁ、うん。
臨機応変にいこうね(無責任

さてさて、今日はHoudiniのざっくり基本操作を紹介します。

画面の見かた

f:id:houdini_kitchen:20180928224125p:plain

1.右下でネットワークを作って
2.右上でパラメータを調節して
3.左半分でどうなってるか見る

です。(超ざっくり)

mayaやMaxだと、ビューポート(モデルとかが映ってる3D空間)をずっと見ていることが多いかと思いますが、Houdiniの場合は、ネットワークとパラメータを見ることが多くなります。

ちゃんとした説明はSideFXさんのチュートリアルとかを見るといいかも。

www.sidefx.com

あと、mayaとかと違って、あんまり「〇〇ツール」とかを使うソフトでもないので マウスとキーボードでPCを操作できる人なら誰でも使えるから大丈夫!(笑)

 操作のキホン

さて、Houdiniでは何をするにも、まずは「入れ物」をつくるとこから始まります。

ビルだろうが人だろうが破壊だろうが炎だろうが、最初の一歩はたいていの場合、「Geometry」です。

右下のネットワークウィンドウでTabキーを押すとメニューが出ます。
検索ができるようになっているので「geo」と入れてみましょう。

f:id:houdini_kitchen:20180928224637p:plain

「Geometry」というメニューがヒットしますので、 Enterキーを押すか、クリックでメニューの名前を選びます。
マウスポインタにうっすらと影のようなモノがついてくるようになります。
ネットワークウィンドウでテキトーにクリックすると、geometryノードができました! 左側のビューにも、なにやら立体っぽいものが出ています。

f:id:houdini_kitchen:20180928224715p:plain

このノードをダブルクリックすると、geometryネットワークの中に入ることができます。
基本的に、作業はこの中で行うことになります。

ちなみに、最初から入っている「file」というノードは、 他のソフトで作った.FBXファイルをインポートするときに使います。
Houdiniでゼロから作成するときは要らない子なので、 Delキーで削除してしまいましょう。

f:id:houdini_kitchen:20180928224939p:plain

「geoを作ってfileを削除」はこれから先何度も何度も使いますので 手癖でできるようになっていると良いです。

ここから、いろいろとわちゃわちゃやって何かしらを作っていきます。
これができれば、ひとまずHoudini「超」初心者は卒業です、やったね!(無責任

せっかくなのでテストジオメトリをおいてみる

geometryネットワークの中でTabメニューに 「test」と入れると「testGeometry:~~」というのがいくつか出てきます。
この子たちは名前の通り、Houdiniで遊ぶときに使われるテスト用のモデルたちです。
いろんなチュートリアルで破壊されたり溶かされたり増やされたりされてますw

f:id:houdini_kitchen:20180928225840p:plain

Houdiniに慣れてきて、 「なんか適当に造形されてる仮モデルほしいなー」と思ったら 彼らを呼んでみましょう。

ちなみに、Houdiniのメニューの検索ウィンドウはすごく優秀で、 スペルミスをしていても、見つかるものは見つかります。 ヒトをダメにする機能満載ですばらしいなぁ(歓喜

もっと増えろ、日本のHoudini使い!!
本日もありがとうございました。

Houdiniやろうぜ!(2)【超のつく初心者向け】

とりあえず無料のHoudiniをいれてみよう!!

みんな大好きHoudini。
なんかすごいエフェクト作れるらしいよ、って名前は有名なHoudini。
最近だとCGWorldさんとかでも「プロシージャルすごい!」って話題のHoudini。
そんな謎のソフトウェア「Houdini(フーディニ)」、じつは無料で使えます。
(※フーディーニ、って発音する人もいるそうで。)

なお、このサイトでは基本的に「APPRENTICE」という、
フリー版のhoudiniを使用していきます。
Houdini使いの人に「とりあえずアプレンティス落としたら?」って言われたら
「とりあえず無料体験版DLしてみたら?」って言われていると思っていただければOKです。

【環境について】
OSはWindows7、Houdiniはバーションはしばらく16.5のはず。
バージョンが違うとノードの名前とか機能が一部違うことがありますが
ググれば出てくるから大丈夫だよ!たぶんね!!!(丸投げ)

 

SideFXさん公式サイト

https://www.sidefx.com/

 

公式サイトの「Get>Download」から、画面にしたがってポチポチとボタンを押して行くだけでOKです。今のところ変なフリーウェアとかもくっついていないのでご安心を。
トップの画像とか細かい部分は更新されて違う見た目になってるかもですが、ノリと勢いで進めちゃって大丈夫です。

 

f:id:houdini_kitchen:20180926131203j:plain

SideFXさんのIDをもっている方は、ログインすると次に進みます。
将来ライセンスを購入するときにややこしくなるので本名で登録がオススメです
(ユーザー名とか以外は公開されないしね)

f:id:houdini_kitchen:20180926131809j:plain

アカウントを作った人はEメール認証を先に済ませてくださいね。
無事にログインできたらダウンロードページが表示されます。
さっそく「Download」をクリックしてダウンロードだ!

f:id:houdini_kitchen:20180926131233j:plain

こんな感じの確認画面が出るので、お約束を守れる人は「同意する」を選択して次にすすみましょう。

f:id:houdini_kitchen:20180926131325j:plain

警告が出た人は、「実行」をクリックします

f:id:houdini_kitchen:20180926131337j:plain

いちおう心配な人向けに、ざっくり日本語訳しておきます。

f:id:houdini_kitchen:20180926131352j:plain

こちらでも利用規約に同意してー

f:id:houdini_kitchen:20180926131406j:plain

インストールするものは、とりあえずデフォルトで大丈夫です

f:id:houdini_kitchen:20180926131419j:plain

HoudiniEngineも欲しくなってからの追加で大丈夫です

f:id:houdini_kitchen:20180926131430j:plain

インストール先は、好きな階層を指定できます。
私はCドライブ(SSD)にソフトウェア入れるのがあんまり好きじゃないのでDドラに入れちゃいました。

f:id:houdini_kitchen:20180926131441j:plain

あとはショートカットを作るかどうか聞かれます。親切!
たいていの人はそのままInstallをクリックで完了です。

f:id:houdini_kitchen:20180926131454j:plain

これでHoudiniがPCに入りました!
画像をいっぱい貼って満足したので解説とかはまた次回...

 

 

Houdiniやろうぜ!(1)【超のつく初心者向け】

こちらの記事をご覧いただきありがとうございます。

このサイトでは、Houdiniをはじめ、リアルタイム系のエフェクトを作るTipsを、がんばって書き溜めていく...はずです。

Houdiniって、便利そうだし、最近CGWORLDさんとかでも良く聞くけど、なんか難しそうだしとにかく日本語の情報が無いんだよね。

あと、Houdiniの日本語情報を公開してくださってる方々も、Houdini使いこなし過ぎてて「日本語でOK」ってなることも少なくないよね。


なので、私の記事はなるべく1工程や考え方も丁寧に書いていくつもりです。


ただ、アルゴリズム(処理の手順の考え方)の解説の部分では
「Houdini以外の3Dを作るソフトが中で何をやってるかある程度分かっている」ことを前提として話が進みます。
(transformとかedgeとか、専門用語の基礎知識までは解説しないよ、ってことね)

なお、私は元々maya使いなので、mayaで例えることが多くなりそうです。

世の中にあふれている3分クッ〇ング風Houdiniチュートリアルを見て
「その工程カットしないでぇええ!」と叫ぶ人、
白目をむいてHoudiniとサヨナラバイバイする人が1人でも減りますように。