[Blender 2.9] 流体シミュレーションで作成した炎や煙等のボリュームオブジェクトをメッシュオブジェクト化するのに便利な、ボリュームのメッシュ化モディファイアーの機能と使い方のご紹介
今回の記事は、Blenderの『ボリュームのメッシュ化モディファイアー』についてです。
このモディファイアーは、v2.91から追加された新しいモディファイアーです。
このモディファイアーは、既存のボリュームオブジェクトを取得し、そのグリッドの1つをメッシュに変換します。変換できるのはスカラーグリッド(「密度(density)」グリッドなど)のみです。
ちなみに、今回の「ボリューム→メッシュ」の逆の、「メッシュ→ボリューム」という機能を持つ『メッシュのボリューム化モディファイアー』というものもあります。詳しくは下記記事をご覧ください。
※2021年1月10日 加筆修正を行いました。
※2021年1月13日 加筆修正を行いました。
目次
まず最初に
『ボリュームのメッシュ化モディファイアー』を追加したいオブジェクトを選択しておき、[プロパティエディタ]>[モディファイアー]>[モディファイアーを追加]ボタンをクリックすると表示される一覧から、[ボリュームのメッシュ化]という項目を選びます。
追加されると↓のように表示されます。
基本的な使い方
使用方法について、参考にさせて頂いた動画↓
- まず、[オブジェクト]>[クイックエフェクト]>[クイック煙]を使って、適当な『流体シミュレーション』を作成します。
『流体シミュレーション』について、詳しくは下記記事をご覧ください。
- ドメインの[設定]>[分割の解像度]を、ある程度上げておきましょう(お持ちのPCのスペックと相談しながら)。
- フローの[設定]>[フロータイプ]を[火炎 + 煙]に変更します。
- ドメインの[キャッシュ]>[ボリューム形式]の設定が[OpenVDB]になっている事を確認し、[キャッシュ]>[タイプ]を[全て]に変更して[全てベイク]します。
- ベイク処理が終了したら、一度再生([スペースキー])して確かめてみましょう。
- [追加]([Shift]+[A])>[ボリューム]>[OpenVDBをインポート…]を選択し、先程作成した『流体シミュレーション』でベイクしたキャッシュデータの”data”フォルダ内に格納されている連番のVDBファイルを全て選択して、インポートします。
- 更に[追加]>[メッシュ]から、適当なメッシュオブジェクトを選択し、3Dビューポート上に追加します。
- メッシュオブジェクトに『ボリュームのメッシュ化モディファイアー』を追加します。
- [オブジェクト]にボリュームオブジェクトの名前を設定します。
- 再生([スペースキー])してみますと、メッシュの形状が、ボリュームオブジェクトに合わせて変化します。
memo: 『ボリュームのメッシュ化モディファイアー』を使用したメッシュオブジェクトを移動するには?
『ボリュームのメッシュ化モディファイアー』を使用した場合、そのメッシュオブジェクトは、元のボリュームオブジェクトの位置に生成されます。つまり、逆に言えば、通常はボリュームオブジェクトの位置から動かせません。
ただし、生成されたメッシュをボリュームオブジェクトとは別の『コレクション』に移動し、『コレクションインスタンス』を使用してコピーすると移動できます。
[ボリュームのメッシュ化]の詳細設定項目一覧
- [オブジェクト名(Object)]
- [グリッド名(Grid Name)]
- [解像度モード(Resolution Mode)]
- [しきい値(Threshold)]
- [適応力(Adaptivity)]
- [スムーズシェーディング(Smooth Shading)]
[オブジェクト名(Object)]
ソースとなるボリュームオブジェクト。
[グリッド名(Grid Name)]
変換されるグリッドの名前。設定するグリッドはスカラーグリッドである必要があります。
ちなみに、設定できるグリッドは、ボリュームオブジェクトの[プロパティエディター]>[オブジェクトデータプロパティ]>[グリッド数]から確認できます。↓の場合、”velocity”はスカラーではないので[グリッド名]に設定できません。
もし、”velocity”を設定してみても、何も表示されず、モディファイアーの下の部分に警告文が表示されるだけです。
[解像度モード(Resolution Mode)]
最終メッシュの解像度を制御する方法のモード。
[グリッド(Grid)]
[グリッド]の場合、解像度は変換されるグリッドの解像度に依存します。グリッドの解像度が高いほど、メッシュの解像度が高くなります。多くの場合、これが最も効率的なモードです。
[ボクセル量(Voxel Amount)]
1つの軸に対する目標のボクセル数。
[ボクセル量(Voxel Amount)]
1つの軸に対する目標のボクセル数の概算。
最終メッシュのおおよその解像度を指定します。
ボクセルのサイズはボリューム全体のサイズに合わせて調整されます。
[ボクセルサイズ(Voxel Size)]
ボリュームが変わっても、変わらない固定解像度を使用します。
目標のボクセルの辺長を指定します。
[ボクセルサイズ(Voxel Size)]
小さな値で出力が高解像度になります。
[しきい値(Threshold)]
この項目に設定した値より大きな値のボクセルが、生成されるメッシュ内に入ります。
値が大きいボクセルはメッシュの内側にあり、他のすべてのボクセルは外側にあるとみなされます。メッシュは、ボクセルの内側と外側の境界に生成されます。これは「iso value」と呼ばれることもあります。
[適応力(Adaptivity)]
不要な細部の形状を簡略化し、最終的な面数を減らします。
最終結果を間引きして、必要のない解像度を下げるのと似ています。
[スムーズシェーディング(Smooth Shading)]
フラットシェーディングでなくスムーズシェーディングで面を出力します。
おまけ: 作ってみたもの
『流体シミュレーション』で作成したものを、そのまま、今回の『ボリュームのメッシュ化モディファイアー』でメッシュ化させただけです。
『流体シミュレーション』について、ある程度の知識を持っている事を前提に進めさせていただきます。もしあまりご存じない方は、参考までに下記記事をご一読されることをお勧めします。
また、手順の中で少し使用しますので、『パーティクルシステム』についても、あまりご存じない方は、下記記事を参考までにどうぞ。
- パーティクルを使用するので、その為の『コリジョン』用の平面メッシュを用意します。
- 同様に、平面に被る形でZ軸には薄く伸ばした立方体メッシュを『流体シミュレーション』の[エフェクター]タイプのオブジェクトとして設置します。
- [フロー]タイプのオブジェクトはICO球を2つ、同じ位置、同じ大きさで設置します。それぞれ、[フローソース]を、[パーティクルシステム]用、[メッシュ]用で使いたいからです。少し、平面と立方体から離して配置しています。
- [フローソース]が[パーティクルシステム]用の方の設定です。
- [フローソース]が[メッシュ]用の方の設定です。
- [ドメイン]タイプのオブジェクトを設置します。
- [ドメイン]タイプでの設定です。
- 『ボリュームのメッシュ化モディファイアー』を使ったメッシュを1つ複製し、複製した方の『ボリュームのメッシュ化モディファイアー』の[グリッド名]を”flame”に変更してください。
- マテリアルを変更します。[グリッド名]が”density”の方を[ベースカラー]を黒にして、[粗さ]を”0.0″、[アルファ]を”0.879″にしました。
- [グリッド名]が”flame”の方は、[ベースカラー]を”E76A3D”、放射を”FF8500″に変更しました。
- 後は[レンダーエンジン]を[Cycles]にしてレンダリング([F12])して完成です。
参考にさせて頂いたサイト・ページ一覧
- Volume to Mesh Modifier — Blender Manual
- Blender Tutorial – Volume to Mesh Modifier w/ Mantaflow (2.91) – YouTube
- Create Simple Explosion VFX in Blender Mantaflow – Iridesium – YouTube
モディファイアー関連の記事のご紹介
この記事の他にも、Blenderの様々なモディファイアーについて、機能や使い方を私自身も試しながらではありますが、ご紹介させていただいております。よろしければ、こちらも併せてご覧ください。
変更
- データ転送
- メッシュキャッシュ
- メッシュ連番キャッシュ
生成
変形
- アーマチュア
- スムーズ
- スムーズ(修正)
- スムーズ(ラプラシアン)
シミュレート
- コリジョン
- ダイナミックペイント