山里ぽん太

10 wave rings

16 September 2018

山里ぽん太は10本の波の輪を作りました。


Chapter 1 波の輪
今年4月に MODO を買って、2つ目に作ったのは、波紋でした。
波の形をあらかじめ作っておいて、位相を進めながら、ブーリアンして、「Radial Sweep」する、という作り方でした。
Houdini なら、シェルフ・ツールから、本格的な波がワンタッチで作れちゃいます。
でも、なんとなく、本格的な波じゃなくて、MODO で作ったような本格的じゃない波を作ってみたくなりました。
「本格的じゃない波」ってどんな波なんでしょう?(謎)。
それは、こんな波です。

ただ単に、フラフープみたいな輪っかが、びよーん、って伸びるだけです。
つまんねー波です。
こんなの、Houdini でやんなくていいじゃん。
はい、そうなんです。
MODO で十分なんです。
でも、Houdini でやるのには、深い深いふか〜い訳があるんです(笑)。
Chapter 2 深い訳
いや、別に、深くはないんですけど(笑)。
Houdini を使うのに、まだまだ感覚がつかめていないので、とにかく、どんどん使おう、ということです。
簡単な仕事を引き受けるのが、いちばんいいんですけど、仕事がないので(笑)。
なので、自分で、課題を作って、いろいろやっちゃおう、ってことなんです。
Chapter 3 レンダリングの罠
それはいいんですけど、かなり、そうとう、ものすごく、レンダリングに時間がかかっちゃってます。
1コマのレンダリングに1時間とか。
レンダリング専用機か専用サーバがほしくなります。
Chapter 4 波の輪ジェネレーター
波の輪は、AttributeWrangle ノードに VEXpression を記述して作っています。
簡単なスクリプトです。
ネットワークはこんなのです。

一番最初の「Add」ノードで、最初のポイントを作ります。
次の「AttributeWrangle1」で、波の形のポイントを追加します。
次の「AttributeWrangle2」で、作ったポイントを繋いで「Line」にして、円盤の断面の形状にします。
「Revolve」で、一周まわして、円盤を作ります。
「Clean」は、おまじないです(笑)。効果はあるのかないのかわかりません(笑)。
Chapter 5 10 wave rings
というわけで、作る作例は、10個です。
アイデアを10個出します。
ブレーンストーミングだと、アイデア出しの目標は100個です。
でも、100個出すと、レンダリングで死にます(笑)。
Chapter 6 wave ring 1
というわけで、最初の作例です。
写真の前で輪っかが広がるだけです(笑)。
題して「寒い冬は人生を潤してくれるよ」w。
水面のフェードイン/アウトは、もっとゆっくりだと詩的だったのかもしれないんですけど、Opacity のコントロールがデリケートで難しかったので一瞬です(笑)。
「Distant Light」で照明しています。

Chapter 7 wave ring 2
というわけで、2つ目の作例です。
これも、写真の前で輪っかが広がるだけです(笑)。
題して「この一瞬はとっても大事なんだよ」w。
「Distant Light」で照明しています。
屈折は、レンダリング時間が長いので、ハーフサイズです。
静止画はフルサイズです(笑)。


Chapter 8 wave ring 3
というわけで、3つ目の作例です。
これも、写真の前で輪っかが広がるだけです(笑)。
題して「ひとりって寂しいけど楽しいんだよ」w。
この作例はレンダリングに時間がかかりました(苦)。
AtributeWrangle と revolve で作った水面は、反射がきれいじゃなかったので、この作例では、Box で作ってあります。
「Ambient Light」で照明しています。


ちょうど、水面に波が現れるところで、絵が乱れる、という現象が出て困りました。
レンダービューで見るとこうです。

レンダリングするとこうです。

原因がわからなかったので、「なんとか」しました(笑)。
Chapter 9 wave ring 4
というわけで、4つ目の作例です。
真っ暗な中で、金属質の輪っかが、離れたところにある光を反射している、ってだけです(笑)。
題して「暗闇にはどこかから光が差しているよ」w。
「Area Light」で照明しています。


