今年もHoudini新バージョンのリリース時期がやってきました。毎年わくわくの新機能を盛り込んでくるHoudiniが、ついにバージョン20.0になりました! 本記事では、Houdini 20.0(以下、20.0)の要注目の新機能を紹介していきます。
(※機能や画像は開発中のものなので、製品版とは異なる場合があります)

記事の目次
    ※本記事は月刊『CGWORLD + digital video』vol.304(2023年12月号)掲載の記事を再編集したものです。

    Information

    Houdini 20.0

    リリース:2023年11月
    価格:1,995ドル[Houdini Core/商用版ワークステーションライセンス-WS-(ノードロック)]、4,495ドル[Houdini FX/商用版ワークステーションライセンス-WS-(ノードロック)]、2,995ドル[Houdini Core/商用版ローカルアクセスライセンス-LAL-(フローティング)]、6,995ドル[Houdini FX/商用版ローカルアクセスライセンス-LAL-(フローティング)]ほか。12月31日まで、Houdini Core LALは500ドルOFF、Houdini FX LALは1,000ドルOFF
    販売元:インディゾーンボーンデジタル
    www.sidefx.com/ja

    新機能に加え、リグ系に重点を置く新フレームワーク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システムの代表的な機能

    ①Curve SOPで描かれたガイドカーブ、②Feather Shape Organize SOPおよびFeather Template from Shape SOPで作成された羽、③グルーミング系ノードで調整された羽、④テクスチャで色づけされた羽

    ▲①Guide Groom SOPで作成されたガイドカーブ、②Feather Template Interpolate SOPで配置された羽、③ガイドカーブ作成に用いた鳥モデルと羽を両方表示したもの

    Feather関連のノードがSOPだけでも20個以上追加されました。また20.0からは、Tabメニューの項目がサブカテゴリごとに分類されるようになっています

    レンダリング面では、新しくKarma Fur VOPノードが追加されました。これはHoudini 19.0で実装されたKarma Hair VOPを拡張したもので、毛を構成する3種類の層、Cuticles(外層)、Cortex(中間層)、Medulla (中心)を考慮したリアルなシェーダとなっています。パラメータは少し馴染みのない項目が多いですが、プリセットも用意されているので、簡単にハイクオリティな毛のシェーダを使えるようになっています。

    Karma Furシェーダ

    Karma Furシェーダで再現される毛の構造(Cuticles、 Cortex、 Medulla)のイメージ図
    Karma Furシェーダが適用されたFurのレンダリング画像

    ▲Featherのレンダリング画像

    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 Render Settings LOPのEnable Indirect Guidingを有効にするだけでOK。これまであったサンプリング数の設定がなくなり簡素化されました
    ▲Karma Sky Dome Light LOPを使った雲のレンダリング画像。HDRIマップの代わりに、物理ベースの昼の空の分析モデルが使われています。雲は後述の新しいCloud系ノードで作成

    Karma Room Map VOPによるParallax Mappingの実装も注目ポイントです。これはシェーディングに用いるノードで、専用のテクスチャを使うことで部屋のイメージを平面に投影できます。カメラの位置が変わると部屋の見える範囲も変わり、平面なのに奥行きのある部屋を表現できます。データ容量を大きく節約できるため、近年のゲームなどで見かけるようになった技術で、20.0からはKarmaでも使えるようになりました。専用のレンズシェーダを用いてテクスチャを作成し、それに対応したマテリアルに割り当てることで独自のRoom Mapを作成できます。

    マテリアルまわりでは、Material Linker LOPが改良され、標準でサンプルマテリアルがいくつか追加されています。AMD MaterialX Libraryにも対応したので、これらを活用することも可能です。

    Karma Room Map VOPによるParallax Mapping

    Karma Room Map VOPを用いることで、左側の板が、右側のような奥行きのある室内としてレンダリングされます
    カメラを移動すると、視差を考慮した奥行きも表現されます
    Karma Room Map VOPで使用するテクスチャ。あらかじめ作成しておいた部屋をKarma Room Lens VOPというレンズシェーダを通してレンダリングすると、このような特殊なマップを作成できます

    改良されたMaterial Linker LOP

    Material Linker LOPに登録されているマテリアルのカタロ
    ▲カタログのマテリアルを割り当てたテストジオメトリのレンダリング画像。Material Linker LOPはAMD MaterialX Libraryも読み込めます

    レンダリング管理では、Clone Control Panelというものが追加されました。ひと言で説明すると、Solarisでのレンダリングをバックグラウンドで管理する機能です。複数のレンダリングタスクを登録でき、Context Option機能などと併用することでレンダリング対象のネットワークを細かく調整できます。例えば複数カメラでのチェックレンダリングをまとめて実行したい場合などに利用できそうです。レンダリング結果はRender Galleryに追加されます。このレンダリングはメインのHoudiniとは別プロセスで行われ、クラッシュなどのトラブルがあってもメインのHoudiniは守られるので安心です。Render GalleryウインドウはRender State表示が一新され、レンダリング時間、サンプル数、レイの数などをはじめ、これまでよりも多くの情報を確認できるようになっており、画面もおしゃれです。

    Clone Control Panelによるレンダリング管理

    緑枠部分がClone Control Panel。ネットワーク内の複数のレンダリング設定を登録可能。Context Optionなどを設定し、レンダリングしたいネットワークを細かく指定できます。レンダリングはバックグラウンド処理され、結果はRender Galleryに返されます
    SolarisのRender Stateが新しくなり、多くの情報を確認できるようになりました

    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

    Pendulum Motion SOPで作成された、カピバラによる雲梯のアニメーション。始点と終点のフレームと、PiviotになるSkeletonを設定することで、入力アニメーションに対して振り子の動きが追加されます
    Projectile Motion SOPで作成された放物線状のアニメーション。入力されたアニメーションに対してフレームを指定すると、その間で自然な放物線の動きを生成してくれます

    Franken Muscle SOP

    Franken Muscle SOPによって割り当てられたmuscle_idの領域を可視化したもの。これにFiber Groom SOP、Muscle Properites SOPなどのノードを適用することで、単一ジオメトリであっても、各領域に個別の筋の挙動を与えられます
    新たに追加されたテストジオメトリのカピバラ(Capybara/奥の3体)と、Electra(手前の1体)。どちらもKineFXに対応しており、すぐに動かせます。またカピバラには筋と骨格のジオメトリも含まれており、Muscle機能のテストにも使えます

    UIまわりでは、プレイバー上にBookmarkを作成する機能が追加されています。例えばカット尺、レンダリング尺、シミュレーションの範囲などをBookmarkとして登録することで、それらを素早く切り替えられます。プレイバー上でも色分けされており、視覚的に確認しやすくなっています。またBookmark編集用としてBookmarks Editorペインも追加されています。Animation EditorにはCurve Pulling機能が追加され、より直観的な編集が可能になりました。これを有効にすると、アニメーションカーブの制御ポイントのない部分を引っ張ったりすることでカーブを編集できます。

    BookmarkとCurve Pulling機能の追加

    作成されたBookmarkをダブルクリックすると、プレイバーのRangeがそれにフィットします
    新しく追加されたBookmarks Editor。タイムスライダーのBookmarkを一括編集できます
    Animation Editorの上部についたCurve Pullingオプション。有効にすると、カーブの途中を引っ張ったりすることで編集できます

    β版での実装ですが、APEX(All-Purpose EXecution) も注目ポイントです。APEXは新しいビジュアル・プログラミング・フレームワークで、見た目はVOPに似ていますが、SOPとVOPの中間に位置するものらしく、FKやIKをはじめとしたリグ構造、デフォームなどの機能を作成できるようです。既存のKineFXの諸機能に相当するものをAPEXで作成することもできるらしく、ユーザー独自のリグ開発に役立つと思われます。20.0のAPEXはリグ系に重点を置いた機能になるようですが、それ以外にも活用できる汎用性の高さを感じました。本記事執筆時点ではまだ不明点が多いので、筆者もリリースを心待ちにしています。

    APEX処理の実行例

    APEXのネットワーク構築は、APEX Network Viewという専用のペインで行えます。見た目はVOPに近いですが別物です。作成したAPEXのネットワークはApex Edit Graph SOP、またはStash SOPに格納できます
    APEX処理の実行例のネットワーク。ネットワーク左上のApex Edit GraphがAPEXネットワークを格納したノード。右上のAttribute Adjust Dictionary SOPはAPEXのネットワーク内で使用する値を生成しているノード。それらを中央のApex Invoke Graph SOPが受け取ることで処理が実行されます。ネットワーク構築=即実行とはならないのがSOPやVOPと異なる点。既存のInvoke Compiled Graph SOPに使い勝手が似ています

    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

    緑枠部分がTabメニューのWhitewater Configureからつくられるネットワーク。Flip Solver SOPノードに接続するだけで、白波のシミュレーションが可能。シミュレーション後のアトリビュート調整用にWhitewater Post Process SOPノードも実装されています
    Remesh Bubbles SOPノードで作成された泡メッシュ。重ならないように交差部分が押しつぶされた形状になっています

    より高いクオリティの雲を作成できるCloud系ノード

    左から、Cloud Shape Generate SOPでつくったSphere群、既存のVDB from Polygon SOPで変換したVDBボリューム、Cloud Billowy Noise SOPで加工した雲Karmaによるレンダリング画像
    Sky Box SOPノードで作成した雲
    Karmaによるレンダリング画像
    Ripple Solver SOPノードで発生させた波紋。Restアトリビュートをもったジオメトリを入力に使うことで、現在の形状との差によるRippleのシミュレーションをSOPで行なってくれます

    ほかには、風と遮蔽物の関係を表現するための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

    POP Wind Shadow DOPの活用例。コリジョンオブジェクトによって風の影響を遮蔽できるようになっており、この機能はVellumにも標準で組み込まれています
    RBDでSticky Collisionを使った粘着効果の活用例。これまではWrangleなどを使っていた処理を、簡単に行えるようになりました
    Sticky Collisionと群衆の活用例。飛んできた赤い槍がエージェントに当たるとコリジョンが付着し、その数をトリガーにRagdollへの切り替えが行われています。黄色のエージェントが、Ragdollに切り替わっているものです

    Houdini Procedural:Ocean LOPノード

    SolarisでシェルフからOceanを作成すると、Houdini Procedural:Ocean LOPノードを含んだSolaris用の海のネットワークが作成されます。カメラの視界内のメッシュを再分割するなど、海を効率よく作成するための機能が多く含まれています

    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系ノードなど、そのほかの新機能

    • Pivot Lineを中心にポリゴンを押し出すPoly Hinge SOPの活用例
    • Measure Thickness SOPで計測した厚みのビジュアライゼーション
    ▲(上)Scatter SOPでつくられた点群と、(下)Point Cloud Surface SOPで変換されたメッシュ。3Dスキャナなどで計測された点群からメッシュを生成するなどの利用が想定されます
    Texture Mask Paint SOPの活用例。ポリゴンに依存せず、自由にペイントできます。これまでのようにCdアトリビュートにペイント情報が保存されるわけではなく、UVベースでペイントされており、ペイント結果は2D Volumeとして出力可能です
    Scene ViewのVulkanへの切り替えは、Preferencesの設定から行えるようになっています

    細かな点では、動画ファイルの入出力に関しても改良が行われています。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)