カテゴリー別アーカイブ: houdini

Houdini SOP Effect 01

 

Houdini のSOPだけを使って、ジオメトリの一部が変化するような
エフェクトを作ってみた。

この手のフェクトはForEachオペレーターやCopy-Stampシステムを使うと
一気に作業が重くなるため、今回はそれらを回避しながらVEX中心で作成した。

いかに軽く作るかを念頭に置いて作業したため、蝶自体の動きも
全てVEXで作成している。(蝶の羽根のアニメーション、羽振りのタイミング制御、
テクスチャ制御など)

 

Houdini SOP Morphing test ver.001 from shuichi sakuma on Vimeo.

 

Houdini SOP Morphing test wire from shuichi sakuma on Vimeo.

Houdini SOPによる群集表現 ver.2

以前作成したSOPによる群集モーションのバージョン2。
今回も全てSolver SOP内のVEXで実装。(HoudiniのCrowdは使用していない)

 

Houdini SOP Boids test ver.002 from shuichi sakuma on Vimeo.

 

VEXで実装した群衆としてのルールは2つだけ。

1. お互いなるべく衝突しない
2. サークルで近似した障害物を避けながら移動する

Mayaで昆虫のフリーモデルに簡単なリグを作成して
エクスプレッションでサイクルモーションを設定。
それをAlembic経由でHoudiniにインポートして
ポイントと置き換える際の群衆ユニットとして使用した。

群衆ユニットは6000体で構成されている。

メモリ32GBのマシンで作成したが
それほど作業が重くなることはなかった。

Houdini VDBによる移流

SOP内でVDB Advect SOPを使ってポイントを動かしてみた。

 

Houdini VDB Advect test001 from shuichi sakuma on Vimeo.

 

今回のやり方は最初にPointWrangleでポイントごと作成したベクトルアトリビュートを
Volume Wrangle内からポイントクラウドとして読み込んで、近傍ボクセルへ移しておく。

ベクトルフィールドの元となるポイントのアトリビュートは
図のようにサーフェイスの傾斜に沿った下向きのベクトルになっている。
このベクトルは、鉛直下向きのベクトル{0,-1,0}をPolyFrame SOPによって作成した
tangentu、tangentvベクトルに内積計算で投影することで作成した。

2016-07-30_070524

また、VDB Advectによって移流されたポイントがサーフェイスから離れた瞬間に
VDB Advectによるフィールド移流からPoint Wrangleによる重力落下に切り替えている。
よって、今回もDOP系オペレーターは使用せず全てSOPオペレーターで行っている。
今回コリジョン計算はしていないので、100万個以上のポイントでもほぼリアルタイムに近い速度で再生できた。

Volume Wrangle SOPからもポイントクラウドが読めるは自分的には盲点だった。
これができれば、色々なことに応用ができそうだ。

Houdini SOP Wrangle コンストレイン ver.2

以前作ったSOPコンストレインのver.2

今回のものは球体だけが磁石の役割をするのではなく、
球体に吸着したオブジェクトも次々に磁石になっていくように
VEXを拡張している。

 

Houdini Sop Wrangle constraint v002 from shuichi sakuma on Vimeo.

 

牛のジオメトリをそのまま使うと計算負荷が高すぎるので
牛のバウンディングボックスにスキャッタしたポイントを
吸着の判定に使用している。

Houdini カールノイズ

http://www.serenelight3d.com/blog55/?p=2806
でノイズについて書いたが、カールノイズが抜けていたので今回検証してみた。

 

カール(curl)とは場(フィールド)を対象とするベクトル解析における「回転」演算を意味する。
Houdiniにおけるカールノイズは、ベクトル場に発散や消失を発生させないような
複数の渦巻き状の流れを作るベクトル場を構成する。

Houdiniでは次の4種類のVEX関数が用意されている。
引数は3次元ベクトルと4次元ベクトルの2つのバージョンがあるが
4次元ベクトルは位置(@P)+時間(@Time)として使用することが多い。

■PerlinノイズベースのCurl
vector curlnoise(vector xyz)
vector curlnoise(vector4 xyzt)

■SimplexノイズベースのCurl
vector curlxnoise(vector xyz)
vector curlxnoise(vector4 xyzt)

