山里ぽん太

In The Fur Thicket

18 November 2018

山里ぽん太はFurの藪の中。


Chapter 1 ファー それは遥かなる
Fur , the far frontier .
ファー それは遥かなる未開の地。
というわけで、ファーです。
自分のヘアスタイルとか、髪の手入れとかには、まるっきり興味がないので、ファーにも興味はありません。
駄菓子菓子、ほうぢにを使う以上、ファーも知っておかなければならないでしょう。
しかし、リファレンスを見ても、さっぱりわかりません。
というわけで、とりあえず、シェルフのボタンをひとつひとつ押して、Trek してみましょう。
と思ったのですが、途中で、そういうものでもなさそうだ、ということに気がつきました。
この ponticle は、髪に興味がなく、やる気もない僕が、よくわからないまま、ファーの藪の中を転げ回った、七転八倒の記録です。
Houdini のバージョンは17.0です。
Chapter 2 Hair Util シェルフツール
ファーをいじってみようか、と思って、ジオメトリノードを眺めていても、よくわかりませんでした。
それで、とりあえず、シェルフツールのボタンを押してみることにしました。
ファー関係のシェルフツールは、3つのタブにわかれています。
1 Hair Util
2 Guide Process
3 Guide Brushes
櫛やブラシなんか使ったことのない僕には、「3 Guide Brushes」は無用です(笑)。
というわけで、とりあえず、「Hair Util」の一番左の「Add Fur」のボタンを押してみましょう。

Chapter 3 とりあえず Add Fur
というわけで、ネットワークビューで「Geometry」を作って、中に入って「Box」を作って、そのまま「Add Fur」のボタンを押してみました。
こんなことになりました。
短い毛がびっしりと生えました。
ネットワークビューには、次の3つのオブジェクトノードが追加されています。
1 Guide Groom
2 Guide Deform
3 Hair Generate
Fur は、ジオメトリネットワークではなく、オブジェクトネットワークで、ネットワークが作られるようです。
いやー、驚きました。
「びっくりしたな!もう!」と叫びたいところですが、死語なので、叫びません(笑)。

Chapter 4 Create Guides
というわけで、「Trek」シリーズよろしく、シェルフツールのボタンを順番に押してみようと思いました。
というわけで、「Add Fur」の次の「Create Guides」ボタンを押してみました。
すると、「Guide Groom」ノードが追加されました。
ややっ!、これはちょっとなんでしょう?(笑)。
と、思考が混乱して、意味不明なひと言をつぶやいてしまう僕でした。

Chapter 5 Guide Process その1
というわけで、Chapter 3 の状態に戻しました。
とにかく、毛の長さを伸ばしたい、と思いました。
しかし、どうすればよいのかわかりません。
シェルフツールのファー関係のタブを切り替えながら、いろいろ見ていました。
すると、「Guide Process」タブの中に、「Set Guide Lenght」というボタンがあることに気がつきました。

これを押してみましょう。
その前に、このタブの一番左に、「Initialize Guides」というボタンがあるので、これを押しましょう。
ということで、「Initialize Guides」と「Set Guide Lenght」を続けて押しました。
すると、こんどは、ジオメトリノードの「Guide Initialize」と「Guide Process」ノードがつながりました。
でもって、「Guide Process」のパラメータの「Length」を「5」にしてみました。
この絵は、その状態から、何を思ったか、プリミティブ番号を表示させた絵です。
とにかく、ファーが長くなりました。

Chapter 6 Guide Process その2
「Guide Process」には、10個の Operation が用意されています。
 1 Set Direction
 2 Set Lift
 3 Set Length
 4 Displace
 5 Wave
 6 Straighten
 7 Smooth
 8 Frizz
 9 Bend
10 Set Simulation Attributes
つまり、いろんなことができるということです。
というわけで、いろいろ遊んでみました。
ここでは、シェルフツールを使わないで、ネットワークビューで、直接「Guide Process」ノードをつなぎました。

ところで、この「Guide Process」ノードは、16.5 のリファレンスには載っていません。
というわけで、17.0 のリファレンスを開いてみたところ、やっぱり載っていません(笑)。
なんでや?。

Chapter 7 タワシからハケに
Chapter 6 までは、Box の全部の面から毛が生えているタワシ状態でした。
これを、ひとつの面から生やして、ハケにしようと思いました。
Houdini は一般的に、「Group」に、ジオメトリを構成するたくさんのプリミティブのなかの一部のプリミティブの番号を指定すると、その指定したプリミティブだけをクックしてくれます。
なので、「Group」を指定できるノードを探しました。
見つけましたー(笑)。
「Guide Groom」オブジェクトノードに「Group」がありました。
試しに、「0」を指定してみました。
すると、見事にハケになりました。

