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


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






2019年12月3日火曜日

パリピHoudiniロゴアニメーションとPDGでムービー出力

この記事はHoudiniアドベントカレンダー2019 3日目の記事です。
https://qiita.com/advent-calendar/2019/houdini

まずは完成絵です。
この絵を見せた人から「パーティーピーポーみたいだね」と有難い感想を頂いたので
パリピHoudiniロゴアニメーションと題しました。

SoftbodyシミュレーションにはWireソルバーを使用。今やVellumeソルバーが搭載されてすっかり影の薄くなったWireソルバーですが、
こんな感じ固めでかつトゥーンチックな嘘っぽいシミュレーション(奥行方向には変形しないなど)を作ろうとするとVellumeでは上手くいきませんでした。
因みに文字同士は貫通したりしてますが気にしない事にします。


全体の流れはFont Sopで作った文字をDivideで分割して平べったい状態でシミュレーションし、最後に厚みをつけています。


まずはFontで作った文字をDivideで分割。


次に潰れた状態から3F目で元の状態になるアニメーションをつけます。Y軸スケールで0から1に。


その後Trail Sopでvelocityを作っておきます。Dop内で地面(Ground)を作るので、めり込まないように少しだけ(0.01)浮かせてあります。(Transform2)

dopnet1の中です。特別な事はせず、WireObjectで読み込みWireソルバーで計算させるだけです。

最後にPolyExturdeで厚みをつけて完成です。



PDGで連番をムービー出力。

今まではチュートリアルをWebにアップする場合は、レンダリングした連番を別ソフトでムービー(mp4)にしてYoutubeにアップする流れでしたが、Houdini17.5から付いたPDG(TOP)の機能によりHoudini以外の様々なタスクまでもプロシージャルに自動化出来るようなりました。そこでPDGの機能でムービー化してみようと思います。
(厳密にいうとPDGは単体のソフトでHoudiniにTOPとして一部の機能が付随しています。)

例えば、
モデリング -> エフェクト -> ライティング -> レンダリング  -> コンポジット -> ムービー作成 -> shotgunにアップロードまですべて自動化可能です。他にも様々なHoudini以外の機能があるので是非色々試してみてください。
(といつつもまだ新しい機能なので、私自身もSidefxのヘルプから参照できるサンプルファイルで検証を始めたところです。)

ヘルプに、OpenGL ROPで作成した連番からムービーを出力するまでのサンプルが
あったのですが、今回は連番をすでに作成済みだったので連番を再度作成せずに
ファイルを参照し、それをムービー化する方法を探りました。

まずは、TOP networkをobjレベルにつくり、

Topの中はデフォルトではlocalscheduler(一番右のノード)があるだけの状態ですが、
ヘルプ付属のサンプルファイルから、OpenGL Ropを参照しレンダリングが終わったらムービー化するネットワークを持ってきました。真ん中のwait for all ノードは上の全ての処理が終わってから次に進むノードです。


(localschedulerは使用しないと思って消してしまったのですが、そうするとTOPの計算が行われなくなるのでご注意を。これはTOPのスケジュールを管理するノードらしく残しておかなくてはなりません。)

TOPのノード達は繋ぐだけで、前のノードからどんなデータが出力されているか
既に判断されている様で、例えばこの例ではropfetchで参照している/out/openglが書き出した連番のファイルの場所が、一番下のffmpeg encode videoノードに渡されている様です。

ffmpeg encode videoノードのみでもファイルを参照できそうなのですが、txtファイルで指定する仕様になっていて、どのようなフォーマットで書けばよいのか不明なのと(この辺りはffmpegの仕様だと思います。)txtを用意するのも面倒ですのでTOP内で既に書き出された連番を参照するfile patternノードを見つけました。

ディレクトリ名とワイルドカード( *)を使用する事でそのフォルダのすべてのファイルを参照できます。


ropfetchをfile patternに入れ替えています。

全てを計算させるには右クリックからCook Selected Nodeを選びます。



以上です。


Houdiniアドベントカレンダーは2016年から続いています。
Houdiniのほとんどのテクニックは古くならずいつまでも使えるものが多いので是非読んでみて下さい。

https://qiita.com/advent-calendar/2018/happrentice
2017年 https://qiita.com/advent-calendar/2017/houdini
2016年 https://qiita.com/advent-calendar/2016/houdini