Chapter 10 wave ring 5
というわけで、5つ目の作例です。
4つ目の作例と同じ輪っかが、離れたところにある光を透過して分光している、ってだけです(笑)。
題して「暗闇の近くに光があるよ」w。
「Area Light」で照明しています。


Chapter 11 wave ring 6
というわけで、6つ目の作例です。
派手です(笑)。
RGB の市松模様に輪っかを重ねたら、光の混色が見えるかな、ってだけです(笑)。
題して「人生は自分で演出するものだよ」w。
この絵は、動画の絵とは違うのですが、説明的にわかりやすいので(笑)。
「Geometry Light」で照明しています。
640 / 360 のサイズですが、レンダリングに1コマ100分とかかかりました(涙)。


Chapter 12 wave ring 7
というわけで、7つ目の作例です。
題して「雪の向こうには春があるよ」w。
波で砂粒を掻き分ければいいから楽勝〜、と思ったのですが、砂粒は波を貫通しました(爆)。
というわけで、いろいろあって、悪戦苦闘しましたw。
「Distant Light」と「Area Light」で照明しています。


雪の粒は、テキトーに作ったものを「Copy to Points」しました。
シミュレーションは「Grain」です。
「Copy to Points」の「Pack and Instance」をオンにしたら、レンダリング時間がものすごく短くなりました。

Chapter 13 wave ring 8
というわけで、8つ目の作例です。
題して「きっと誰かになにかをプレゼントできるよ」w。
「Area Light」で照明しています。


Chapter 14 wave ring 9
というわけで、9つ目の作例です。
題して「きっと誰かのために何かできるよ」w。
初めて Pyro を使いました。
炎を半透明にしたかったのですが、方法がわかりませんでした。
「Area Light」で照明しています。


「Intensity」の値を調整することで、炎を半透明にできることがわかったので、もう一度レンダリングしました。


Chapter 15 wave ring 10
というわけで、10こ目の作例です。
題して「ひとりの時間は優しさと強さを教えてくれるよ」w。
10番目の作例では、ついに、VEX は使いませんでした(笑)。
「AfterEffects でできるじゃん、Houdini 使わなくっていいじゃん」ってお感じになられたあなた!。そのとおりですっ!!!(爆)。
「Font」ノードと「Extrude」ノードで、文字を押し出して立体にして、ブーリアンで切っているのですが、メッシュが閉じてくれません。閉じる方法がわからなくて、そのままにしてあります(笑)。
「Area Light」で照明しています。


Chapter 16 メモ
① 屈折のレイが多い絵では、640/360の絵1コマのレンダリングに100分くらいかかっています。こうやって、いろんなアイデアを試してみることは悪いことではないと思いますが、かなりたいへんです。レンダリング専用のマシンを買う方法や専用サーバを借りる方法のほか、最近はクラウドレンダリングサービスが使えるようです。ネットで検索して見つけた、RebusFarm Render Serviceと、Micorsoft Azureでは、残念ながら、Houdini はサポートされていません。
C3Dを主催されていらっしゃる岩井知久様に教えていただいたGRIDMARKETSは、Houdini に対応しているようです。費用はそこそこかかりますが、仕事で実費に組み込めるようであれば、利用してみたいところです。

② リファレンスの「クラウドコンピュータでのレンダリング」のページに、「Amazon CloudレンダーサービスはSideFX管轄外における理由によりHoudini16.5では無期限に使用できません。」と書かれていて「Amazon EC2の計算サービス上で実行されているオンデマンド型のレンダーファーム上で、シーンをレンダリングすることができます。」と書かれています。


③ boolean、rovolve で、メッシュが乱れるようです。ふつうに diffuse で見るときにはわかりませんが、0度に近いようなシビアな角度で反射したり、dispersion したりすると、乱れていることがわかります。

