工作としての blender - 散りばめる
3DCG のモデリングは、木工や粘土細工に似ているところがあります。そこで、モデリングをバーチャルな工作と捉え、第 6 回では、「ばらまく、散りばめる」操作のいくつかを紹介します。
環境 Blender 4.3.0 , Mac Mini M1 OS 14.4
Randomize Transform
オブジェクト > トランスフォーム > ランダムトランスフォーム
選択オブジェクトの位置、回転、スケールをランダムに変更する機能。


左下のプロパティ画面を開き、位置 X, Y を 6 m 以内でランダムに配置。

1.4倍以内で、スケールをランダム化(均一スケーリング)
手軽にオブジェクトを配置をバラけさせることができる。木々や草などを自然に配置させるときなどに便利。
Array - Curve
配列、カーブモディファイア
カーブに沿って、オブジェクトを配置するパターン。


念のため、人物オブジェクトには、オブジェクト > 適用 > 回転・スケール を実行しておく。
人物オブジェクトに配列モディファイアを適用する。

カーブには、最初に追加した「NurbsCurve」を指定
配列モディファイアに加え、カーブモディファイアを適用する。

カーブに沿って散りばめたい、整列させたい場合などに便利。
Instancing
オブジェクトの面や、頂点上に、別オブジェクトを散りばめるパターン。
Faces(面の上に配置)
平面、コーン(中央)の、2 オブジェクトを作成。
コーン、平面の順に Shift キーを押しながら選択し、⌘(Ctrl)+ P キー > オブジェクト を実行、平面を親としてペアレント化する。

コーンオブジェクトの原点は底の中央。
平面オブジェクトの、オブジェクトプロパティを表示、インスタンス化 > 「面」 を ON にする。



細分化によって面が増えるので、配置されるコーンオブジェクトの数も増える。

オブジェクトプロパティ、「面のサイズで拡大縮小」にチェック。係数は、ここでは、7.5 面の面積によってコーンオブジェクトのサイズも変わる。
Vertices(頂点上に配置)
同様の操作で、ICO 球を親、コーンを子としてペアレント化し、インスタンス化を適用した。

親の、ICO 球の各「頂点」に、コーンが配置される。


オブジェクト > 適用 > 回転 を実行。
※ 法線の向きと、インスタンス(上ではコーン)の回転軸が合っている必要があるようだ。X, Y いずれかの軸に回転させ、正しいと思われる回転を与える。自動で正しく合わせる方法は現状でよくわかっていない。

なお、上の各オブジェクトは、オリジナル以外はインスタンス(オブジェクトのコピー状態)であり、通常のオブジェクトに変換するには、オブジェクト > 適用 > インスタンスを実体化 を実行する。※上のオブジェクトでは、 242 個の大量のオブジェクトになるので、必要がある場合のみでよいだろう。
Hair System
通常はキャラクターの髪などを生成する機能だが、オブジェクトの散布にも利用できる。
中央の Tree オブジェクト、および、平面オブジェクトを追加した。

平面オブジェクトのパーティクルプロパティを表示。
+ ボタンを押し、Particle System を追加。「ヘアー」を ON にする。

レンダー > レンダリング方法に「オブジェクト」を選択。
インスタンスオブジェクト には、Tree オブジェクトを指定する。


オブジェクトモードで、Tree オブジェクトをX 軸に - 90° 回転。
オブジェクト > 適用 > 回転 を実行。



Vertex Group
頂点グループのウェイトによって、散布の範囲を指定することもできる。
平面オブジェクトを細分化し、編集モードで、全選択する。
データプロパティを表示し、頂点グループを追加、割り当てをクリック

ウェイトペイントモードに切り替える。

ブラシなどで、散布させたいエリア(赤に近い)をペイントする。

パーティクルプロパティ 頂点グループ > 密度 に、上で設定した頂点グループ「Group」を指定。

Collection
コレクションに複数のオブジェクトを入れることで、異なるオブジェクトを散布することもできる。
コレクションを新規作成、名前を「Particles」とし、下では 3 種の異なるオブジェクトを収めた。
レンダー > レンダリング方式 に、コレクションを選択
コレクションインスタンス に「Particles」コレクションを指定。

新規コレクションは、右上のアウトライナー画面上右クリック > 新規コレクション 等で作成できる。
やや手数はかかるが、散布状態をリアルタイムに変更でき、また、ランダムな配置、散布エリアの指定などカスタマイズオプションが豊富なのが特長だ。
Rigid Body
物理シミュレーションで、物理法則に沿って散りばめるパターン。

複雑な形状だと、計算が増え、正しく処理されないことがある。シミュレーション後、形状を変更する操作は後述する。

いずれかのオブジェクトに、リジッドボディを適用。

オブジェクトのの形状やサイズによっては、感度 > 余白 を、0.004 m など少なく設定したほうがシミュレーションの精度が高くなる。
オブジェクトを全選択し、Shift キーを押しながら、リジッドボディを適用したオブジェクトを選択(オレンジ枠状態)
オブジェクト > リジッドボディ > アクティブからコピー を実行

選択したすべてのオブジェクトに、同じ設定のリジッドボディが適用される。
適宜、皿オブジェクト等を追加、タイプ「パッシブ」のリジッドボディを適用。床オブジェクトにも適用する。

スペースバーを押す、あるいは、タイムラインの再生ボタンをクリックし、シミュレーションを開始する。


形状を適用
ここから、シミュレーションの影響を受けずに各オブジェクトの形状等に自由に変更を加えたい場合は、シミュレーション結果を「固定」する必要がある。
オブジェクトを全選択し、オブジェクト > リジッドボディ > トランスフォームを適用 を実行する。

この操作で、オブジェクトはシミュレーションから離れ、通常のオブジェクトとして変更を加えることができる。
いずれかのオブジェクトの形状を変更。

オブジェクトを全選択、Shift キーを押しながら、変更を加えたオブジェクトを選択する(アクティブ。オレンジ枠状態)

オブジェクト > データのリンク/転送 > オブジェクトデータをリンク を実行する。

シミュレーションによる操作はオブジェクトの形状等によってやや動作がトリッキーな難点もあるが、オブジェクト同士に重なりがなく、当然、物理法則に沿ったリアルな散りばめになる。詳細については、リジッドボディで詰めもの 記事も参照してください。
まとめ
習いはじめのころは、オブジェクトが大量になってくるとすこし怖いイメージもあるかもしれませんが、モデリングのステップアップには欠かせない要素です。参考まで。
