>   >  時代に即した強烈な新機能とアップデートにより、クリエイティビティが加速する。Houdini 17 レビュー
時代に即した強烈な新機能とアップデートにより、クリエイティビティが加速する。Houdini 17 レビュー

時代に即した強烈な新機能とアップデートにより、クリエイティビティが加速する。Houdini 17 レビュー

Houdini最新バージョンを古参ユーザー目線でレビューする。

※本記事は月刊「CGWORLD + digital video」vol. 245(2019年1月号)からの転載となります。

TEXT_秋元純一(トランジスタ・スタジオ
日本でも指折りのHoudiniアーティスト。手がけてきた作品は数々の賞を受賞している

EDIT_藤井紀明 / Noriaki Fujii(CGWORLD)、山田桃子 / Momoko Yamada

AUP(Annual Upgrade Plan)

Houdiniには、Annual Upgrade Planと呼ばれる年間サポートプランがある。それは非常に高価で、維持していくためにはコストへの懸念は絶えない。それでもなぜ毎年AUPを更新してしまうのか。それは、SideFXの弛まぬ努力の賜物と言えるアップグレードの内容が計り知れないからにほかならない。毎年SIGGRAPH終わり頃からSneak Peekが発せられると、それからほどなくしてわれわれの下へ送られてくる。それはまるで恒例のプレゼントのようでもある。それほどアップグレードの内容が毎年素晴らしいのだ。今回のバージョン17にいたっては、近年でも稀に見るほどの新機能を提げて堂々と登場した。大きな目玉と言えば、やはりVellumであろう。今回の記事でもその内容を十分に紹介できるスペースを用意して、その魅力に迫っていきたいと思う。

もちろん、アップグレードはそれだけではなく、Whitewaterの完全な書き換えや、破壊ツールの大幅な進化、インタラクティブなモデリング性能の向上、プロシージャルモデリングの進化、地形全般、UVのワークフロー、キャラクターアニメーションとリグ、群衆、Furのグルーミング、Gameデベロップ機能の改良、レンダリング性能の向上など、項目の数だけで言うと100を軽く超え、詳細にいたっては把握しきれないほどだ。今回は、その中でもメインとなるアップグレードについて紹介していく。長年にわたり、純粋にHoudiniだけを追求するSideFXがもたらす、新しく進化を遂げたHoudiniの魅力に迫っていこう。

Vellum 1
新たに追加されたシミュレーション機能の概要

Vellumとは、今回新たに搭載されたまったく新しいシミュレーション機能だ。ClothやHair、Soft Body、Grainなど、弾性体のシミュレーションを高速に行なってくれる統合的な機能群である。Soft BodyやClothなどはこれまでFEMを用いてシミュレーションしていたが、その仕様から非常に重たいものだった。VellumはXPBD(Position-Based Simulation of Compliant Constrained Dynamics)というアプローチから設計されている。これはPBDのExtendedという意味で、Substepに非依存のStiffness設定ができる。また、GPU/OpenCLによる高速なシミュレーションが可能だ。Position-Based Dynamicsがベースになっているため、PointのConstraintがコントロールの鍵となってくるが、縫合やブランチ、裂け、膨張などのコントロールも簡単に行える。PointのConstraintを駆使することで吸着なども簡単に表現でき、蜘蛛の巣に引っかかるなどの表現も可能になった。また、レイヤー化ができるため、Clothの重ね着も簡単に表現できる。これまでは難しかった紙などの薄い物が重なっていく様も表現可能だ。細い紐と布をどちらもVellumで作成すれば、旗や風船なども簡単に表現できる。さらに、シミュレーションの際に、ジオメトリにかかってくる負荷などを可視化することが簡単にできるため、裂けなどを表現する際にも、タイミングや位置などを制御しやすくなっている。Furと合わせて使用することで、髪の毛や芝生などのシミュレーションも高速に行える。ソリッドなSoft Bodyを表現でき、FEMと比較しても約8倍ほどの速度でシミュレーション可能だ。また、Plasticityを使用することで、負 荷がかかった状態で形状を留めることができ、曲げなどの表現を簡単に行えるようになっている

これは新たに追加されたVellumのノード群一覧だ。Vellumは当然シミュレーションであるため、DOPノードが主軸となってくる。ただ、Houdini 17のコンセプトにはアーティストフレンドリーな設計思想が見受けられ、これまではDOP Network内でのシミュレーション構築が一般的であったが、HDAによるSOPで直接セットアップしてシミュレーションすることができるようになっている。ここにきて、DOPがフローティングなネットワークになっている伏線が回収できたと言えるだろう。TDレベルでセットアップされていたシミュレーションも、アーティスト自ら簡単にセットアップできるようなしくみになっている。Houdiniの間口が広がってきている証拠だ。今回はDrapeと呼ばれるしくみがあり、衣装の作成からシミュレーションまでを一気に担うことができる。Marvelous Designerのような機能が数個のノードによって可能となっており、これもHoudiniのHDAという思想の賜物と言えるだろう。リストは【1】がDOPで【2】がSOPのものだ。SOPの方が細かいHDAが多く準備されている一方、DOPは最初から構築していく必要があるが、カスタマイズ性には優れている

Vellum Object【A】はDOP内に新しいVellum Objectを作成し、シミュレーションに必要なデータを格納する。また、ガイドの表示などもこのノードが司る。Vellum Source【B】はVellum Patchを作成するノードで、PatchのGeometryとPatchのConstraintの両方を保持する。このノードで、SOPで作成した、VellumのGeometryとConstraintを引っ張ってくることが可能だ。Vellum Constraint Property【C】は、Vellum Constraintで作成したConstraintのプロパティを変更することができる。各プロパティはConstraint PrimitiveのAttributeに対応している。Removeは、Constraint Primitiveを削除することができるなど、機能は多彩である。Vellumの設定項目の中でもかなり重要な役割を担うノードのひとつだ。Vellum Constraint【D】はConstraintを作成するためのノードだ。Micro Solverとして機能するため、Solverと合わせて使用する。Vellum Rest Blend【E】は、シミュレーションもしくは外部のSOPから指定したGeometryのRestの値をブレンドすることができる。意図的にシミュレーションを制御したい場合に重宝するノードだ。Vellum Solver【F】はVellum ObjectをシミュレーションするためのSolverだ。POP Solverの一種で、Attributeを用いたPointやConstraintの制御をSOP的な感覚で行えるのが非常にありがたい。Vellum Constraints【G】はその名前からは想像しにくいがかなり汎用性の高い主要ノードとなっており、Solverに対して必要な情報をこのノードが司る。Constraint Typeで設定したいタイプに指定する。全てのマテリアルタイプがPoint間のConstraintによって制御されるため、このノードの設定は重要だ。Vellum Drape【H】は、作成したPatchを縫い合わせるようにシミュレーションしながらモデリングすることができる。シミュレーション前のジオメトリをあらかじめ作成できるため、衣服のモデリングからシミュレーションまでのセットアップを一手に担っている。Vellum Configure Grain【I】は、ジオメトリを簡単にGrainのPointを作成するためのノード。細かな設定はなく、非常にシンプルに扱うことができる。Vellum Post Process【J】はシミュレーション後の後処理に使用するノードで、メッシュのスムース化や細分化などを行える。Vellum Rest Blend【K】はDOPのVellum Rest Blendと同等に、指定したターゲットにブレンドすることで意図的な制御ができるようになる。Vellum Solver【L】は、設定したGeometryとConstraint、Collisionなどを一挙にシミュレーションにまわすことができる。このノードがあるおかげで簡単にVellumのシミュレーションをSOP上で行うことが可能になっている。Vellum Pack【M】、Vellum Unpack【N】、Agent Vellum Unpack【O】は、それぞれVellumをPackとして扱うためのノードだ。VellumのSOP群は、GeometryとConstraintが2つのアウトプットからなるが、それを1つにまとめることでMergeやSwitchなどが使用しやすくなる。Vellum I/O【P】は、VellumのストリームをPackして簡単にディスクキャッシュをとることができる

Vellum 2
新たに追加されたシミュレーション機能の実践

Vellumを実際にセットアップしてみる。今回のテストでは単純な1枚の旗をSOPベースのセットアップでアプローチしてみたところ、非常に簡単にセットアップできた【1】。Remeshしたジオメトリ【A】を用意して、それにVellum Constraints【B】の設定でConstraint TypeをClothに設定する。そのほか、Pin to Animationで止めたいPointを指定している。続いてVellum Solver【C】を繋げる。ここで注視したいのが、ノードにInputとOutputがそれぞれ3つあることだ。SOPベースのセットアップでは、このように左からGeometry、Constraints、Collisionの3つを常に更新しながら組んでいくフローとなっている。Vellum Solverの中にも入ることができ、その内部ではForceのセッティングができる【D】。ForceはPOPに対するセットアップと同等に扱うことができるため、非常に簡潔である。シミュレーション後には、Vellum Post Process【E】を使ってSmoothやCollision Correctionなどの様々な調整が可能だ。今回は、VisualizeでBendのストレスを可視化している【2】

SOPベースのVellumでも、異なったマテリアルのシミュレーションを同時に行うことができる。例えばClothとGrainの組み合わせだ【3】。あらかじめEdge Fracture【F】で切れ目を入れたClothに対して、Vellum ConstraintsのWeld Points【G】で切れ目をコントロールできるようにしておく。次に、Vellum Configure Grain【H】を使ってGrainを作成する。それぞれVellum Pack【I】を使ってGeometryとConstraintsを1つにしてからMergeして、Vellum Unpack【J】を使って元に戻し、最後にVellum Solverを使ってシミュレーションするながれだ。これによって、それぞれを同時かつ非常に簡単にシミュレーションすることができる仕様になっている

Vellumの中でも大きな目玉機能として取り上げたいのがVellum Drapeだ。Drapeのしくみを使うことで、キャラクターなどの衣装を簡単につくり出すことができる。まだまだ発展途上ではあるが現状でも十分カスタマイズ性は感じられ、今後HDAなどの充実が期待できそうだ。まずは、【4】のように型紙から切り出したようなPatchを作成する。Patchの作成においてもSOPには新たなHDAが追加されており、これを利用して衣装の下地を作成する。次に、Vellum Drapeを使って、それぞれを縫い合わせていく。縫い合わせる箇所はPointやGroupで選ぶ必要があり、この点がもう少し改良されればプリーツなどのディテールを詰めやすくなると感じている。Vellum Drapeはあくまでシミュレーション前の形状をシミュレーションしながらキャラクターに着せていくというもので、Freezeさせるフレームを決めてキャッシュ等をとるか、SOP上でFreezeさせる必要がある。ここまでできれば、あとはVellum Solverを使ってシミュレーション可能だ【5】

次ページ:
FLUID
進化したFluidシミュレーション

特集