Chapter 8 ミクの髪 その1
ぜんぜんできない状態から、だいぶできるようになったような気がしました(笑)。
いや、そういうのは、たいがい気のせいなのです(笑)。
というわけで、だいぶできるようになった気のせいで、MODO でもやった、「初音ミクの髪」のような、揺れるロン毛を作ってみようと思いました。
生意気に、16.5 のリファレンスを見て、「Guide Simulate」ノードをつなげばできるだろう、と思いました。
というわけで、「Guide Simulate」ノードをつないでみました。
ソルバは、「Wire Solver」と「Vellum」を選択できるようになっていますので、迷わず「Vellum」を選択しました。

シーンビューはこんなんなりました。
でけた!(笑)。
と思いましたが、レンダリングすると、何も描かれませんでした(笑)。
そりゃそうです。
シーンビューでは、ヘアーガイドを見ているだけなのですから。
なんとかして、「Hair Generate」ノードにつながないといけないのですが、方法はわかりませんでした。

Chapter 9 ミクの髪 その2
「Guide Simulate」ノードをつなぐ方法は、シェルフツールに教えてもらうことにしました。
というわけで、「Hair Util」にある「Simulate Guides」ボタンを押してみました。

そうすると、こんなふうにつないでくれました。
簡単じゃーんwww。

というわけで、シーンビューは、こんなんなりました。

というわけで、調子に乗ってレンダリングしてみました。
5倍の高速度撮影です(笑)。
ヘアーの自己衝突をオンにしてありますが、もとのジオメトリの Box は「Static Object」にしてないので、めり込んでいると思います(笑)。

Chapter 10 ブラシをかける その1
というわけで、Chapter 7 で作ったハケに、ブラシをかけてみました。
まずは、シェルフツールの「Guide Brushes」タブにある「Screen Brush」です。

いろいろいじってみたら、こんなんなりました(笑)。

Chapter 11 ブラシをかける その2
つぎは、シェルフツールの「Guide Brushes」タブにある「Surface Brush」です。
このツールは、スキンの表面にブラシをかけるみたいです。

Chapter 12 草むら
次は、毎度おなじみ、草むらを作ってみました。
この作業のとき、ファーの長さは、「Guide Groom」オブジェクトノードで指定できることに気がつきました。
なので、ここでは「Guide Process」ジオメトリノードはつないでいません。

レンダリングすると、こんな感じです。

Chapter 13 草むらに風 その1
草むらに風を吹かせてみましょう。
「Guide Simulate」ノードに、「Wind Force」の値を入れるフィールドがあります。
試しに、「Wind Force」に「0.1」と入れてみました。
草がぜんぶ倒壊しました(笑)。
これはアレです。
「Gravity Force」が利いているのです。

というわけで、「Gravity Force」をゼロにして、「Wind Force」を「1.0」にして試してみました。
「Wind Force」がゼロになると復元します。

Chapter 14 草むらに風 その2
次に、風を、周期的に強くしたり弱くしたりしてみました。
ここでは、「Wind Force」に「Motion FX」の CHOP ネットワークを使ってみました。


で、レンダリングしてみました。
動きは単調ですが、この段階では良しとしましょう。

Chapter 15 考察
① 実際にいろんな作品を作る上で、もっとこうしたい、というようなニーズが出てくると思います。そのときに、たくさんのノードと、たくさんのパラメータが役に立つときがくると思います。試しにやってみた、では、この程度かと思います。

② Chapter 14 の風にしなる草むらを作るときに、シーンビューとレンダービューでは草が風にしなって傾いているのに、レンダリングして書き出したファイルに描かれた草は直立しているという現象が生じました。シミュレーション結果をキャッシュファイルに書き出して、レンダリングしたら、できました。いろいろあるものだ、ということにしておきたいと思います。

③ Chapter 14 の風にしなる草むらは、生えているぜんぶの草が、同じタイミングで傾いていますが、タイミングをずらして、草が波のように動く様子を描くのにはどうすればよいかな、と考えていました。MODO なら、フォールオフをつないでできそうですが、Houdini でどうすればよいのか、よくわかりませんでした。力技でするなら、SOP で1本の草がたわむアニメーションを作って、Alembic ファイルに落としておいて、これを File で読み込んで、Time Shift で位相をずらして、Scatter してポイントをばらまいて、Attribute Wrangle でグループに分けて、Copy To Point してあげると、たぶんできるだろうと思います。Fur でやるには、どうすればよいか、よくわかりません。Vellum のワイヤソルバとの関係もあって、難しそうです。今後の課題です。