x-particles(1030) ではxpSkinnerの代わりにxpOpenVDBMesherを使う

x-particles(1030) からxpSkinnerがなくなった

x-particles build1030からxpSkinnerが削除されています。
xpSkinnerはパーティクルをメッシュ化するジェネレータですが、仕様の変更によりなくなったようです。(メーカー的には前のバージョンまでは互換性の為に残しておいたという位置づけのようです)
このため、パーティクルで流体を表現する際のメッシュをどうしたら良いのかと戸惑いましたが、xpOpenVDBMesherを使うというのが公式な見解のようです。
とはいえ、単に置き換えるというものでもなさそうだった為、サポートの助けも借りつつなんとか代替えの方法を自分なりに見つけましたので簡単にまとめてみました。

液体表現のシーン構築

emitter
まずは、液体を表現するシーンの作成を行います。
エミッタを配置します。
emitter set
エミッタの粒径が3cmになっていますが、流体の表現ではやや大きく球が見えるようになるので少し小さくします。
Emission > Radius
Emission > Birthrate
も増量します。
xpSheeter
パーティクルを増やせば、メッシュ化した際の液体の表面が増えますが、丸い凹凸のある表面になってしまったり、負荷が高くなってしまうので、xpSheeterを追加しパーティクルの隙間を埋めるようにします。
particle Group
これはパーティクルグループに対して作用しますので、パーティクルグループを作ります。
xpEmitter > Groups > Create and Add Group
下にボタンがあります。
xpsheeter
作成したグループをxpSheeterに適用します。
xpFluidFX
液体の表現ですので、xpFliudFX を追加します。
xpGravity
表現したい動きに応じたMotionを追加します。
一般的なもので、重力を追加しておきます。
fluid scene
こんな感じになります。

液体のメッシュ化(xpOpenVDBMesher)

xpOpenVDBMesher
次に生成されたエミッタをメッシュ化していきます。
メッシュ化にはxpOpenVDBMesherを使います。
sheeter particles group
xpOpenVDBMesher > General > Mode > Mesh
にエミッタを追加します。先程作成したパーティクルグループに対してxpSheeterを使って穴を埋めているので、グループ化したものを追加します。
Voxel Size の値が大きいとパーティクルに対して大きい球が生成されます。デフォルトよりも小さくします。
Point Radius の値を小さくしていくとメッシュの表面から球状の凸凹が少なくなりますが、小さくしすぎると穴が空いてしまいます。
defoma
生成された表面をスムーズにするために、デフォーマを適用します。
作成 > デフォーマ > スムージング
mesh
こんな感じのメッシュが出来ました。

細かいパラメータをもう少しいじっていけばそれなりの表現ができそうな感じです。

謝辞

問い合わせに対応頂きましたINSYDIUMのサポートの皆様に感謝申し上げます。
また、本件にご助言頂きましたヤクモレオさん(https://yakumoreo.com/)にも感謝申し上げます。
参照
INSYDIUM OenVDBMesher解説ページ
http://docs.x-particles.net/html/ovdbmesher.php#usingovdb

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次