見出し画像

blender 4.5 オブジェクトを散りばめる 5 つの方法

オブジェクトの表面などに、別オブジェクトを散布、散りばめたい場合がよくあります。ここでは、用途に応じた 5 つの方法を紹介します。


環境 Blender 4.5.0 , Mac Mini M1 OS 14.4



1.インスタンス化


オブジェクト表面に、別オブジェクトを散布する方法としてはもっともシンプルな方法。

  • たとえば、以下のようなオブジェクト(名前を Stick とした)を追加する

オブジェクト原点は、底の中心に。
  • 同じ位置に、ここでは、ICO 球を追加

必須ではないが、両オブジェクトの原点は同じ位置に揃える。
  • Shift キーを押しながら、Stick、ICO 球の順に選択

  • オブジェクト > ペアレント > オブジェクト を実行( ⌘(Ctrl) + P )

ICO 球がオレンジ枠の選択状態の後、ペアレント化。ICO 球が親。
  • ICO 球を選択し、オブジェクトプロパティ > インスタンス化 > 面  を選択

ICO 球の面上に、Stick オブジェクトが生成される。「頂点」上にも生成できるが、ここでは拡大縮小のオプションもある「面」を選択。

「面のサイズで拡大縮小」を ON にすると、「係数」の値で stick オブジェクトのサイズを拡大、縮小できる。

ICO 球の各面の大きさによって、Stick のサイズも変化する

なお、「インスタンサーを表示」では、インスタンサー(ここでは ICO 球)を、ビューポート、あるいは、レンダーの際、非表示にできる。

レンダリング

インスタンスとは
以降のほぼすべての操作で「インスタンス」という用語が頻出するが、インスタンスとはオリジナルのコピーオブジェクトのような存在で、同じ形状のオブジェクトを大量に生成する際に用いられる。インスタンスは形状データを持たないので、オリジナルを大量に複製するより、処理負担が軽く、データ量の削減になるためだ。



2. ヘアーパーティクルシステム


通常はキャラクター等のヘアーを生成するシステムだが、ヘアーの代わりに別オブジェクトを生成させることもできる。

  • たとえば、以下のようなオブジェクト(名前を Grass とした)を追加する

作成後は、オブジェクト > 適用 > 回転・スケール を実行。原点は底中央。
  • 平面オブジェクトを追加

  • 平面オブジェクトのパーティクルプロパティ > +ボタンで、パーティクルシステムを追加、タイプは「ヘアー」を選択

発生 > 数は、ここでは、100 に変更した。
  • レンダー >  レンダリング方法を「オブジェクト」に変更

  • インスタンスオブジェクトに「Grass」オブジェクトを指定

  • 「オブジェクトの回転」にチェックを入れる

Grass オブジェクトの回転軸が合っていないので、

  • オブジェクトモードで、Grass オブジェクトを、ここでは Y 軸に 90°回転

オブジェクトによっても異なるので、様子をみながら正しい回転を与える。

この後、Grass オブジェクトは非表示にしてもかまわない。

スケールのランダム化

各パーティクルのスケールがランダムに変化する。

回転のランダム化

詳細設定 にチェック。回転する軸は「ノーマル」

子パーティクル

タイプは「補間」を選択。親のすきまを埋めるように子パーティクルが発生する。

「表示数」(ビューポートでの表示数)、および、「レンダリング時の表示」は、ここでは、10 とした。なお、デフォルトでは子パーティクルの長さは親と同じになるが、子パーティクル > 長さ 、しきい値の値の変更で、長さが同じではない子パーティクルを混在できる。

頂点グループ

頂点グループのウェイトによって発生の分布を制御できる。

  • パーティクルシステムをいったん非表示とし、平面を 20 程に細分化

  • ウェイトペイントモードで、ウェイトペイントを行う

ウェイトの高い(1.0)エリアが赤寄りに表示される。
  • パーティクルシステムを表示させ、頂点グループを指定

頂点グループのウェイトの高いエリアの、密度 が濃く 長さ が大きくなる。
レンダリング



3. パーティクルシステム


パーティクルを発生させ、オブジェクト表面に付着させるパターン。

たとえば、平面オブジェクト、および、トーラスオブジェクトを追加し、どちらも、「コリジョン」を適用する。

物理演算プロパティ コリジョンをクリック。
付着度 10 摩擦 1.0 どちらも最大にし、パーティクルが滑り落ちるのを防ぐ。

さらに、平面オブジェクト、および、右の、円筒オブジェクト(名前を Chip とした)を追加。

  • 平面オブジェクトを選択し、パーティクルプロパティ、+ ボタンをクリックし、パーティクルシステムを適用

パーティクルプロパティ 数は 200 開始、終了フレームは 1.0 寿命は 250 とした

開始、終了フレームを 1 にすることで、200 個のパーティクルが、シミュレーションを開始時に同時に発生する。

  • 「回転」> ランダム化を 1.0 に変更

  • レンダー > レンダリング方法は「オブジェクト」 スケールのランダム化 を 0.5 程に変更

  • オブジェクト > インスタンスオブジェクト には「Chip」オブジェクトを指定

