
blender 4.2 シミュレーションでドーナッツを作ろう
有名な YouTuber の影響で、blender ではじめてつくるモデルといえばドーナッツ、が定番になっています。初心者用のモデルとして本当に適しているかどうかは別として、実際にチュートリアルを行ったかたも多いのでは。
ここでは、ほとんどモデリングなしで、流体とパーティクルシミュレーションでドーナッツをつくる方法を紹介します。
環境 Blender 4.2.0 , Mac Mini M1 OS 14.4
ドーナッツ
Shift + A > メッシュ > トーラス を追加し、画面左下のプロパティ画面を下のように変更する。
シミュレーションに係るので、慣れない方は、サイズは合わせてもらったほうがよい。下の状態で約、6 x 6 x 2 m。流体シミュレーションはサイズは大きいほうがよいようだ。

物理演算プロパティ > 流体 をクリックし、タイプをエフェクターとする。

エフェクターを適用することで、後述のチョコレートを受け止める土台になる。
チョコレート
Shift + A > メッシュ > トーラス を追加し、画面左下のプロパティ画面を下のように変更する。

編集モードで、上面と下面を選択し、E S キーで内側へ押し出す。
中央の 2 面は削除、内側の上下の 2 辺を選択し、辺 > 辺ループのブリッジ を実行。


スケール、寸法は、N キーで表示できる。また、スケールが 1.0 でない場合は、オブジェクト > 適用 > スケール を実行する。
流体シミュレーション
上のチョコレートオブジェクトを選択し、オブジェクト > クイックエフェクト > クイック液体 を選択する。

生成される Liquid Domain の物理演算プロパティを下記のように変更する。

高粘度ソルバーをチェックすることにより、水のような通常の液体から、溶けたチョコレートのような粘り気のある液体をシミュレートできる。
スペースバーを押し、シミュレーションを開始する。停止も同じ。再度シミュレーションを始める場合は、最初のフレームまで巻き戻すのを忘れないこと。


シミュレーションに負荷がかかると挙動が不安定になることがある。PCの性能にもよるかもしれない。うまくいかない場合は、上述の、分割の解像度、高粘度ソルバーの強さ、あるいは、チョコレートオブジェクトの厚さを調整する。
形状に満足できたら、各モディファイアを「適用」する

必須ではないが、リメッシュ、および、サブディビジョンサーフェスモディファイアを適用し、ポリゴンを削減しつつなめらかにする。


デコレーション
デコレーションのチョコチップを、パーティクルシミュレーションを使い、ふりかける。
パーティクルシミュレーション
新たに床になる平面オブジェクトを追加し、チョコレート層のオブジェクト、床の平面オブジェクトの 2 オブジェクトに、物理演算プロパティ > コリジョン を適用する。

ドーナッツの上に新たに平面オブジェクトを追加し、パーティクルプロパティの + ボタンでパーティクルシステムを追加する。

シミュレーションを開始。

新規に下のオブジェクトを作成し、名前を「chip」とした。

エミッターオブジェクトの物理演算プロパティ、レンダリング方式を「オブジェクト」に、インスタンスオブジェクトに上で作成した「chip」を指定。

再シミュレーションを行う。

chip オブジェクトをやや修正し、サブディビジョンサーフェスモディファイアを適用。

エミッターオブジェクトを選択し、オブジェクト > 適用 > インスタンスを実体化 を実行。

C キーなどで、必要のないオブジェクトを削除。

完成。

マテリアルを適用し、レンダリング。

デコレーションのマテリアル。

カラーがランダムに選択される。もとはインスタンスなので、いずれかのデコレーションオブジェクトに適用すると、すべてに反映される。
cycles の場合、デコレーションオブジェクトはすべて「統合」し、上のオブジェクト情報ノードの代わりに、ジオメトリノードの「アイランド毎の乱数」から接続しても同じ結果になる。ただし、結果はレンダリング画面のみで確認できる。
まとめ
当初思っていたよりも手順が長くなりましたが、ほとんどはシミュレーション特有の設定と手続きなので、慣れてしまうと、みためよりも煩雑ではありません。
なかなか思い通りにいかず、これなら普通にモデリングしたほうがはやい、と思われる方も(以前のわたしのように)いるかもしれませんが、手慣れてしまえば、応用も広く、モデリングの幅が広がります。参考まで。
最近なんとなく気づいたのですが、物理シミュレーションとは、複雑なモデリングを手軽に行ってくれる機能というわけでは必ずしもなく、トライアンドエラーと知識で、手懐けるというかねじ伏せるというか、すこし予想が難しいあいまいなものをなんとか妥協できるかたちに導く、そういう機能ではないかと思います。わたしだけの気づきかもしれませんが。