このカールノイズを速度ベクトルとして使用した場合には
そのベクトル場に沿いながらポイントが移動することになるが、その際
ポイントが一箇所に溜まったりバラバラに離散したりすることを避けながら
適度に不規則な動きを作ってくれる。

今回はカールノイズを使ってポイントをサーフェイス上で這わせてみた。
(DOP(Flip,POP,Grain等)は使用せずに全てSOP内で行っている)

カールノイズはSDFの-0.1~0のボクセル(サーフェイスの真下付近)だけに仕込んでおく。
SDFの勾配ベクトルと距離情報から、ポイントとサーフェイスのめり込み補正を行い
位置の補正後に近傍ボクセルのカールノイズを参照してポイントを動かしている。

Wrangleで常に重力をかけているので、サーフェイス上を這いながら
落下していく動きを作ることが出来る。

このテクニックで、SOPだけでいわゆる”Cling”ができる。
ポイントの軌道はカールノイズの周波数を変えるだけで簡単に変えることができる。

 

Houdini SOP Curl Noise Frequency test v001 from shuichi sakuma on Vimeo.

 

Houdini SOP Cling & Wetmap test v001 from shuichi sakuma on Vimeo.

Houdini 花火

 

そろそろ花火大会の季節。
ということで今回はHoudiniで花火を作ってみた。

全てSOPだけでフルスクラッチ。

重力加速度、空気抵抗、ポイントからのポイント放出、放出のタイミング制御、
ポイントの寿命・世代の管理、ゴール機能、カラーリング、積分器などは
全てWrangleを使ってVEXで実装した。

DOPを学習する前に
SOPだけで物理法則に従うアニメーションを作っておくと
DOPを理解する上で必ず役に立つと思う。

 

Houdini Fireworks test v001 from shuichi sakuma on Vimeo.

Houdini 画像からの街並モデリング

Houdiniで画像を使用して街並みのモデリングを行ってみた。

今回、素材となる画像を生成するために
専用のアプリケーションを開発した。

cinderというフレームワークを使いC++で実装。
このアプリケーションでは乱数ベースで様々なパターンの通路を自動生成し、
パラメーターを変えることで無限のバリエーションを作ることが出来る。

street2

cinderはWindows上でちょっとしたリアルタイムアプリを作るには
ちょうどいいC++のクラスライブラリ。
cinderはOpenGL、各種IO、音声・画像データ、数学関連の
クラスライブラリが扱いやすく、標準でBoostも入っている。
https://libcinder.org/

 

以下、これらの画像を使ったモデリング結果。
中心となるのはTrace SOP。

 

<パターン1>

city_gray
city_gray_rev_rend

 

<パターン2>

c2
c2_rend

 

<パターン3>

c7
c7_rend

 

隣接している建物は全て別ジオメトリになっているため
それぞれ個別に動かすことができる。
 

Houdini Building Generator test v001 from shuichi sakuma on Vimeo.

 

 

 

 

 

Houdini CHOPによる稲妻表現

HoudiniのCHOPを使って稲妻を作ってみた。

 

Houdini Lightning test v001 from shuichi sakuma on Vimeo.

 

腕と指先のアニメーションはMayaで作成しておき
Alembic経由でHouidniにインポートした。

CHOPは全て結果がグラフ表示されるので理解しやすい。
また、計算も早いため様々なエフェクトで補佐的に使っていけると思う。

Houdini チューブワームテスト1

通常、Mayaにおけるモデリング作業というと
手動でポリゴンの頂点を動かしていくが、
Houdiniではオペレーターを通して
プロシージャルにモデリングを行うことができる。

今回、最初に以下に示すようなポリゴンチューブを用意して
Houdiniの様々なオペレーターやVEXを使って複雑な形状にしてみた。

2016-06-26_210422

Mayaのように頂点を直接手で動かさなくても
Houdiniのプロシージャルシステムを使えば
単純なポリゴンチューブからこんな形状を作ることができる。

2016-06-26_210523

the_warm02

また、Houdiniにおいてはモデリング作業とアニメーション作業に
厳密な境界線はないため、モデリングとアニメーション作業を
並行して行うことも可能になる。

VEXを使ってアニメーションを作ってみた。

Houdini Tube Worm test v001 from shuichi sakuma on Vimeo.