2022年4月14日木曜日

参加作品

これまでに参加した作品をまとめてみました。
たまにこうやって振り返るといいですね。定期的にやっていこうかと思います。


 

2022年3月11日金曜日

Houdiniワークショップ第六弾

まだ絶賛準備中ですが、 Houdiniワークショップ第六弾のページをオープンしました。

4月9日から開催です。よろしくお願いいたします。

https://sugi-iggy.blogspot.com/p/workshop6.html



近日中に開催日(例年同様土曜日)とお申込みフォームを完成させますので

よろしくお願いいたします。



2021年12月20日月曜日

オブジェクトをブレンドする 

この記事はHoudini アドベントカレンダー 20日目の記事です。 

ぶっさしのオブジェクトをブレンドした感じに見せる2つのテクニックの紹介です。


---------------------------------------------------------------------------------------------------------------------------

初級編と中級編2つ紹介します。

まずは初級編すごくシンプルです。(初級編は当初空きがあったらApprenticeのカレンダーがあったらそちらに書こうかと思っていたんですが、全てスケジュール埋まってますね。素晴らしいです。)
円柱側(右側)へSphereの法線(N)をattribute transfer で移すのみ!Band widthパラメータで、元の法線は残しつつ境界のみにグラデーションで移せます。



簡単な方法ですが難点としては、ある程度メッシュが細かくないと綺麗にいきせん。
後半の中級編はこの問題は起きません。

---------------------------------------------------------------------------------------------------------------------------

次に中級編です。
こちらは境界に補助ジオメトリをプロシージャルに作成する方法です。その際補助ジオメトリに法線をそれぞれの法線Nを持たすことで綺麗にブレンドして見えます。


まずは全体のネットワーク。


メッシュは細かくなくとも大丈夫です。

重なった部分のメッシュをBooleanで取り出し、Divide SopのRemove Shared Edgeを使い外周のみのジオメトリにします。

その取り出したメッシュにそれぞれ(球と円柱)から法線Nを移します。

その2つの法線Nをブレンドするのですが、内積をとって位置の調整をします。
この法線Nがこの後のSweep Sopで沿わすLineの傾きになります。


以下はSweepの結果。
この作例では球に対して円柱が垂直に立っていてどの境界も同じ角度ですが、
以下のような重なり具合が違う場合、内積の値を位置の調整に使う有用性が分かり易いです。

Sweepで沿わせるLineには、後に使用する終点と始点の分かる様アトリビュートを仕込んでおきます。

Sweepで作っただけでは元ジオメトリの表面と完璧に一致する位置にはないので、RaySopで円柱側に終点側(上記で仕込んだ@mapアトリビュートが1.0)のみ円柱側へ貼り付けます。

同様に始点側(@mapアトリビュートが0)を球に貼り付けます。

以上で形状は完成です。2つのRay共にPoint Intersection Normalを有効にするとそれぞれ球側・円柱側の法線Nを持ってこれスムースにつながります。


最後にストレステストをしてみました。そこそこ複雑な形状やアニメーションさせても有効です。


以上です。

Houdiniアドベントカレンダー2016年から始まりもう6年目ですね。Houdiniのテクニックは過去のものも古くならず有効なものが多いです。今回はAppernticeのカレンダーもすべてスケジュールが埋まっているようなので素晴らしいです。
是非こちらから過去のものやチェックしてみてください。

2021年1月21日木曜日

Houdiniワークショップ第5段

ワークショップ第5段正式に募集開始いたしました。3月13日から開催です。

よろしくおねがいいたします!!

https://sugi-iggy.blogspot.com/p/workshop5.html

(2021年8月追記)
↑こちらのワークショップ終了いたしました。第六弾は2022年3月辺りに開催できたらと思います。よろしくお願いいたします。




2020年12月11日金曜日

使ってはいけないStamp!

この記事はHoudiniアドベントカレンダー2020 11日目の記事です。

皆さん、大量なオブジェクトのアニメーションのタイミングをアトリビュートを利用してズラしたい!なんて事はありますでしょうか?
はい。自分は良くあります。
実は、様々なチュートリアルでStampとTime shift Sop使った悪手が散見されるので記事にしました。

Houdini独特の機能のStampですが、移動・回転・スケール・Alphaなどなどアトリビュートで操作できる値はアトリビュートを直接いじりましょう!というのはHoudiniをある程度触った事がある人ならば共通認識だと思いますが、見落とされがちなのがアニメーションをキーフレームで行いたい場合です。
そんな時はwrangleでch関数のとあるオプションを使いましょう。

まずは簡単な例から。ランダムにアニメーションをズラしています。

よく見るダメな例。ランダムな値が入ったshiftアトリビュートをstampで参照しtimeshiftノード内で使用。

スケールのアニメーションは以下の様にキーフレームでアニメーションつけています。(上図ではscale_Animationノード)


良い例。Wrangleノードの自作したscaleというパラメーターに、上と同じキーフレームアニメーションが付いています。