2019年3月28日木曜日

note始めました。

実験的ですが、Blogと何かが変わるのかと暫く続けてみようと思います。
2つnoteを書いてます。

Linux vs Windows10パフォーマンス対決その1

Linux初心者のLinuxとWindowsのデュアルブート環境構築(その1)。

2019年1月30日水曜日

Houdiniが使われている良作

これもワークショップの最初で紹介してきましたが、別の事に時間を使いたいのでまとめてみました。

ハリウッドの大作はほとんどの作品で使われているので、
なるべくあまり知られて無さそうなものを集めてみました。

BEAR from SHED on Vimeo.

ゲームFarCry5 ダイジェスト (5分) 1時間のセミナーはこちらhttps://vimeo.com/273986776
Far Cry 5 | Ubisoft | Houdini Connect from SideFX Houdini on Vimeo.


Logitech - Powerplay from Simon Holmedal on Vimeo.


Main Road Post "Attraction" VFX breakdown ' 2017 from Arman Yahin on Vimeo.


2016 AICP Sponsor Reel - Dir Cut from Method Studios on Vimeo.


Nike ~ Air Max 2017 from ManvsMachine on Vimeo.

2019年1月28日月曜日

Houdiniのメリット・デメリット

毎年ワークショップ1週目に力説しているところなんですが、他のことに時間を使いたいのでまとめてみました。

2025年3月アップデート。

メリット

・ソフトウェア設計・UIの一貫性
何を作るにしても似た方法で行えます。スキルの応用が容易で、新機能への対応も素早く行える。記憶に頼らずに済みます。

・ファイル内容・作業工程の可読性の高さ、パラメーターの変更箇所など明確。
・データの透明性、どんなデータがどこに入っているか明確、ビジュアライズ機能の搭載。
・学習がし易い。
プロシージャル、ノードベースのソフトなので他の人のファイルから作業順、作業内容が明確に分かります。

・柔軟性が高く、そしてデータが扱いやすい。
他のジオメトリからデータ転送、ジオメトリ・ボリューム・パーティクル区別なく扱えます。
アニメーションの伸縮、反転、他のフレームの値、形状の取得なども容易です。

・最新テクノロジーの導入が早く、毎年着実に大幅なバージョンアップが行われている。

・ファイルシェア、再利用のしやすい。ファイル間でのコピペ、ユーザー間でのシェアも非常にシンプル。
別ユーザー間でコピペ出来るツールなども用意してある会社あります。

・ファイルサイズが小さい。
通常の3Dソフトと違い、ノードの情報のみ保存しているので10MB以上になるのはほとんどありません。普段の仕事でも2ー3MB がほとんどです。
堅牢なパイプライン構築・バックアップ・トラフィック負荷軽減への恩恵があります。

・CG文法の理解が深まる。
Houdiniで使われる用語の多くは、ハリウッドのCG制作のスタンダードな用語です。
シーグラフや海外でのセミナーで話していることの理解度が高まります。

・使用用途、ユーザー層の拡大中 。
エフェクト、背景モデリングだけでなくモーショングラフィックス、CFX、ライティング・LookDev・レンダーマネージメントでも普及しつつある。(ライティング・レンダーマネージメントではHoudini CoreでSolaris運用が安定性・シンプルさ・コストパフォーマンスが良いと思います。)

・システム面でも環境構築しやすい設計。
豊富に用意された環境変数、HDAなどの仕組みのお陰でパイプライン構築コストが低いです。
他の多くソフトは、プラグイン同士の連携のリサーチ、導入手続き、ライセンス管理等のコストが非常に大きい。(HoudiniでもArnoldもしくはRedshiftはおすすめです。標準レンダラーのMantraは柔軟性は高く、何ライセンスでもフリーで使えるので巨大なレンダーファームがある会社にはメリットがありますが速度は遅いですが、新しいレンダラーKarmaが解決しつつあります。Houdini用のプラグインはノードで用意されるのでシームレスに移行できます。)


デメリット

・他の3D総合ソフトウエアよりも値段が高い。(とよく言われますが、上記のメリットを考えるとコストパフォーマンスは群を抜いて高いと思います。)

