※本記事にはアフィリエイトリンクが含まれており、リンク経由で商品が購入された場合、当サイトに紹介料が入ることがあります。
aflatspriteさんのBlenderアドオン「Softie Collision System」が、Superhiveで公開されています。Geometry Nodesで組まれた接触変形の仕組みで、価格は$9.99。製品ページの表記ではBlender 5.1〜5.2対応、ライセンスはGPLです。
ラティスもシェイプキーもソフトボディも使わない
製品ページの説明は、単純な変形のためにラティスやシェイプキー、さらにはソフトボディシミュレーションまで持ち出さないといけないのはなぜか、という問いから始まります。作者はそこでGeometry Nodesによる即時の衝突システムを作ったとしていて、球同士の押し合いや、柔らかい物体を手で掴むような変形が対象です。

Object Hardnessのスライダーで、衝突するオブジェクトを柔らかく扱うか、元の硬さを保つかを選びます。0.5にすると両方が柔らかいものとして振る舞う、という説明です。
1.4で硬さを塗り分けられるように
最新の1.4アップデートでは、硬さを一律の数値ではなく属性で指定できるようになりました。ウェイトペイントのグループでも他の属性でもよく、属性名を入力すると、ウェイト1が硬い・0が柔らかいとして扱われます。

あわせてセルフコリジョンの性能が改善され、重いメッシュでの評価が60msから30msになったと記載されています。属性選択による性能改善や、変形方向を指定する「Away」ベクトルの実装も同じ1.4に含まれます。セルフコリジョン自体は1.1で追加された機能で、メッシュが自分自身と重なるキャラクターアニメーション向けとされています。
変形の詰め方

パネルにはObject Hardnessのほか、法線方向とAway方向の配分を決めるNormal/Away、変形の強さを決めるStrength、ノイズを混ぜるIrregularity、距離ベースのマスクなどが並びます。より複雑な衝突では、頂点ペイントのグループで衝突の効き方を制御する使い方も案内されています。

速度についてはビューポートのリアルタイム応答を前提に作られており、複数の衝突オブジェクトを使った単純なジオメトリのセットアップでノードツリーの計算が10ms未満(i7-14700Fでの計測)と書かれています。
できないことも明記されている
製品ページには「Warning! This Is Not Magic!」という項があり、フレームごとの速度と履歴の評価なしにあらゆる状況をカバーする万能な衝突システムを作るのは不可能だ、と断ったうえで制約が挙げられています。見た目の評価にはシンプルなマニフォールドのオブジェクトを使うこと、表面の変形のみを想定しており、極端に深い貫通ではレイキャストのベクトルが破綻すること、の2点です。
価格・入手先
価格は$9.99。対応バージョンはBlender 5.1〜5.2、ライセンスはGPLで、配布はSuperhiveです。
管理人のひとこと
柔らかいものが当たって凹む、という絵は素直にやると手間がかかります。ソフトボディを回すほどではないけれど、めり込んだままにもできない、という中間の要求は多いので、ビューポートで結果が返ってくる範囲に割り切ってあるのは扱いやすいと思いました。
1.4で硬さをウェイトで塗れるようになったのは実務的な変更です。同じメッシュでも硬いところと柔らかいところが混ざるのが普通なので、一律の数値だと当てる場所を選ばざるを得ませんでした。ただ、深い貫通では破綻すると作者自身が先に書いているとおり、当たり方の設計はこちらの仕事として残ります。
Geometry Nodesで既存の重い工程を置き換える例としては、Hair Groom to Feathersもヘアグルームを羽根に変える形で同じ方向を向いていました。



コメント