サイトアイコン ほろほろりドットコム

[Blender 2.9] 炎や煙をメッシュオブジェクト化 [ボリュームのメッシュ化モディファイアー]

[Blender 2.9] 流体シミュレーションで作成した炎や煙等のボリュームオブジェクトをメッシュオブジェクト化するのに便利な、ボリュームのメッシュ化モディファイアーの機能と使い方のご紹介

今回の記事は、Blenderの『ボリュームのメッシュ化モディファイアー』についてです。

このモディファイアーは、v2.91から追加された新しいモディファイアーです。

このモディファイアーは、既存のボリュームオブジェクトを取得し、そのグリッドの1つをメッシュに変換します。変換できるのはスカラーグリッド(「密度(density)」グリッドなど)のみです。

『ボリュームのメッシュ化モディファイアー』を使用して流体シミュレーションをメッシュ化した例

ちなみに、今回の「ボリューム→メッシュ」の逆の、「メッシュ→ボリューム」という機能を持つ『メッシュのボリューム化モディファイアー』というものもあります。詳しくは下記記事をご覧ください。

※2021年1月10日 加筆修正を行いました。
※2021年1月13日 加筆修正を行いました。

目次

まず最初に

『ボリュームのメッシュ化モディファイアー』を追加したいオブジェクトを選択しておき、[プロパティエディタ]>[モディファイアー]>[モディファイアーを追加]ボタンをクリックすると表示される一覧から、[ボリュームのメッシュ化]という項目を選びます。

追加されると↓のように表示されます。

基本的な使い方

使用方法について、参考にさせて頂いた動画↓

  1. まず、[オブジェクト]>[クイックエフェクト]>[クイック煙]を使って、適当な『流体シミュレーション』を作成します。
[オブジェクト]>[クイックエフェクト]>[クイック煙]で気体のシミュレーション設定

『流体シミュレーション』について、詳しくは下記記事をご覧ください。

  1. ドメインの[設定]>[分割の解像度]を、ある程度上げておきましょう(お持ちのPCのスペックと相談しながら)。
ドメインオブジェクトの[分割の解像度]を”128″に設定
  1. フローの[設定]>[フロータイプ]を[火炎 + 煙]に変更します。
[フロータイプ]を[火炎 + 煙]に設定
  1. ドメインの[キャッシュ]>[ボリューム形式]の設定が[OpenVDB]になっている事を確認し、[キャッシュ]>[タイプ]を[全て]に変更して[全てベイク]します。
[ボリューム形式]を[OpenVDB]、[キャッシュタイプ]を[全て]に変更後、[すべてベイク]
  1. ベイク処理が終了したら、一度再生([スペースキー])して確かめてみましょう。
ベイクしたシミュレ―ションの確認
  1. [追加]([Shift]+[A])>[ボリューム]>[OpenVDBをインポート…]を選択し、先程作成した『流体シミュレーション』でベイクしたキャッシュデータの”data”フォルダ内に格納されている連番のVDBファイルを全て選択して、インポートします。
[追加]>[ボリューム]>[OpenVDBをインポート…]から連番VDBファイルを全てインポート
  1. 更に[追加]>[メッシュ]から、適当なメッシュオブジェクトを選択し、3Dビューポート上に追加します。
立方体メッシュを[追加]
  1. メッシュオブジェクトに『ボリュームのメッシュ化モディファイアー』を追加します。
[モディファイアーを追加]>[ボリュームのメッシュ化]を選択
  1. [オブジェクト]にボリュームオブジェクトの名前を設定します。
[オブジェクト]にボリュームオブジェクトを選択
  1. 再生([スペースキー])してみますと、メッシュの形状が、ボリュームオブジェクトに合わせて変化します。
『ボリュームのメッシュ化モディファイアー』の動作確認

memo: 『ボリュームのメッシュ化モディファイアー』を使用したメッシュオブジェクトを移動するには?

『ボリュームのメッシュ化モディファイアー』を使用した場合、そのメッシュオブジェクトは、元のボリュームオブジェクトの位置に生成されます。つまり、逆に言えば、通常はボリュームオブジェクトの位置から動かせません

『ボリュームのメッシュ化モディファイアー』を使用しているメッシュオブジェクトは元となっているボリュームオブジェクトの位置から動かせない

ただし、生成されたメッシュをボリュームオブジェクトとは別の『コレクション』に移動し、『コレクションインスタンス』を使用してコピーすると移動できます。

元となっているボリュームとコレクションを分け、そのコレクションのインスタンスを作成すると移動が出来る

[ボリュームのメッシュ化]の詳細設定項目一覧

[オブジェクト名(Object)]

ソースとなるボリュームオブジェクト。

[オブジェクト名]

[グリッド名(Grid Name)]

変換されるグリッドの名前。設定するグリッドはスカラーグリッドである必要があります。

[グリッド名]

ちなみに、設定できるグリッドは、ボリュームオブジェクトの[プロパティエディター]>[オブジェクトデータプロパティ]>[グリッド数]から確認できます。↓の場合、”velocity”はスカラーではないので[グリッド名]に設定できません。

ボリュームオブジェクトの[プロパティエディター]>[オブジェクトデータプロパティ]>[グリッド数]のリスト

