[Blender 2.9] 『テクスチャ』を使ってボリュームオブジェクトを変形するのに便利な、ボリューム変形モディファイアーの機能と使い方のご紹介
今回の記事は、Blenderの『ボリューム変形モディファイアー』についてです。
『ボリューム変形モディファイアー』は、3Dテクスチャに基づいて既存のボリュームグリッドを変位させます。テクスチャのRGBカラーチャンネルを使用して、ボリュームをX、Y、Z方向に移動します。

ちなみに、今回のモディファイアーのメッシュ版で『ディスプレイスモディファイアー』というものがあります。ご興味湧かれた方は参考までに下記記事をご覧ください。
※2021年1月21日 加筆修正を行いました。
目次
まず最初に

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

基本的な使い方
このモディファイアーは、『メッシュのボリューム化モディファイアー』と併用するのが基本となるかと思います。
ちなみに、『メッシュのボリューム化モディファイアー』について、詳しくは下記記事をご覧ください。
- まず、ボリュームの元の形状となる適当なメッシュオブジェクトを[追加]([Shift]+[A])>[メッシュ]から選んで追加します。今回は[立方体]にしました。

- [追加]([Shift]+[A])>[ボリューム]>[エンプティ]を選択し、3Dビューポート上にボリュームオブジェクトを追加します。

- ボリュームオブジェクトに、『メッシュのボリューム化モディファイアー』を追加し、[オブジェクト]に先ほど追加した立方体メッシュを設定します。

- 『ボリューム変形モディファイアー』を追加します。

- [新規]ボタンから、新規テクスチャを作成します。

- [テクスチャプロパティ]に移り、[テクスチャ]の設定をします。今回使う[タイプ]は[クラウド]にしました。ボリュームオブジェクトが変形していたら成功です。

[ボリューム変形]の詳細設定項目一覧
[テクスチャ(Texture)]
全てのボクセルで評価され、移動する距離と方向を決定するテクスチャ。
グレースケールテクスチャは、1つの方向に沿ったストレッチにつながります。カラーテクスチャを使用するのが最善です。

[Texture Mapping]
テクスチャマッピングする際に使用する座標系を選択します。
- [ローカル(Local)] …テクスチャ座標にローカル座標系を使用します。
実際に試してみたのですが、[ローカル]で移動や回転、拡縮といった操作で、テクスチャマッピングが出来ました。

- [グローバル(Global)] …テクスチャ座標にグローバル座標系を使用します。
[グローバル]は、移動や回転、拡縮で、テクスチャマッピングの操作は出来ないようですので、この[グローバル]は使用しない方が良いかと思われます。

- [オブジェクト(Object)] …テクスチャ座標にリンクしたオブジェクトのローカル座標系を使用します。
[オブジェクト]を選択した場合、すぐ下に表示される[オブジェクト]で他のオブジェクトを設定出来ますので、そこで設定したオブジェクトを使ってマッピングします。

[オブジェクト]も移動や回転、スケール変更で、テクスチャマッピングが可能なようでした。

[強さ(Strength)]
ボクセルがどれだけ変位するかを制御します。

[Sample Radius]
値を小さくすると、パフォーマンスは向上しますが、外部のボリュームが途切れる可能性があります。

[Mid Level X]、[Y]、[Z]
テクスチャがボリューム全体を一方向にオフセットし、再度中央に配置する場合は、これを変更する必要があります。パフォーマンス上の理由から、移動したボリュームは元の位置に近いままにする必要があります。

おまけ: 作ってみたもの

恐らくこのモディファイアーを使うならコレでしょうという事で、雲を作ってみました。
- まずは、大本の形状をメッシュオブジェクトから作ります。ざっくり形を作りました。

- 一回だけ『サブディビジョンサーフェスモディファイアー』で細分化します。

ちなみに、『サブディビジョンサーフェスモディファイアー』について、詳しくは下記記事をご覧ください。
- ボリュームオブジェクトを追加して、『メッシュのボリューム化モディファイアー』でメッシュオブジェクトから形状を読み取ってボリュームオブジェクトに反映させます。

- ボリュームオブジェクトに更に『ボリューム変形モディファイアー』を追加し、テクスチャで変形させます。


- 更に『ボリューム変形モディファイアー』を追加し、テクスチャで変形させます。


- 更に更に『ボリューム変形モディファイアー』を追加し、テクスチャで変形させます。


- 次にマテリアルを決めます。下記の様に[シェーダーエディター]でノードを組みました。

- ライトを追加し、真上から照射されるように調整します。ライトの[強さ]は”10.0″に設定しました。

- ワールドのマテリアルを[シェーダーエディター]上で下記の様に調整しました。

- 後は[レンダーエンジン]を[Cycles]でレンダリングすれば完成です。

参考にさせて頂いたサイト・ページ一覧
- Volume Displace Modifier — Blender Manual
- Eevee Volume Displacement for Easy Clouds [Blender 2.91] | English – YouTube
モディファイアー関連の記事のご紹介
この記事の他にも、Blenderの様々なモディファイアーについて、機能や使い方を私自身も試しながらではありますが、ご紹介させていただいております。よろしければ、こちらも併せてご覧ください。
変更
- データ転送
- メッシュキャッシュ
- メッシュ連番キャッシュ