見出し画像

blenderのジオメトリーノードで回転で配置できる配列複製作った

はじめに

おんなじ物を大量に並べたいときにとても便利な配列複製モディファイヤー。
しかし基本的には直線に並べる用であり、丸く並べることもできるにはできるが、「新規にエンプティを追加してオフセット(OBJ)にいれて位置と角度を調整して…」とする必要があってめんどくさいし、あとから位置や角度を微調整するのもめんどくさい…
ので、ジオメトリーノードに数と角度を入力するだけで簡単に配列複製してくれるジオメトリーを作ってみました。

完成図

全体図

完成したものがこちらになります。
このまま作るだけで便利に使えるはず。

以下内部の説明をしていきます。

メッシュライン

メッシュライン

このノードは本来直線状に並んだポイントを作り出すノードになります。
この直線の長さを0にすることで、同じ位置に指定した数のポイントを作ることができます。
ジオメトリーノードの基本的な使い方は「ポイントの位置にインスタンスを配置する」といったものになるので、ここで作り出したポイントの数だけインスタンスを回転して配置する、という用途に使用するノードになります。

ID

ID

IDとだけ言われても一体なんのIDなのかわからない…多分今回の使い方では、上記のメッシュラインで作り出したポイントにそれぞれIDを割り当てる、といった使い方になってると思います。
今回は指定した数の分だけ、指定した角度ずつずらして並べていきたいので、
たとえば
ID 0×10度 =0度
ID 1×10度 =10度
ID 2×10度 =20度
ID 3×10度 =30度
ID 4×10度 =40度
といったように、IDの値を掛け算に使うことで等間隔の角度で並ぶようにしています。
(IDは0からスタートして順番にカウントされていきます。)

角度の計算

角度の計算

IDから続く乗算とか除算とかで、回転配置する角度の値を作っています。
blenderでは、3.14で180度、6.28で1回転するらしいです。(詳しくはラジアンでぐぐれ)
なので、最初の乗算で6.28をかけて、最後の除算にて360で割ることで、IDが1の時1度だけ回転するようになっています。
ここでさらに真ん中の乗算に好きな値を入れられるように作っているので、たとえば30と入力すると(1度×30=)30度ずつ回転するように設定できます。
最後のXYZ合成にて、作った角度をZだけに入れるようにしています。XもYも回転してしまったら訳が分からなくなってしまうので。
…しかし何で弧度法と度数法が混在しているのかわからん、めんどくさい!

ジオメトリのインスタンス化と移動

ジオメトリのインスタンス化と移動

複製配置する用のインスタンスは、普段は別に用意したオブジェクトを読み込んで使うことが多いですが、今回は、このジオメトリモードがアタッチされているオブジェクト自体を複製して使うので、自分のジオメトリをインスタンスに変換してたくさん増やす準備をしています。

移動についてですが、今回「原点を中心にして回転させて複製するジオメトリーノード」となっているので、移動しないとただその場で回転したオブジェクトが重なりまくるだけになってしまいます。(たいていのモデルは原点を中心付近にして制作してることが多いので)
そこで複製の前段階でインスタンス自体を原点から移動させておきことで、「原点から半径10メートルの円状に配列複製」といったように半径を数値入力できるようにしています。

グループ入力

グループ入力

グループ入力に線をつなぐとつないだ値が入力ウインドウに表示され、入力ウインドウで設定されたものがモディファイヤーウインドウで数値入力できるようになります。
いちいちジオメトリーノードウインドウを開かずに数値を入力できるので便利です。

ポイントにインスタンスを作成

ポイントにインスタンスを作成

い つ も の

完成!

以上の部品を完成図のように組み合わせると、半径をTranslasion、角度をdegreeに入力するだけで簡単に配列複製ができるようになりました。
軽い気持ちで作ってみたジオメトリーノードですが、自分でめっちゃ使う機会が多いです。便利です。

みなさんも、同じ作業の繰り返しがめんどくさいとき、ちょっと楽がしたいとき、気軽にジオメトリーノードを触ってみてください。楽しいですよ。
そして記事を書いて共有してね!

おまけ

ジオメトリーノード楽しいんだけど、使った後にほかのモディファイヤー使えないの不便だな…って思ってたら…

インデックス実体化

そりゃジオメトリーをインスタンスにできるなら、インスタンスから作られたものをジオメトリに変換する機能もあるよね…
こちらを出力の直前に挟むと普通に別のモディファイヤーを追加できるようになりました。
この記事書いているときに発見した。

この記事が気に入ったらサポートをしてみませんか?