もし、”velocity”を設定してみても、何も表示されず、モディファイアーの下の部分に警告文が表示されるだけです。

『ボリュームのメッシュ化モディファイアー』に”velocity”を設定した場合の表示

[解像度モード(Resolution Mode)]

最終メッシュの解像度を制御する方法のモード。

[グリッド(Grid)]

[グリッド]の場合、解像度は変換されるグリッドの解像度に依存します。グリッドの解像度が高いほど、メッシュの解像度が高くなります。多くの場合、これが最も効率的なモードです。

[解像度モード: グリッド]

[ボクセル量(Voxel Amount)]

1つの軸に対する目標のボクセル数。

[ボクセル量(Voxel Amount)]

1つの軸に対する目標のボクセル数の概算。

最終メッシュのおおよその解像度を指定します。

ボクセルのサイズはボリューム全体のサイズに合わせて調整されます。

[ボクセル量]

[ボクセルサイズ(Voxel Size)]

ボリュームが変わっても、変わらない固定解像度を使用します。

目標のボクセルの辺長を指定します。

[ボクセルサイズ(Voxel Size)]

小さな値で出力が高解像度になります。

[ボクセルサイズ]

[しきい値(Threshold)]

この項目に設定した値より大きな値のボクセルが、生成されるメッシュ内に入ります。

値が大きいボクセルはメッシュの内側にあり、他のすべてのボクセルは外側にあるとみなされます。メッシュは、ボクセルの内側と外側の境界に生成されます。これは「iso value」と呼ばれることもあります。

[しきい値]

[適応力(Adaptivity)]

不要な細部の形状を簡略化し、最終的な面数を減らします。

最終結果を間引きして、必要のない解像度を下げるのと似ています。

[適応力]

[スムーズシェーディング(Smooth Shading)]

フラットシェーディングでなくスムーズシェーディングで面を出力します。

[スムーズシェーディング]

おまけ: 作ってみたもの

『流体シミュレーション』で作成したものを、そのまま、今回の『ボリュームのメッシュ化モディファイアー』でメッシュ化させただけです。

『流体シミュレーション』について、ある程度の知識を持っている事を前提に進めさせていただきます。もしあまりご存じない方は、参考までに下記記事をご一読されることをお勧めします。

また、手順の中で少し使用しますので、『パーティクルシステム』についても、あまりご存じない方は、下記記事を参考までにどうぞ。

  1. パーティクルを使用するので、その為の『コリジョン』用の平面メッシュを用意します。
平面メッシュを追加、『コリジョン』の設定
  1. 同様に、平面に被る形でZ軸には薄く伸ばした立方体メッシュを『流体シミュレーション』の[エフェクター]タイプのオブジェクトとして設置します。
薄くした立方体メッシュに『流体シミュレーション』を追加、[エフェクター]タイプに設定
  1. [フロー]タイプのオブジェクトはICO球を2つ、同じ位置、同じ大きさで設置します。それぞれ、[フローソース]を、[パーティクルシステム]用、[メッシュ]用で使いたいからです。少し、平面と立方体から離して配置しています。
ICO球を2個、平面と立方体から少し離した位置に設置
  1. [フローソース]が[パーティクルシステム]用の方の設定です。
『パーティクルシステム』の設定
『流体シミュレーション』の設定
  1. [フローソース]が[メッシュ]用の方の設定です。
『流体シミュレーション』の設定、[フローを使用]はキーフレームを打っている
  1. [ドメイン]タイプのオブジェクトを設置します。
『流体シミュレーション』の[ドメイン]タイプのオブジェクトを設置
  1. [ドメイン]タイプでの設定です。
『流体シミュレーション』の設定1
『流体シミュレーション』の設定2
  1. ベイクした後は、「基本的使い方」を参考に、『ボリュームのメッシュ化モディファイアー』を使ったメッシュを作成してください。
新たに追加し、『ボリュームのメッシュ化モディファイアー』を設定した立方体メッシュオブジェクト
  1. 『ボリュームのメッシュ化モディファイアー』を使ったメッシュを1つ複製し、複製した方の『ボリュームのメッシュ化モディファイアー』の[グリッド名]を”flame”に変更してください。
複製して、[グリッド名]を”flame”に変更した立方体メッシュオブジェクト
  1. マテリアルを変更します。[グリッド名]が”density”の方を[ベースカラー]を黒にして、[粗さ]を”0.0″、[アルファ]を”0.879″にしました。
[グリッド名]が”density”の方のマテリアル設定
  1. [グリッド名]が”flame”の方は、[ベースカラー]を”E76A3D”、放射を”FF8500″に変更しました。
[グリッド名]が”flame”の方のマテリアル設定
  1. 後は[レンダーエンジン]を[Cycles]にしてレンダリング([F12])して完成です。
[プロパティエディター]>[レンダープロパティ]>[レンダーエンジン]を[Cycles]に変更
レンダリングした画像

参考にさせて頂いたサイト・ページ一覧

モディファイアー関連の記事のご紹介

この記事の他にも、Blenderの様々なモディファイアーについて、機能や使い方を私自身も試しながらではありますが、ご紹介させていただいております。よろしければ、こちらも併せてご覧ください。

生成

Blenderに関する記事や作品をまとめたページ作りました!

Blender Note
モバイルバージョンを終了