・キャラクターアニメーションの機能に関してはまだ発展途上。(20.5のApexで大きく進化しました。)
(MIGSでこの会社http://shedmtl.com/en/のセミナーを見て、大分良い所まで来ていると思いました。リグ・アニメーションもHoudiniに移行しています。)

・1 点物の手動モデリング等には向いていない。(ポリゴン編集はここ数年進化してきてはいます。)

・マテリアル周りが弱い。(シェーダーは柔軟で中へ潜ればカスタムできますが、表のUIはオプションが足りない気がします。プロシージャルシェーダーの種類が少ない。)

・ビューポートがMayaよりもレスポンスが悪い部分がある。(大量のポイントやポリゴン表示などはHoudiniは高速です。)

その他のデメリットと回避方法はワークショップで解説しようと思います。

2018年12月10日月曜日

失われたTransformを取り戻す。

こちらはHoudini Advent Calender 2018 10日目の記事です。
https://qiita.com/advent-calendar/2018/houdini

ジオメトリの形状からTransform(位置、回転、スケール)を取得(作成)し、別ジオメトリを追従させる方法です。
この間同僚にやり方を聞かれ、これまで何人かに同じ事聞かれたので記事にする事にしました。
本当はこのような場面(Transformデータが無い)は出くわすのを避けるべきですが、
データが連番ジオメトリしか残っていないっ!なんて場合に使えます。
(基本AlembicやFBXでTransformデータが残っている場合はパラメーターをchで繋げるのみです。)

以下は結果です。
ドーナツ(Torus)ジオメトリのアニメーションに、ぬいぐるみ(rubbertoy)が付いて行っています。



Transformをつくる全体を簡単に説明すると、

ポジションは全体の中心座標、回転とスケールは任意のポリゴン一枚からN、up、 pscaleを計算し、copy to points sopで流し込むという流れです。

(このサンプルではTorusを適当にアニメーションしたものをObject引っ張り、Transformのデータは無いと仮定して進めています。)
まずはグリーンの部分、
位置(中心座標)の取得ですが、ジオメトリをpack化する事で1point のみになり自動でpointの位置も中心にくるので楽で良いです。
add sopで1pointつくり でHscriptのcentroidを使用しても良いと思います。

次に回転、スケールを計算するオレンジの部分の説明です。

Torusから任意のポリゴンを一枚選び残します。
(今回は解説の為見やすいようビューポートで一枚選択してキーボードのdeleteキーを押し作成されたblast sopのオプションをDelete Non Selectedにしていますが、  blastのGroupに0とすればインプットのジオメトリを変えてもそのままの仕組みが流用しやすくなります。)


次にNormal SopでPrimitiveにNを作ります。

ここでpointタイプに作成してしまうと、次につくるupと直交した物にならないので要注意です。
直交したNとupがあれば最後のcopy to points sopで回転として上手く作用します。

次にUpとpscaleの作成です。
vector dir = point(0,'P',0)-point(0,'P',1); //ポイント番号0のポジションから番号1番のポジションを引き算しベクトルを作ります。
v@up = normalize(dir);  //ノーマライズして長さが1のupというベクトルにします。
@pscale = length(dir)*3.5;  //エッジの長さの変化をスケールとして扱うので、ノーマライズ前のベクトルdirのlengthをとりpscaleとします。
この手法の欠点は、ぬいぐるみジオメトリの初期状態をキープは出来ないので大きさや
向きを調整してあげる必要があります。pscaleに3.5をかけているのはその為です。

これでNとUp、pscaleができましたがNがprimitiveアトリビュートのままでは次のattribute copyでpack化した中心のpointに移せないので、attribute promoteでpointアトリビュートに変換します。

このNとUp、pscaleを左側のpack化したpointにattribute copyで渡します。

このポイントにcopy to points sopでぬいぐるみジオメトリを配置すると
ドーナツ(Torus)と同じように移動、回転、スケールが反映されます。

今回の様にポリゴンが斜めを向いている場合は、あらぬ方向を向いてしまうので、ぬいぐるみの初期の向きをTransform sopで調整しています。

今回はオブジェクトの中心にN , up , pscaleを持たせましたが任意のポイントもしくは、プリミティブをpackにすれば、ポイントコンストレインやポリゴンコンストレインにも置き換えられます。

以上です。

Houdiniアドベントカレンダーは2016年から続いています。Houdiniのほとんどのテクニックは古くならずいつまでも使えるものが多いので是非読んでみて下さい。