Wrangleでパラメーターを作る時に、chf , chvなど良く使うかと思いますがch関数には時間指定して値を取ってくるオプションがあります。

上の例だと chf('scale' , @Time - ここにズラしたい値を入れる) 

つまりchf('scale',@Time) だと元のアニメーションと全く同じタイミングでchf('scale')と同様の挙動です。  

この方法のほうが、パフォーマンスは段違いに速いのでstampはどうしようもない時のみ使う様にしましょう。



----------------------------------------------------------------------------
応用例です。(トップのムービー)

といっても、本題のch関数のオプションの話は済んでいるので
この様な各面の基点、サイズ、スケールアニメーションの向き、面の向きがバラバラなタイプの表現をする時に使えるテクニックの紹介です。

大まかに流れを説明すると、各ポリゴンをから基点(pivot)、upとNの向き、サイズ(scale)を
割り出し、1ポリゴンのgridを割り出した各面のpivotにcopy to points でコピーし面を再構成しなおすという感じです。
元の形状はSidefx Lab toolsのLot subidivisionというSopで作りました。
このSopお手軽ですが、以前R&D行っていたTreemapアルコリズムとは違う様で用途は限定的です。
facet sopでプリミティブをバラバラにします。Primitive wrangle(上図get_pivot_dir)で各プリミティブのエッジ上の中点を基点としたいので、
prim points関数を使って下図の様に全ての面に対してpt0とpt1を選びます。
int primPts[] = primpoints(0,@primnum);
int numPt = len(primPts);
int start = floor(fit01(rand(@primnum*1.23),0,numPt));

int pt0 = primPts[start];
int pt1 = primPts[start+1];
if (start == numPt-1) pt1 = primPts[0];
この2点が選べれば、それらのポジションの平均が中点になり、
vector P0 = point(0,'P',pt0);
vector P1 = point(0,'P',pt1);
v@pivot = avg(P0,P1); 
v@dir = P0 - P1 ;
-----------------------------------------------------------------
upとの外積を取る事でN、dirのlengthでx size、中心点からpivotまでの距離から
z size も取得できます。下図参照。

(set_pivot_N)
vector pivot = prim(1,'pivot',@ptnum);
@zsize = length(@P-pivot)*2;
@P = pivot;
vector dir = prim(1,'dir',@ptnum);
@N = cross(v@up,dir);
@xsize = length(dir);

(この図は黄土色のプリミティブのみ図解していますが、各プリミティブに同様の処理が行われます。)
scale_timeshiftノード
float timeShift = @Time - fit01(rand(@ptnum),0,2) ;
v@scale = set(@xsize, 1, chf('scale', timeShift) * @zsize ); 
先ほど同様、chvのオプションを使ってタイミングをズラします。各面が1方向にスッと動きを付けたかったのでz sizeのみアニメーションさせています。

以上です。

早いものでHoudiniアドベントカレンダーが始まってもう5年目ですね。

毎年沢山の方が記事を書いてくれています。過去のテクニックも古くなるものは殆どないので、是非みてみて下さい。


アペレンティス https://qiita.com/advent-calendar/2018/happrentice

2020年4月16日木曜日

007 トレイラー 公開


007のトレイラー公開されてました!
いつか関わりたいと思ってた作品なので参加できて凄く嬉しい。
公開はコロナの関係で未定。。 スクリーンで観れますように。

2020年2月10日月曜日

Houdiniが使われている良作第2段

今年もHoudiniが使われている良作を集めてみました。
去年のものはこちら→http://sugi-iggy.blogspot.com/2019/01/houdini_30.html

いつもながらハリウッド大作では必然的に使わているので、あまり知られていなさそうなものを集めてみました。



Motion Design Reel from Denis_Sartakov on Vimeo.


Netflix ロスト・イン・スペースの背景実例

18th VES ILP - Lost in Space - Environment from Important Looking Pirates on Vimeo.


Netflix ロスト・イン・スペースのエフェクト実例

18th VES ILP - Lost in space - FX from Important Looking Pirates on Vimeo.


毛・ファーの実例 For Sidefx

Andriy Bilichenko - Houdini grooming Demo Reel from Andriy Bilichenko on Vimeo.

珍しく背景周りの記事が出ていましたので貼っておきます。
フレームストアの記事
https://www.artofvfx.com/the-aeronauts-christian-kaestner-vfx-supervisor-framestore/

2020年1月21日火曜日

Houdiniワークショップ第4段

多くの方から、今年はいつ始まるのですか?とお問い合わせを頂きありがとうございます。
そしてすみません、まだ準備中で2月中旬あたりから始められたらと思っています。
今まさに新たな作例の追加や案内のページを作成中で(近日中に右上にWorkshop4が現れます。)しばしお待ち頂けたら幸いです。
まだ更新していきますが、2月15日から開催、正式に募集開始いたしました。
よろしくお願いいたします!!
https://sugi-iggy.blogspot.com/p/workshop4.html


以下は去年のアンケート結果です。