④ 「Clean」は、メッシュの乱れを修復してくれるノードですが、今回、どの作例か忘れましたが、メッシュに穴が空きました。「Clean」をバイパスすると穴が塞がるというような状況でした。おそらく、メッシュの乱れが大きくて、「Clean」では穴を塞ぐことができなくて、それで中途半端なメッシュを削除した、ということなのだろうと思います。「Clean」は、なんでもかんでも大丈夫、というわけではなく、仕上がりを注意深く点検しなければならないようです。

⑤ Chapter 12 では、Grain を使って、ダイナミクスのシミュレーションをしましたが、数個の Grain が期待通りの挙動をしてくれませんでした。ダイナミクスを使うケースでは、エラー、といいますか、期待通りの挙動をしないパーティクルをどう処理するか、というところが、ひとつのポイントかと思います。POP Wrangle で、うまくコントロールしてあげるとよいと思いますが、僕は、残念ながら、POP Wrangle で VEXpression を書く方法を知りません。Chapter 12 では、DOP でのシミュレーション結果をインポートする SOP である DOP I/O の出力に SOP の Attribute Wrangle を繋いで、SOP で Grain の座標を監視して、エラーしているポイントにグループアトリビュートを追加して SOP ノード「delete」で削除する、ということをしています。ちょっと見にはわかりませんが、注意深く見ると、動きが変なことに気がつきます。

⑥ マテリアルの作り方をどうやって勉強したら良いものかと思案しています。MODO だと、豊富なプリセットから、いろいろなマテリアルをワンタッチで適用できますが、Houdini では、そういうわけにはゆきません。プリセットのキットが販売されていないかと、ネットで探してみましたが、見つかりません。Houdini は、シミュレーションで使われることが多いからでしょうか。

⑦ 「Pyro Candle」シェルフツールを使って作った炎の形状をいろいろ変えてみたくて、「Pyro Solver」の「Turbulence」タブの「seed」値をいろいろ変えてみましたが、炎の形状は変わりませんでした。

⑧ 「Pyro Candle」シェルフツールを使って作った炎を半透明にしたかったのですが、方法がわかりませんでした。「Pyro Shader Candle」というシェーダーが作られるのですが、このシェーダーのあちらこちらを探しても、Alpha や、Opacity のパラメータがありません。炎をレンダリングして作られる exr ファイルはアルファチャンネルを持っていることはわかっていますが、mantra でどうすればよいのか、わかりません。炎とそれ以外を別々にレンダリングして、コンポジターで合成する方法はありますが、なるべく使いたくありません。

その後、「Intensity」の値を調整することで、透明度が出ることがわかりました。炎の使い方がひとつわかりました。人類にとっては小さな一歩ですが、僕にとっては偉大な一歩です。

⑨ 「Emission Intensity」は、マテリアルの「Opacity」を変えても影響を受けないようです。

⑩ 今回はエリアライトを勉強しました。「エリアライト」は、直訳すると「一部の領域を照らす照明」みたいな感じになって、日本語ではぜんぜんたいしたことない感じなのですが、その威力は「魔法の光」です。

⑪ 「Copy to Points」の「Pack and Instance」は、レンダリング速度を劇的に速くしてくれます。

⑫ Chapter 15 で、「Houdini を使わなくても AfterEffects だけでできる」と書きましたが、Houdini のコンポジターを使うと、逆に、AfterEffects を使わなくても Houdini だけでできるのでしょうか?。
Chapter 17 著作権の表示
① このページで使用している動画は、山里ぽん太が制作したものです。
② このページで使用している写真、および動画中で使用している写真は、山里ぽん太が撮影したものです。
③ 「Chapter 13 wave ring 8」および「Chapter 14 wave ring 9」で使用している言葉は、山里ぽん太が著述したものです。
④ 「Chapter 15 wave ring 10」で使用している言葉は、Native American の口碑から取材しています。