今年もHoudini新バージョンのリリース時期がやってきました。毎年わくわくの新機能を盛り込んでくるHoudiniが、ついにバージョン20.0になりました! 本記事では、Houdini 20.0(以下、20.0)の要注目の新機能を紹介していきます。
(※機能や画像は開発中のものなので、製品版とは異なる場合があります)
Information
新機能に加え、リグ系に重点を置く新フレームワークAPEXのβ版も実装
バージョンアップごとに驚愕の新機能を実装してくるHoudiniの勢いは今回も衰えておらず、20.0でも数多くの新機能が発表されています。まず目を引くのはFeatherシステムです。ガイドカーブを基にした羽の作成、拡張されたグルーミング機能、新たに追加されたKarma Furシェーダなど、羽作成に関する多くの機能が追加されました。
Solaris関連は堅実なアップデートが多い印象です。レンダリングまわりでは、これまでβ版だったKarma XPUの正式リリースをはじめ、Karma Room Map VOPによるParallax Mappingの実装、Clone Control Panelによるレンダリング管理など、いくつもの新機能が追加されています。ほかにも様々なアップデートがあり、MantraからKarmaへの移行を実感しました。
アニメーション関連では、KineFXへの物理ベースアニメーションの導入、β版だったMuscle機能の正式リリースといったアップデートが行われています。また以前からSneak Peekなどに登場していたカピバラがテスト用モデルとして仲間入りしており、キャラクターモデルに加え、筋と骨格のジオメトリも内包しているのでMuscle機能のテストに使いやすいのも嬉しいポイントです。
定期的に新しい概念を導入してくるのもHoudiniの特徴で、今回はAPEXというリグ系に重点を置いた新しいタイプのフレームワークが実装されています。β版としての実装ですが、VOPのようにネットワークを構築することで、リグ構造やデフォームを作成できます。
エフェクト関連では、WhitewaterのSOP化、Cloud系ノード、改良されたKarma Oceanなどが注目ポイントです。そのほかの要注目の新機能としては、UVベースのPaint SOP、VulkanへのScene Viewの対応、機械学習系ノードの追加などがあります。以降では、これらの新機能の詳細を紹介していきます。
Topic 1:Featherシステムの追加
20.0の目玉のひとつが、Featherシステムの追加です。羽の作成、グルーミング機能の拡張、VellumやKineFXとの連携による羽のアニメーション、Solarisでのプロシージャルな羽のレンダリング、新しいKarma Furシェーダなど、Feather関連の機能がまとめて整備されました。
単一の羽はガイドとなるカーブを基に作成できます。作成された羽は、Shaftと呼ばれる中心の羽軸と、Barbと呼ばれる横に生えた無数の毛で構成されています。毛の本数や太さは細かく調整でき、既存のグルーミング系ノードを駆使することで、よりリアルな羽に仕上げていくことが可能です。作成された羽はCondenseという一種の圧縮状態となり、SOP上ではShaftのアトリビュートだけをもつ単純なポリゴンカーブとして扱われますが、描画時にGPUが仮想のBarbカーブを作成するようになっています。Condense状態のときは編集などに制限がかかる代わりに、システムリソースを節約して効率よく描画できるようになっています。羽の形状などを細かく調整する際には、Feather Uncondensed SOPを使ってポリゴンに戻して、編集後にFeather Match Uncondensed SOPでCondense状態に戻します。既存のPackの概念のFeather版といった感じでしょうか。
既存のHair Generate SOPやGuide Groom SOPもFeatherに対応するように機能拡張されており、例えばこれらのノードでガイドカーブを作成し、それを羽に置き換えるかたちで、キャラクターなどに羽を割り当てることが可能です。ほかのグルーミング系ノードにもFeatherに対応した機能が追加されており、これらと組み合わせることで羽の向きや大きさを変更するなど、外観を調整できます。なおFeather自体は基本的にポリゴンのラインなので、Vellumを使ったシミュレーションにも対応しています。ほかにもFeatherからポリゴンのProxy形状を作成するノードなど、様々なノードが用意されています。
Featherシステムの代表的な機能
レンダリング面では、新しくKarma Fur VOPノードが追加されました。これはHoudini 19.0で実装されたKarma Hair VOPを拡張したもので、毛を構成する3種類の層、Cuticles(外層)、Cortex(中間層)、Medulla (中心)を考慮したリアルなシェーダとなっています。パラメータは少し馴染みのない項目が多いですが、プリセットも用意されているので、簡単にハイクオリティな毛のシェーダを使えるようになっています。
Karma Furシェーダ
Topic 2:Solaris関連のアップデート
Solaris関連はインターフェイスや既存ノードの改良など、堅実なアップデートが多い印象で、特にレンダリングまわりでは目立ったアップデートがいくつもありました。まず、これまでβ版だったKarma XPUが晴れて正式リリースされました。それに伴いKarmaに専用アイコンが割り当てられました。
◀︎Karma専用アイコン
機能面では、これまでKarma XPUで非対応だったCryptomatteやDeep imagesへの対応がなされています。コースティクスの設定も簡略化されており、KarmaのCaustics設定を有効にするだけになったのはありがたいです。
ライトまわりでは、空用ライトとしてKarma Sky Dome Light LOPが追加されました。これはHDRIマップの代わりに物理ベースのSkyモデルを使用するDome Lightで、Distant Lightを組み込んだ、Karma Physical Sky LOPノードも合わせて追加されています。後述する新しいCloud系ノードと一緒に使うことで、よりリアルな雲を表現できるようになりました。
コースティクスの設定と、Karma Sky Dome Light LOP
Karma Room Map VOPによるParallax Mappingの実装も注目ポイントです。これはシェーディングに用いるノードで、専用のテクスチャを使うことで部屋のイメージを平面に投影できます。カメラの位置が変わると部屋の見える範囲も変わり、平面なのに奥行きのある部屋を表現できます。データ容量を大きく節約できるため、近年のゲームなどで見かけるようになった技術で、20.0からはKarmaでも使えるようになりました。専用のレンズシェーダを用いてテクスチャを作成し、それに対応したマテリアルに割り当てることで独自のRoom Mapを作成できます。
マテリアルまわりでは、Material Linker LOPが改良され、標準でサンプルマテリアルがいくつか追加されています。AMD MaterialX Libraryにも対応したので、これらを活用することも可能です。
Karma Room Map VOPによるParallax Mapping
改良されたMaterial Linker LOP
レンダリング管理では、Clone Control Panelというものが追加されました。ひと言で説明すると、Solarisでのレンダリングをバックグラウンドで管理する機能です。複数のレンダリングタスクを登録でき、Context Option機能などと併用することでレンダリング対象のネットワークを細かく調整できます。例えば複数カメラでのチェックレンダリングをまとめて実行したい場合などに利用できそうです。レンダリング結果はRender Galleryに追加されます。このレンダリングはメインのHoudiniとは別プロセスで行われ、クラッシュなどのトラブルがあってもメインのHoudiniは守られるので安心です。Render GalleryウインドウはRender State表示が一新され、レンダリング時間、サンプル数、レイの数などをはじめ、これまでよりも多くの情報を確認できるようになっており、画面もおしゃれです。
Clone Control Panelによるレンダリング管理
Topic 3:アニメーション関連の新機能や、APEXのβ版実装
アニメーション関連では、物理ベースモーションをKineFXに組み込む機能が追加されました。アニメーションに振り子の慣性の動きを追加するPendulum Motion SOPと、放物線の動きを追加するProjectile Motion SOPは、アニメーションと物理ベースモーションの融合というHoudiniらしいユニークな機能です。ポーズとおおまかなキーフレームを設定すれば慣性や放物線の動きを作成してくれるので、上手く使えばアニメーション作業を大幅に簡略化できそうです。
Muscle系の機能もβ版から正式リリースになりました。併せて新規ノードのFranken Muscle SOPが追加されています。これは単一のジオメトリを複数の領域に塗り分けることで、それぞれに個別の筋の挙動を与えられるノードです。Muscleの設定自体はFiber Groom SOPやMuscle Flex SOP、Muscle Solver Vellumなどで行うので、既存のワークフローに組み込むかたちで使用できます。テストジオメトリとして、カピバラをはじめ、いくつかの新顔が追加されました。これらはKineFXに対応しており、特にカピバラは筋と骨格のジオメトリも内包しているのでMuscle機能の検証などに最適です。
Pendulum Motion SOPと、Projectile Motion SOP
Franken Muscle SOP
UIまわりでは、プレイバー上にBookmarkを作成する機能が追加されています。例えばカット尺、レンダリング尺、シミュレーションの範囲などをBookmarkとして登録することで、それらを素早く切り替えられます。プレイバー上でも色分けされており、視覚的に確認しやすくなっています。またBookmark編集用としてBookmarks Editorペインも追加されています。Animation EditorにはCurve Pulling機能が追加され、より直観的な編集が可能になりました。これを有効にすると、アニメーションカーブの制御ポイントのない部分を引っ張ったりすることでカーブを編集できます。
BookmarkとCurve Pulling機能の追加
β版での実装ですが、APEX(All-Purpose EXecution) も注目ポイントです。APEXは新しいビジュアル・プログラミング・フレームワークで、見た目はVOPに似ていますが、SOPとVOPの中間に位置するものらしく、FKやIKをはじめとしたリグ構造、デフォームなどの機能を作成できるようです。既存のKineFXの諸機能に相当するものをAPEXで作成することもできるらしく、ユーザー独自のリグ開発に役立つと思われます。20.0のAPEXはリグ系に重点を置いた機能になるようですが、それ以外にも活用できる汎用性の高さを感じました。本記事執筆時点ではまだ不明点が多いので、筆者もリリースを心待ちにしています。
APEX処理の実行例
Topic 4:エフェクト関連の新機能
エフェクト関連では、ダイナミクスまわりにWhitewater Solver SOPが実装されました。ひとつ前のバージョンでSOPベースのFLIPが実装されたので、これで海のシミュレーションがSOPで完結できるようになりました。TabメニューにWhitewater Configureが追加されたので、ネットワークも簡単に構築できます。それ以外にも、Remesh Bubbles SOPというものが追加されています。これはポイントからSphereジオメトリを作成してくれるノードで、Sphere同士が重ならないように交差部分を押しつぶしてくれます。泡のメッシュ用とされていますが、ほかにも様々な使い道がありそうな機能です。
雲系に関しても、雲の基になるSphereを簡単に作成できるCloud Shape Generate SOPをはじめ、雲のディテールを加えるCloud Billowy Noise SOP、Cloud Wispy Noise SOP、雲のDensity調整に特化したCloud Adjust Density Profile SOPなどの新しいCloud系ノードが追加されています。これらを組み合わせることで、より高いクオリティの雲を作成できるようになりました。また広域の空の作成用としてSky Box SOPノード、その制御用としてSky Field系のSOPノードが追加されています。Sky Field系のSOPノードは2Dボリュームを用いて雲のパターンを効率よく作成できます。波紋をつくるRipple Solverも20.0でSOP化されています。これまでのバージョンにもRipple SOPという名前のノードはありましたが、20.0で追加されたRipple Solver SOPはDOPにあったRipple Solver DOPがSOP化された感じです。
Whitewater Solver SOPと、Remesh Bubbles SOP
より高いクオリティの雲を作成できるCloud系ノード
ほかには、風と遮蔽物の関係を表現するためのPOP Wind Shadow DOPノードが実装されました。風の方向、もしくはVelocityの方向にレイを飛ばし、遮蔽物にヒットしたらそこでVelocityを減衰してくれます。このノードはVellumにも組み込まれており、パラメータ設定を変更することでコリジョンオブジェクトによって風の影響が遮蔽されるようになっています。コリジョンまわりでは、Sticky Collisionというくっつくタイプのコリジョンが実装されたので、これまではVellumやWrangleを使っていたくっつく系の処理を簡単に行えるようになりました。それに伴い群衆系のノードにもSticky Collisionとの連携機能が組み込まれ、Ragdollへの切り替えトリガーに使えたりと用途が広がっています。
Oceanまわりでは、Solarisとの親和性がさらに上がっています。Houdini Procedural:Ocean LOPノードが追加され、高解像度の海をさらに効率よく作成できるようになりました。このノードはMaterialXでつくられたシェーダを内包しているので、Solarisに対応したサードパーティレンダラであれば、Karmaと同様に海のレンダリングができるようです。
POP Wind Shadow DOPと、Sticky Collision
Houdini Procedural:Ocean LOPノード
Topic 5:ほかにも気になる新機能が満載!
SOP系の新規ノードとしては、Pivot Lineを起点にポリゴンを押し出すPoly Hinge SOP、厚みを測るMeasure Thickness SOP、点群をそのままSurfaceに変換できるPoint Cloud Surface SOPなどが追加されています。また任意のメッシュを四角形ポリゴンに再編するQuad Remesh SOPもβ版ですが実装されました。新しいペイント系ノードとして、Texture Mask Paint SOPも実装されています。これはUVをベースとしてジオメトリに直接ペイントできるノードで、ポリゴンやポイントに依存しないペイントが可能です。
Scene ViewのVulkan対応も20.0から行われています。VulkanとはOpenGLの後継としてつくられた次世代APIです。並列処理の効率化、CPU負担の軽減、描画パフォーマンスの向上が期待されます。β版としての実装なので未対応のノードや機能もあるようですが、今後は全てVulkanに移行していくと思われます。
SOP系ノードなど、そのほかの新機能
細かな点では、動画ファイルの入出力に関しても改良が行われています。ffmpegのHoudiniバージョンであるhfmpegが実装され、Background Imageに動画ファイルを設定したり、Mplayから動画ファイルを直接出力したりできるようになっています。主要なコーデックはあらかたサポートされているようです。
ONNX Inference SOPという機械学習系のノードも追加されています。ONNXとはオープンソースで開発されているマシンラーニングのフォーマットで、ONNX Inference SOPはその学習結果を反映するのに使用します。機械学習自体はPDGとPythonを用いることで行えるようです。これもまた次世代の機能として押さえておきたい点です。
さらに使いやすく、さらに高いクオリティの画を作成できるようになったHoudini 20.0を、ぜひ活用していきましょう。まだHoudiniを触ったことがない方も、この機会にぜひお試しください!
Information
月刊『CGWORLD +digitalvideo』vol.304(2023年12月号)
特集:限界に挑む! 最新モバイルゲームグラフィックス
定価:1,540円(税込)
判型:A4ワイド
総ページ数:112
発売日:2023年11月10日発売
TEXT_北川茂臣(No More Retake 3DCG屋さん向け Tips & Referenceサイト:nomoreretake.net)
EDIT_尾形美幸/Miyuki Ogata(CGWORLD)、李 承眞/Seungjin Lee(CGWORLD)