使用ソフトウェア | バージョン | 備考 |
---|---|---|
Blender | 3.2 |
この記事を作るにあたって次の動画(英語)からかなり多くの情報を参考にさせて頂いています。
この場を借りてお礼申し上げます。素晴らしい動画をありがとうございます。
Instance on Points
ノードは誰もがよく使うノードだと思う。
しかしPick Instance
(ポイントにインスタンス作成)のソケットを解説しているサイトが記事執筆時点で殆どないため解説することにした。
合わせてInstance Index
ソケットの使い方も解説する。
まず先に、次のような例は皆が使っているのではないだろうか。
Instance on Points
を使って単一のメッシュをコピーして配置するようなケース。
Pick Instance
ソケットを使うと、次のようにいろいろなオブジェクトを混ぜて配置することができる。
まず重要なのはこの機能を使うには「コレクション」が必要となる。
コレクションはフォルダのような感覚で使っているユーザーも多いと思うが、コレクション機能に関してより詳しい情報は他に譲る。
今回は上のようにいろいろな形状のオブジェクトをTest
というコレクションに入れている。
コレクションの中のメッシュを実際に見てみると次のようにバラバラになっている。
このように配置も座標も適当で良く、とにかくコレクションに纏められていれば良い。
このTest
コレクションをジオメトリノードに入れる。
直接コレクションをドラッグアンドドロップしてもいいしCollection Info
ノードを出してから直接指定しても良い。
次の2つにチェックをいれておこう。
これをチェックしないと内部のメッシュがマージされる。チェックすると別々のインスタンスとして処理されるため今回必須。
座標がバラバラになっていたが、全て原点の座標にリセットする。
このままGeometry
をInstance
に入力する。
そうすると次のように変な結果になる。
これは一つの頂点に投入したコレクションの中身が全部表示されてしまっている状態なのでこうなっている。
ここでPick Instance
の出番。チェックを入れる。
無事に次のようになるはずだ。
つまりInstance
にコレクションが入力されている場合にPick Instance
にチェックを入れるとコレクションの中から一つピックアップして表示してくれる。
実はこれはランダムではない。
おそらく頂点番号ごとに順番に付与されることになっている。
したがって例えば直線のメッシュ上に配置していくと一定間隔で必ず同じものが現れる。
というわけで、この機能を使っている時点でランダムにしたいという需要も多いだろう。
「頂点番号とインスタンス番号の結びつき」をコントロールしているのがInstance Index
だ。
例えば
このようにランダム値入力すると順序をバラバラにすることができる。
ただ、このノードの組み方だと必ずどこかで重複(偏り)が出る。
場合によってはコレクションの中にはあるのに1度も使われない物が出るかもしれない。
冒頭の動画にてこの解決方法を解説しているがロジックの解釈が必要で非常に難しい。
英語だがやる気があれば挑戦してみてほしい。
今度は逆に狙ったところに狙ったオブジェクトを配置する方法を考える。
Index
ノードを用いてグリッドの頂点12番をコレクションの0番(トーラス)にして、その他を1番(モンキー)にしている。
ここも少し難しく解説しきれないので色々試してもらえたらと思う。
ちなみにコレクション番号はオブジェクトにつけた名前の50音順になっている。
お気づきの方もいるかもしれないがこれまでの解説でPick Instance
はソケットがあるのに使用していない(チェックボックスを使っただけ)
当然これも上の例のように狙ったインデックスに対してTrue/False
を切り替えられるのだが...
これを特定部分だけFalse
にしても重複して見栄えが悪いインスタンスが現れるだけだ。
このソケットはコレクションの中身が重複することにより完成するタイプのモデリングで機能しそうだ(パーツごとに分けられたロボットみたいな?)
ただ、ここまでくると上級者過ぎて私には良い事例が思いつかないので各自で考えてもらえたらと思う。
今回は初心者には難しい概念の記事かもしれない。
正直なところ多用する機能でもないため、ぼんやり覚えておいて使う時にこの記事に戻ってきてもらえたら幸いだ。