インスタンスの大きさと回転が、ランダムに変化する。
  • シミュレーションを開始し、適当なタイミングで停止する

再生、停止のショートカットは、デフォルトでスペースバー

Chip オブジェクトが上から降り積もり、トーラスオブジェクトの表面に付着する。

なお、インスタンスをオブジェクト化するには、付着したインスタンスオブジェクトを選択し、オブジェクト > 適用 > インスタンスを実体化(Make Instances Real)を実行する。大量の(上では 200 個の)オブジェクトが生成されるので、適宜、コレクションに収めたり、ひとつのオブジェクトに統合する、などの処理をしたほうがよいだろう。 



4. リジッドボディ


パーティクルシステムに似ているが、より精密な衝突判定をしたい場合、リジッドボディを利用する。

  • 下のようなオブジェクトを追加

  •  オブジェクト > 適用 > 回転・スケール を実行

長さは 1.3 m 後の衝突判定に影響するのでやや大きめに。
  • 物理演算プロパティ >  リジッドボディ を選択

  • コリジョン > シェイプ は「ボックス」とする

衝突判定の形状による精度は、コリジョン > シェイプ > 凹包、あるいは、メッシュが高い。ただし、上のようなややポリゴンの多いオブジェクトでは、処理に負担がかかり、誤動作もあるので、精度はやや低くなるが、ボックス、球状、カプセル、など形状に合わせたシェイプを設定する。

  • 大きめの平面オブジェクトを追加

  • 物理演算プロパティ >  リジッドボディ を選択

  • タイプを「パッシブ」とする


  • 立方体オブジェクトを、Option + D で複製する

ここでは、45 個ほどを作成

全選択し、オブジェクト  > トランスフォーム > ランダムトランスフォーム を実行

画面左下のプロパティで、回転のみランダムに変更(オブジェクトが重ならないように)

Option + D で複製することにより、複製オブジェクトは「インスタンス」となる。データ量がコンパクトになり、また、後の形状の変更がすべての複製オブジェクトに適用される。

  • シミュレーションを開始する

開始、停止ともショートカットはスペースバー


なお、リジッドボディの値の変更をすべてのオブジェクトに反映させるには、値を変更したオブジェクト(上では右上)を、Shift キーを押しながら最後に選択(オレンジ枠)し、オブジェクト > リジッドボディ > アクティブからコピー(Copy from Active)を実行する。

また、上の結果を固定し、シミュレーションの適用外とするには、

  • 散布オブジェクトをすべて選択し、オブジェクト >  リジッドボディ >  トランスフォームを適用(Apply Transformation)を実行

  • シーンプロパティ >  リジッドボディワールドを削除 をクリック

シミュレーション結果が固定される

積み木のようなオブジェクトを大量に散布する場合に最適だろう。なお、同様の方法で、器に詰める、などの操作は、Rigid Body リジットボディで詰めもの も参照してください。



4. リジッドボディ - 2


リジッドボディにフォースフィールドを併用するパターン。

下のように、デフォルトの UV 球と、吸着させる、ねじオブジェクト群を追加。

具体的な手順は、上のリジッドボディと同じ。UV 球には、リジッドボディ > パッシブ を、ねじオブジェクトにはすべて、同 > アクティブ を適用する

左 : UV 球(パッシブ) 右 : ねじオブジェクト(アクティブ シェイプ >  円柱)
  • 追加 > フォースフィールド > 力 を追加

強さは -(マイナス)1000 フィールドの中心にむかって力が働く
  • シミュレーションを開始

磁石に引き寄せられるように吸着する
レンダリング

中心に向かって吸着するアニメーションなどに。このパターンについては、いろいろフォースフィールド 記事も参照してください。



5. 面にポイント配置

Distribute Points on Faces

ジオメトリノードによる散布。1. インスタンス化に似ているが、ノードによる操作の幅が格段に広い。

  • 左の 円オブジェクト(名前を Disk とした)と、デフォルトの UV 球オブジェクトを追加

  • UV 球を選択し、Geometry Nodes ワークスペースに変更、「新規」をクリック

どちらも、オブジェクト > 適用 > 回転・スケール を実行。
  • 下のノードを組む

オブジェクト情報には、「Disk」オブジェクトを指定。

面にポイント配置 に「ポアソンディスク」を指定することで、最小距離の範囲内には、散布オブジェクトに重なりができない。

結果。左の Disk オブジェクトは非表示にしてもかまわない。

スケールのランダム化

ランダム化(Random Value)ノードを、スケール に接続
結果。各インスタンスのスケールが 0.1〜0.3 倍の範囲で、ランダムに変化する。

回転のランダム化

各インスタンスの回転に、
ベクトル演算(Vector Math)ノードで、ランダムな値(ベクトル)を加えた。
 結果

もちろん、他のノードによる幅広い操作も加えることができるが、単純な散布を行う場合も、比較的手順も簡単で便利だ。なお、関連のジオメトリノードについては、インスタンス - はじめての Geometry Nodes も参照してください。


まとめ


どの方法も、オブジェクトを散りばめたり、表面に散布するのに便利な機能ですが、適切な設定値を忘れやすいので、まとめてみました。参考になれば幸いです。


いいなと思ったら応援しよう!