バージョン16から1年も経たないうちにリリースとなったHoudini 16.5。0.5という差分にとどまらない、多くの新機能の追加や性能強化が図られている。今回も、著書「Houdiniではじめる 3Dビジュアルエフェクト」でおなじみ、トランジスタ・スタジオの平井豊和氏に新機能を中心にレビューしてもらった。

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

TEXT_平井豊和(トランジスタ・スタジオ
最近、投資にハマっています。ブログ:graberry.web.fc2.com Twitter:@hiraitoyokazu

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

information
「Houdini 16.5」
リリース:2017年11月中旬
価格:248,400円(Houdini Core/ノードロック)、558,900円(Houdini FX/ノードロック)ほか
販売元:インディゾーン、ボーンデジタル
www.sidefx.com/ja
※今回のレビューは正式リリース前のビルドを基にしたものであり、ここに記載された以外にも新機能が搭載される予定です。

実質的にメジャーバージョンアップと言える大きな更新

今年の2月に16.0にバージョンアップしたことが記憶に新しいHoudiniですが、早くもバージョン16.5へのバージョンアップがアナウンスされました。思いつくところではバージョン12.5でOpenVDBやWrangleの機能が本格的に追加されたということもあり、「~.5」というバージョンも実質的なメジャーバージョンアップと言える大々的な更新が施されることがあります。今回は、バージョン16.0でインターフェイスなどに施された抜本的な革新へのさらなる改善をはじめとして、次なるバージョンへのステップと思わせるような期待感にあふれる更新をも含んでいます。

Fluid関連では大きな更新点がいくつか見られ、Narrow Band(狭帯域)やAir Imcompressibility(空気の非圧縮性)を考慮したFLIPシミュレーションの実現が可能になりました。特に前者の技術は筆者個人としても以前から目をつけており、ちょうど実装されないものかと期待をしていたところだったため、今回のバージョンアップを非常に嬉しく思います。ほかにもCrowds(群衆)関連では階層型エージェントや角加速度を考慮したバンク、部分ラグドールなどが実装され、Grooming関連では今まで制御しづらかったヘアやファーのシステムにおいてカーブのガイドでコントロールが自在にできるようになったことで、アーティストが画づくりをしやすい設計になりました。モデリングに関しては一新されたPolyReduceやリトポロジーツールであるTopoBuildツールへの改良をはじめとして、非常に高いポリゴン数のジオメトリを扱うための機能が充実しました。外部ツールによってスカルプティングやフォトグラメトリによって得たハイディテールモデルも容易にコントロールが可能です。

なお、本稿で記載する内容は開発中のビルドのため、実際に実装されている機能とは差異がある場合がありますのでご注意ください。

KEY FEATURE 1 FLIP

さらなる進化を続けるFLIP流体

通常のFLIPシミュレーションは、液体全体のサンプリングを必要とするために高い計算コストを必要とします。しかしながら、例えば大きな水槽や広い海洋のような大きな体積をもつ液体の場合、その高い計算コストにも関わらず最終的な外観の形状に影響をするのは表面部分のみであるため、液体内面の計算のほとんどは無駄とも言えます。そこで新たに実装された「Narrow Band」という技術では、液体表面の狭帯域内でのみパーティクルを使用して従来通りの正確な計算を行い、残りとなる液体内面に関してはボリュームにより効率的な計算を行なってそれらをインタラクティブに作用させます。これにより、パーティクルの数やシミュレーション時間を大幅に削減しながら通常のFLIPシミュレーションとほとんど区別がつかない結果を得ることができます。

例えば、下図のような水面を泳いでいる例では実質的に形状に影響を与えるのは水の表面のみであるため、実際にシミュレーションに使用されるパーティクルは表面近くのみで、それでいて当然ながら最終的にポリゴンに変換する際には全体の形状を基に変換することが可能です。筆者の環境で画像の例のシミュレーションを行なった際、Narrow Bandを使用する場合と使用しない場合とでは計算時間に約2倍、メモリの使用量には約3倍ものちがいがありました。

Narrow Bandによる計算の効率化


オブジェクトが水面上をスイスイと進み、それにより周りの水が小さく波立つようなシーン。このような例では底側の水の流れは最終的な見た目にはほとんど影響しないため、多くの無駄な計算が含まれてしまいます。Narrow Bandを使用するとその無駄な計算を効率的に抑えることが可能です

また、Air Imcompressibility(空気の非圧縮性)を考慮したシミュレーションが可能になりました。これにより、液体と空気の双方が非圧縮性流体として扱われるため常に密度が一定になり、非常に説得力のある結果が得られます。例えば図のフラスコのような形状の容器に対して液体を流した場合、従来のシミュレーションでは空気の圧縮性は考慮されていなかったため水が単純に上から下へ流れ出るだけでしたが、Air Imcompressibilityを考慮したシミュレーションでは下側の空気が泡となって上側へ流れ、さらにそれによって起きる速度場の流れが液体に影響するため、水の動きも非常に自然なものになります。実際に再生してみると、まるで「ゴポッ」という音が聞こえてきそうなほどの説得力を感じました。

Air Imcompressibility:OFF

上下に連なったフラスコのような容器を用意し、上部から水を流してみました。 Air ImcompressibilityがOFFの状態では、上部に溜まっている水にはほとんど動きがなく、単純に水位が徐々に下がっていきます

Air Imcompressibility:ON

Air ImcompressibilityをONにすると、水が流れ出ると同時に下側から何度か気泡が上がり、それに反応して上部の水がバシャバシャと激しく動きます

次ページ:
KEY FEATURE 2 Crowds

[[SplitPage]]

KEY FEATURE 2 Crowds

手付けアニメーションとシミュレーションの双方を活かせる群衆

Crowds(群衆)はHoudiniバージョン14.0で実装されて以来、バージョンを重ねるたびに着々と進化を続けています。16.5ではHierarchal(階層型)エージェントの実装により、馬やバイクなどの乗り物と、それに乗るキャラクターが相互に影響しながら動き続ける群衆のシミュレーションの実現も可能になりました。完全に結合をしてから動きを与えるのではなく、オブジェクト同士を親子関係で結んだ上で個々をコントロールするため制限のない制御が可能で、大量のオブジェクトがある場合の多様化にも役立ちます。それに加え、角加速度を考慮したトランスフォームの計算により、カーブを曲がる際のバンク(傾き)を与えることができ、より現実的な動きの表現が可能になりました。

Hierarchal(階層型)エージェント


馬などにまたがるキャラクターの群衆をシミュレートでき、さらにカーブを曲がる際には角加速度を基に傾きを表現することも可能です。慣性を感じさせるため、スピード感や動きの説得力に大きく影響します

また、ラグドールに関しても数点のアップデートがなされています。従来はラグドール使用時にはキャラクターの全身を完全にシミュレートされた動きにするしかなく、手付けアニメーションと自然にブレンドすることが困難でした。そのため思い通りのポーズになるようにコントロールすることが難しく、いかにもラグドールらしい動きが目についてしまうこともありました。Houdini 16.5では身体の一部のみをラグドールとしてシミュレーションで動かし、その他の部位を手付けアニメーションにより動かして自然にブレンドができるようになったことで、アーティストがコントロールしやすく自然な動きを実現することができるようになっています。

筆者の個人的な予想としては、おそらく将来的にラグドールのシミュレーション自体にもさらに重量感やキャラクターの人間としての意識を感じられるような説得力のある動きが実現できるようになるだろうと考えており、期待に胸を膨らませています。

進化したラグドール

ラグドールを片手で天井にぶら下げて、横から球体を次々にぶつけてみました。Houdini 16.0で作成した【画像左】の例では完全にラグドールだけでコントロールされているため、人間のもつ力が感じられず質量のない人形のようですが、Houdini 16.5で作成し【画像右】の例では球体をぶつけられても元のぶら下がりアニメーションを保持しようとし、より人間味が感じられます

手付けとラグドールのブレンド


右側が単純にキーフレームアニメーションで動いており、左側は同じアニメーション情報をもちながらもラグドールとして剛体に上から押さえつけられているという例です。衝突してラグドールとしての挙動をしながら、キーフレームアニメーションの動きも自然にブレンドされています

KEY FEATURE 3 Modeling

高精度モデルの利用に力を入れたアップデートの目立つモデリング

モデリング関連のノードや機能もバージョンアップのたびに更新や追加がなされ、とどまることなく発展しています。バージョン16.5では特に外部ツールによるスカルプティングやフォトグラメトリーによって生成されたハイディテールなモデルを扱うための機能が充実したような印象を受けました。

まず、PolyReduceノードのシステムが一新されています。Houdini 16で新たに追加されたBooleanのようにまったく新たな計算法を取り入れてあり、メッシュの削減精度は非常に高くなっています。特徴点の密度を保ったままその他の箇所のみ削減を行うことや、シンメトリーなトポロジーを保ったまま削減することなども可能です。従来のPolyReduceではUVが壊れてしまうことがあり、筆者個人としてはUV境界部分を保持したままPolyMesh等でメッシュを再定義することで乗りきることも多々ありました。新たなPolyReduceでは見た目にほとんど変化がなく大々的な削減をすることが可能で、比較的早い計算時間で実行できます。

PolyReduceの高精度化



  • Houdini 16.0でReduceを施した例。単純にPolyReduceを接続するだけではUVを考慮せず単純にポイントが削減されていくのみで、見た目が壊れてしまいます



  • Houdini 16.5でReduceを施した例。こちらはテクスチャを表示した場合でも、見た目にほとんど変化がないまま削減できていることがわかります

UV Layoutノードなども機能が充実し、展開されたUVをより自由に自動レイアウトすることが可能になりました。Pack Island In Cavities(空洞内に島を詰める)パラメータにより無駄な隙間を極限までなくして効率的な配置にすることができ、くり返し処理でシェルの回転の最適化をすることも可能です。

高性能なUV Layout


UV Layoutを使用した例。ほとんど隙間がなくぎっしりとレイアウトされています。当然ながら、自動レイアウトをした後に他のノードを利用して自由に編集することも可能です

Game Development Tools(SideFX公式から配布されているゲーム制作に役立つHDAや機能群)も刻々と発展を続けています。また、リトポロジーツールであるTopoBuildにも、エッジコラプス、エッジスライド、そしてスキンモードが追加され、3Dスキャンデータの高解像度モデルからゲームなどに使う低解像度モデルを作成するのがさらに楽になりました。スキンモードは、下図のように断面となる線(紫)をカーソルで描いた後に方向を示す線(青)で描くことで、その部分に低解像度メッシュを再構成します。この低解像度モデルに高解像度モデルのディテールをテクスチャとして焼き込むことが可能です。

TopoBuildによる新スキンモード


TopoBuildノードの新たなスキンモードで、断面となる線(紫)と方向を示す線(青)をカーソルで簡単に描き、その部分に低解像度メッシュを作成することが非常に楽になりました

Summary
ユーザビリティを上げつつ将来性のあるバージョンアップ

16.0のインターフェイスのように完全に一新したというほどのアップデートは16.5では少ないかもしれませんが、Narrow Bandのように長年なんとなく悩まされていたことを解消してくれるホスピタリティにあふれたバージョンアップに感じました。ここで紹介した内容以外にも細かな更新点は多々あります。また、新たに増えたノードや機能はどこか次なるバージョンでのさらなる強化を匂わせるようにも感じるため、今後に期待がもてる内容と言えるでしょう。



  • 月刊CGWORLD + digital video vol.232(2017年12月号)
    第1特集:Houdiniイズム
    第2特集:3DCGポートレート 2017

    定価:1,512円(税込)
    判型:A4ワイド
    総ページ数:128
    発売日:2017年11月10日
    ASIN:B076KVMCC1