FLUID
進化したFluidシミュレーション
FLIPのNarrow Bandが大幅に改善された。これまでは不向きだった【1】のような複雑な形状のシチュエーションでも挟帯域のシミュレーション性能が向上しており、さらにメモリ効率やスピードも向上している。また、Attribute-Field PairsによってカスタムフィールドのAdvectionが可能になっており、Color、Density、Viscosityなどを併せてシミュレーションできるようになっている
White Waterが大きく進化した。これまでのWhite WaterのSolverから一新されており、Solver内を確認してみると新たにPOP Fluid【A】というMicro Solverが搭載され、これまでよりさらに写実的な泡のパターンを生み出せるようになっている。FLIPからのソースシミュレーションに対して正確な関係性を維持することで、よりオーガニックでリアルな結果を求められるようになっている。また、OpenCLを使用することで、より高速にシミュレーションが可能だ【2】
Fluidのソース作成が大幅に改良された。これはVDBをベースとした改良で、ソース作成が非常に高速にできるようになっている。これまではいくらシミュレーション速度が速くてもソースの作成がボトルネックとなっていたが、その心配ももう無用だ。ソースの作成方法とDOPへのインポート方法が大きく変わっており、SOPではPyro Source【B】というノード、DOPではVolume Source【C】というノードが新たに追加されている。このノード群の恩恵により、さらにFluidの扱いが簡単になっている。例えば【3】では、ジオメトリのColorをそのままPyroのシミュレーションに活かすようにセッティングしている。いったんPoint化されたジオメトリは、Volume Rasterize Attribute【D】でVDB化されている。このように、一連のながれがよりわかりやすく、さらにカスタマイズしやすくなっている。またPyroだけではなく、FLIPのソースもまたVDBに変更されており、さらに軽量化されている
Retimeノードが追加された。単純に時間をコントロールできるだけではなく、Evaluation Mode【4】を変更することで様々なコントロールが可能になっている。また、シミュレーション結果から【5】でフレーム間を補間することもできるため、非常に強力なアップデートだ
DESTRUCTION
破壊に特化したアップデート
Bullet専用のBullet Soft Constraint Relationship【A】が追加された。これまでのSpring Constraintと同様の挙動を見せるが、Soft Constraintの方は挙動が非常に安定しており、複雑なConstraintでも暴発などの不安定さがないのが特徴だ。これまで小さな質量などでは安定動作が難しかったSpring Constraintでも、Soft Constraintに置き換えることで非常に簡単にセットアップできるようになっている。そのため、調整にかかる時間も大幅に削減できる。【1】のように大量のConstraintがあったとしてもその速度は速く、ConstraintのNetworkを消すことで簡単にConstraintを解除できるため、破壊のシミュレーションコントロールがより軽快になった
Convex Decompositionが追加された。これまでは、BulletのProxyなジオメトリではConvex Hull【2】が主流だったが、それに加えてもう少しディテールを加えられるように、Convex Hullの良い箇所を残しつつも曲率から複雑な形状を再現できるよう部分ごとにConvex Hullをかけられるようになっている。これによって、軽量化されたProxyモデルを簡単につくり出すことが可能になった【3】
今回の破壊系アップデートの目玉はRBD Material Fracture【B】だ。なんてことはない便利系のHDAではあるが、その設計思想は今後の発展を期待せざるを得ない。Houdiniの良いところは、なんと言ってもHDAなどのアセットワークによるフットワークの軽さだ。それを象徴するかのような汎用性の高いノードになっている。素材別に破壊をコントロールできるだけでなく、それぞれの特徴をよく加味し、さらにコントロールしやすいような設計になっている。前後のワークフローまで考えられているので、破壊用のジオメトリを準備する際に、これひとつで事足りるのだ。現在のマテリアルの種類はコンクリート【4】・ガラス【5】・ウッド【6】の3種であるが、これはカスタマイズ可能であり、ほとんどのシチュエーションがこれらで十分と思われる。また、Constraint【7】の設定もできるようになっていて、このままDOPへもっていくことができる。また、ディテールを付けていくことも可能な上、Proxyモデルも生成してくれる徹底ぶりだ。現状では、汎用性を高めるためか多少の重さを感じるが、セットアップの面倒さを鑑みれば許容範囲ではないだろうか