3
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Blenderのジオメトリーノードでハニカム配置

Last updated at Posted at 2022-03-20

やりたいこと

下図のようなハニカム状に配置されたオブジェクトをジオメトリーノードで作成する方法の紹介です。

通常は、下図のような「2つの六角形」をx方向とy方向に配列モディファイアーで伸ばせば作成できます。
ここでは、配列モディファイアーを使わずに、Blender3.1のジオメトリーノードを使って作成してみます。

※ ちなみに、シンプルなハニカムであれば、Add Mesh: Extra Objectsアドオンを有効にして、追加→メッシュ→その他→Honeycombで作成できます。

やり方

プリファレンスのアドオンから「Node Wrangler」を入れておいてください。

元になる六角形を作成します。以降では、六角形の半径は1として進めます。

  • Shift + A(追加)→メッシュ→円
    • 画面左下のオペレーターパネルで下記を設定
      • 頂点:6
      • フィルタイプ:Nゴン

画面を分割するか、今回使わないタイムラインの画面からジオメトリノードエディターを開きます。

六角形を選択して、ジオメトリノードエディターの新規を押します(これによりモディファイアープロパティにジオメトリノードモディファイアーが作成されます)。ジオメトリノードエディターのサイドバーは、Nを押して一旦閉じましょう。

まずは、下図を作ってみましょう。下図では、わかりやすいようにオブジェクトプロパティのビューポート表示のワイヤーフレームをONにしてます。

  • Shift + A(追加)→ジオメトリ→トランスフォーム(ノード間の緑のリンクが白く変わるところでクリックし、接続されるようにしてください)。項目を以下のように設定します。
    • 移動X:sqrt(3) / 2
    • 移動Y:1.5
  • CtrlShiftを押しながら、「グループ入力」ノードから「トランスフォーム」ノードにドラッグしてください。下図のように「ジオメトリ統合」が作成されて六角形が2つになります。

このあと「数式」ノードをたくさん使います。Shift + A(追加)のユーティリティの数式を右クリックし「お気に入りツールに追加」すると良いでしょう。Q(お気に入りツール)から使えます。
また、以降では「Shift + A(追加)」の表記は、煩雑なので省略します。

ジオメトリーノードで配列モディファイアーが使えればよいのですが、Blender3.1にはまだありません。ここでは、カーブを作り、ポイントにして、ポイントに配置して増やします。先は長いですが順番に作成していきましょう。ノードをたくさん作るので画面を広げると作業しやすいです。

  • ユーティリティ→数式
    • 追加を積和算に変更
    • 乗数:sqrt(3)
    • Addend:-sqrt(3)

ここで、下図のように値のスロットから「グループ入力」の空のスロットにドラッグしてください。ドラッグの順番は逆でもOKです。

  • 入力→整数

    • 値を1
  • 「積和算」を選択し、Shift + D(複製)で複製し複製元の積和算の下に配置してください。

    • 値:「整数」の整数からドラッグ
    • 乗数:3
    • Addend:-3
  • ベクトル→XYZ合成

    • X:上の「積和算」の値からドラッグ
    • Y:下の「積和算」の値からドラッグ

ここまでで、下図のようになります。

続きます。

  • カーブプリミティブ→カーブライン
    • 終了:「XYZ合成」のベクトルからドラッグ
  • ユーティリティ→数式
    • 追加を最大に変更
    • 上の値:「グループ入力」の値からドラッグ
    • 下の値:「整数」の整数からドラッグ
  • カーブ→カーブからポイントへ
    • カーブ:「カーブライン」のカーブからドラッグ
    • 数:「最大」の値からドラッグ
  • インスタンス→ポイントにインスタンス作成
    • ポイント:「カーブからポイントへ」のポイントからドラッグ
    • インスタンス:「ジオメトリ統合」のジオメトリからドラッグ

「ポイントにインスタンス作成」の出力のインスタンスから「グループ出力」のジオメトリにドラッグしてください。
下図のようになります。

上図の赤い枠になっている7つのノードを選択し、Ctrl + G(グループ作成)でグループを作成します。
「グループ入力」の値が4つありますが、2つで良いので上2つの値から「最大」の2つの値につなぎ直します。また、N(サイドバー)でサイドバーを出し、グループの入力から下2つの値を削除します(-ボタンで削除)。
さらにサイドバーで、2つの値のタイプを整数にし、名前をNumXNumYに変えてください。上の「積和算」につながるほうがNumXです。入力の順番は、リストの右の三角のボタンで変更できます。下図のようになります。

Tabでグループ編集から戻ります(もう一度グループ編集するのもTabです)。

さて、NodeGroupという深緑のノードができています。わかりやすいように名前をDupに変えてください。入力できるところで変更できます。

「整数」ノードは、グループの入力にするために作成していました。もう不要なので削除してください。削除したらNumYは1にしてください。

このDupノードが配列モディファイアーに相当します。今作成したのはX方向の複製でした。Y方向にも複製しましょう。「Dup」を複製して右に配置し、インスタンスがつながるようにしてください。ちなみに、このグループは、「Shift + A(追加)」のグループからも作成できます。

複製した「Dup」のNumXを1にし、NumYは「グループ入力」の空のスロットからドラッグしてください。
また、グループ入力の値のタイプを整数に、名前をNumXにしてください。下図のようになります。

完成です。

サイズはモディファイアープロパティから変更できます。NumXを5に、NumYを2にしてみましょう。

3Dビューポートでは、下図のようになります。

Y方向は、2個組で1段なので、NumYを2にすると4段になっています。
また、メッシュを変更すると下図のように反映されるのが確認できます。

なお、今回作成したジオメトリーノードモディファイアーは、アセットとして登録できるようです。

追記(もっとシンプルな別の方法)

上記では、配列モディファイアーのように並べるために、カーブに変換していました。
しかし、メッシュラインを使うと、下記のようにカーブを使わずに並べることができます。こっちの方が簡単ですね。

image.png

以上

3
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?