【Blenderジオメトリーノード】立方体が無限に回転!インスタンスアニメーションの作り方


⚡️ Blenderジオメトリーノードで無限の可能性を!回転する立方体アニメーションをマスター!

このチュートリアルは、あかりノートさんの素晴らしいYouTube動画を参考に作成しました。あかりノートさんの詳細かつ分かりやすい解説に深く感謝いたします。

もし、このアニメーションの作成プロセスを動画で直接確認したい場合は、以下のリンクからあかりノートさんの元の動画をご覧ください:

あかりノートさんのBlenderジオメトリーノード解説動画 (回転する立方体)

「Blenderで複雑なオブジェクトの階層アニメーションってどう作るの?」 「ジオメトリーノードでオブジェクトを複製して動かす方法を知りたい!」 「SF映画やゲームで見るような、未来的な回転アニメーションを自分でも作ってみたい!」

もしあなたがそう感じているなら、この記事はまさにうってつけです!Blenderの**ジオメトリーノード (Geometry Nodes)**は、ノード(箱)を線でつなぐだけで、驚くほど複雑でリアルな3Dエフェクトやアニメーションを作り出せる強力な機能です。

今回は、Blenderジオメトリーノードを使い、回転する立方体のアニメーションを、動画の手順に沿ってステップバイステップで徹底解説します。ポイントの配置、インスタンス化、ジオメトリーの結合、そして複数の階層にわたる回転アニメーションの作成まで、このチュートリアルで一連の流れをマスターしましょう。

この記事を読み終える頃には、あなたもジオメトリーノードのインスタンス化テクニックアニメーション作成の基礎をマスターし、SNSで注目されるようなオリジナルの3Dアニメーションを作成できるようになるでしょう!

この記事で学べること:

  • ジオメトリーノードの基本設定
  • メッシュからポイントへの変換インスタンスの配置
  • 複数のジオメトリーを結合し階層化する方法
  • インスタンスのスケール調整テクニック
  • 立方体を丸くする方法とマテリアルの設定
  • トランスフォームジオメトリードライバーを使った回転アニメーション
  • HDRI画像によるライティングと最終調整

難しい専門知識は不要!一緒に手を動かしながら、Blenderジオメトリーノードの無限の可能性を体験してみましょう!


A. ジオメトリーノードの基本設定と立方体の追加

まずはBlenderを起動し、ジオメトリーノードでの作業を始めるための基本的な設定を行います。

  1. Blenderを起動し、ジオメトリーノードワークスペースに切り替える:
    • Blenderを立ち上げます。
    • 画面上部のワークスペースタブから「ジオメトリーノード (Geometry Nodes)」ワークスペースに切り替えます。
    • 初期表示されている「立方体」が選択された状態で、ジオメトリーノードエディターの「新規 (New)」ボタンをクリックして新しいジオメトリーノードツリーを作成します。
    • グループ入力 (Group Input)」ノードはそのままにしておきます。
  2. ベースとなる立方体を追加する:
    • Shift + A > 「メッシュプリミティブ (Mesh Primitives)」>「キューブ (Cube)」ノードを追加します。
    • キューブ (Cube)」ノードの「メッシュ (Mesh)」出力を、「グループ出力 (Group Output)」ノードの「ジオメトリー (Geometry)」入力に接続します。

B. ポイントの配置とインスタンス化で立方体を増やす

次に、ベースの立方体の頂点に別の立方体を複製(インスタンス化)して配置する方法を学びます。

  1. メッシュの頂点にポイントを配置する:
    • Shift + A > 「メッシュ (Mesh)」>「メッシュをポイントに (Mesh to Points)」ノードを追加し、「キューブ」ノードと「グループ出力」ノードの間に配置します。
    • これにより、立方体の各頂点にポイントが生成されます。
  2. ポイントに立方体をインスタンス化する:
    • Shift + A > 「インスタンス (Instances)」>「ポイントにインスタンス (Instance on Points)」ノードを追加し、「メッシュをポイントに」ノードの後に配置します。
    • Shift + A > 「メッシュプリミティブ (Mesh Primitives)」>「キューブ (Cube)」ノードをもう一つ追加します。これがインスタンスとして複製される立方体になります。
    • この新しい「キューブ (Cube)」ノードの「メッシュ (Mesh)」出力を、「ポイントにインスタンス (Instance on Points)」ノードの「インスタンス (Instance)」入力に接続します。
    • インスタンス化されたキューブのサイズを調整するため、「キューブ (Cube)」ノードの「サイズ (Size)」を「0.2」程度に小さく設定します。

👉 「なるほど!」ポイント:メッシュをポイントに」ノードは、メッシュの頂点、辺、または面にポイントを生成します。今回は頂点にポイントを作成し、そのポイントを基準に「ポイントにインスタンス」ノードで別のオブジェクト(キューブ)を複製して配置しています。これにより、元の立方体の形状を保持しつつ、その頂点に小さな立方体を多数配置できるのです。


C. ジオメトリーの結合と階層化で大・中・小の立方体を作成する

複数のジオメトリーを結合し、大・中・小の異なるサイズの立方体で階層構造を作成します。

  1. 大・中・小の立方体を結合する:
    • Shift + A > 「ジオメトリー (Geometry)」>「ジオメトリーを結合 (Join Geometry)」ノードを追加します。
    • 最初の「キューブ (Cube)」ノード(大立方体のベース)の「メッシュ (Mesh)」出力を、「ジオメトリーを結合」ノードの入力に接続します。
    • ポイントにインスタンス (Instance on Points)」ノードの「ジオメトリー (Geometry)」出力を、「ジオメトリーを結合」ノードの別の入力に接続します。
    • ジオメトリーを結合 (Join Geometry)」ノードの出力を「グループ出力 (Group Output)」ノードに接続します。
  2. 大立方体のサイズを調整し、インスタンスに影響を与えないようにする:
    • 最初の「キューブ (Cube)」ノード(大立方体のベース)の直後に、Shift + A > 「ジオメトリー (Geometry)」>「ジオメトリーをトランスフォーム (Transform Geometry)」ノードを追加します。
    • この「ジオメトリーをトランスフォーム (Transform Geometry)」ノードの「スケール (Scale)」を「0.7」程度に設定し、大立方体を小さくします。この「トランスフォームジオメトリー」ノードは、あくまで大立方体自体にのみ影響を与え、インスタンスの配置には影響しません。
  3. 中立方体の頂点に小立方体をインスタンスとして配置する:
    • ポイントにインスタンス (Instance on Points)」ノード(これが中立方体になります)の「ジオメトリー (Geometry)」出力を、もう一つ別の「メッシュをポイントに (Mesh to Points)」ノードの「メッシュ (Mesh)」入力に接続します。
    • さらにその後に、もう一つ別の「ポイントにインスタンス (Instance on Points)」ノードを追加します。
    • 新しい「キューブ (Cube)」ノードを追加し、サイズを「0.05」程度に設定して、これを小立方体として新しい「ポイントにインスタンス」ノードの「インスタンス」入力に接続します。
    • この新しい「ポイントにインスタンス (Instance on Points)」ノードの「ジオメトリー (Geometry)」出力を、大・中立方体を結合している「ジオメトリーを結合 (Join Geometry)」ノードの新しい入力に接続します。

👉 「なるほど!」ポイント:ジオメトリーを結合」ノードは、複数のジオメトリーを一つのオブジェクトとしてレンダリングするために不可欠です。この階層化によって、大立方体、その頂点にある中立方体、そしてその中立方体の頂点にある小立方体という、複雑な構造を持つアニメーションを作成できるようになります。


D. インスタンスのスケールと立方体の丸み付け

インスタンスのサイズを個別に調整し、さらに立方体を丸くしてより洗練された見た目にします。

  1. インスタンスのスケールを調整する:
    • 小立方体をインスタンス化している「ポイントにインスタンス (Instance on Points)」ノードの直後に、Shift + A > 「インスタンス (Instances)」>「インスタンスをスケール (Scale Instances)」ノードを追加します。
    • このノードの「スケール (Scale)」値を調整することで、各インスタンスを個々の原点を基準に拡大縮小できます。ここでは「0.5」程度に設定し、少し小さくします。
  2. 立方体に丸みを持たせる:
    • 各階層の立方体を丸くするために、「キューブ (Cube)」ノードの直後に以下のノードを追加します。
      • Shift + A > 「メッシュ (Mesh)」>「メッシュを細分化 (Subdivide Mesh)」ノードを追加します。
      • Shift + A > 「メッシュ (Mesh)」>「サブディビジョンサーフェス (Subdivision Surface)」ノードを追加します。
      • Shift + A > 「シェーディング (Shading)」>「スムーズシェード設定 (Set Shade Smooth)」ノードを追加します。
    • これらのノードを大・中・小の各立方体の「キューブ」ノードの出力と、「メッシュをポイントに」ノードまたは「ポイントにインスタンス」ノードの入力の間に適切に配置します。
    • サブディビジョンサーフェス (Subdivision Surface)」ノードの「レベル (Levels)」を調整することで、丸みの度合いを制御できます。
    • インスタンスにこれらの丸み付けを適用するためには、「ポイントにインスタンス (Instance on Points)」ノードの直後に「インスタンス実体化 (Realize Instances)」ノードを挟む必要があります。これにより、インスタンスが実際のジオメトリーに変換され、その後のモディファイア(サブディビジョンサーフェスなど)やマテリアルの影響を受けるようになります。

👉 「なるほど!」ポイント:インスタンスをスケール」ノードは、インスタンス全体ではなく、個々のインスタンスの大きさを調整したい場合に非常に便利です。「サブディビジョンサーフェス」と「スムーズシェード設定」の組み合わせは、角ばったオブジェクトを滑らかに見せる基本的なテクニックです。特に「インスタンス実体化」ノードは、インスタンスに後続のモディファイアやマテリアルを適用する上で重要な役割を果たします。


E. マテリアルの設定

大・中・小の立方体にそれぞれ異なるマテリアルを設定し、視覚的に区別できるようにします。

  1. 新しいマテリアルを作成する:
    • プロパティエディターの「マテリアルプロパティ (Material Properties)」(赤い玉のアイコン)タブを開きます。
    • 新規 (New)」ボタンをクリックして新しいマテリアルを作成し、名前を「大立方体マテリアル」とします。
    • 同様に、「中立方体マテリアル」「小立方体マテリアル」を作成し、それぞれ異なる色(例: 青、緑、赤など)を設定しておきます。
  2. ジオメトリーノードでマテリアルを割り当てる:
    • ジオメトリーノードエディターに戻ります。
    • Shift + A > 「マテリアル (Material)」>「マテリアル設定 (Set Material)」ノードを追加します。
    • このノードを、大・中・小それぞれの立方体に対応するジオメトリーの出力(「ジオメトリーをトランスフォーム」の後、または「ポイントにインスタンス」のインスタンス実体化の後など)に接続します。
    • 各「マテリアル設定 (Set Material)」ノードの「マテリアル (Material)」ドロップダウンメニューから、対応するマテリアルを選択します。

👉 「なるほど!」ポイント:マテリアル設定」ノードは、ジオメトリーノード内で生成されたオブジェクトにマテリアルを適用するために使用します。これにより、オブジェクトの見た目を自由にカスタマイズできるようになります。


F. 回転アニメーションの作成

大・中・小の立方体にそれぞれ異なる回転アニメーションを設定し、ダイナミックな動きを作り出します。

  1. 回転アニメーションの基本設定(トランスフォームジオメトリー):
    • 各階層の立方体(大・中・小)に対して、Shift + A > 「ジオメトリー (Geometry)」>「ジオメトリーをトランスフォーム (Transform Geometry)」ノードを追加します。
    • このノードを、回転させたいジオメトリーの直後に配置します。例えば、大立方体全体を回転させたい場合は、大立方体の「マテリアル設定」ノードの後に配置します。
  2. プロパティパネルから回転を制御できるようにする:
    • 「グループ入力 (Group Input)」ノードに新しい入力ソケットを追加し、ジオメトリーノードツリーの外側(モディファイアープロパティパネル)から回転を制御できるようにします。
    • ジオメトリーをトランスフォーム (Transform Geometry)」ノードの「回転 (Rotation)」入力を、「グループ入力 (Group Input)」ノードの新しいソケットに接続します。
    • Shift + A > 「ユーティリティ (Utilities)」>「XYZを結合 (Combine XYZ)」ノードを追加し、「グループ入力」と「ジオメトリーをトランスフォーム」の間に配置します。これにより、X, Y, Z軸の回転を個別に制御できます。
    • この設定を、大・中・小の各立方体に対して繰り返します。
  3. ドライバー機能で簡易的な回転アニメーションを設定する:
    • プロパティエディターの「モディファイアープロパティ (Modifier Properties)」タブで、ジオメトリーノードモディファイアの設定パネルに表示された各回転パラメーター(X, Y, Z)の入力欄を右クリックします。
    • ドライバーを追加 (Add Driver)」>「単一プロパティ (Single Property)」を選択します。
    • ドライバーエディター(またはグラフエディターのドライバーモード)で、**タイプ (Type)**を「スクリプト式 (Scripted Expression)」に設定し、**式 (Expression)**に「#frame * 0.005」などの値を入力します。
    • これにより、アニメーションのフレームが進行するにつれて各立方体が自動的に回転するようになります。値の大小で回転速度を調整できます。

👉 「なるほど!」ポイント:ジオメトリーをトランスフォーム」ノードは、オブジェクトの位置、回転、スケールを制御する最も基本的なノードです。特に「ドライバー」機能は、手動でキーフレームを打つことなく、数式に基づいてアニメーションを自動生成できるため、複雑なアニメーションを効率的に作成するのに非常に役立ちます。


G. ライティングと最終調整

最後に、シーンのライティングを設定し、アニメーションをレンダリングして完成させます。

  1. HDRI画像でライティングを設定する:
    • 画面上部のワークスペースタブから「シェーディング (Shading)」ワークスペースに切り替えます。
    • 3Dビューポートのレンダープレビューモードで確認しながら、HDRI画像を追加してリアルな環境光をシミュレートします。
    • シェーダーエディター (Shader Editor)」で、「ワールド (World)」タブに切り替えます。
    • Shift + A > 「テクスチャ (Texture)」>「環境テクスチャ (Environment Texture)」ノードを追加します。
    • 開く (Open)」ボタンをクリックして、お好みのHDRI画像ファイルを選択します。(HDRI画像は、Poly Havenなどのサイトから無料でダウンロードできます。)
    • 環境テクスチャ (Environment Texture)」ノードの「カラー (Color)」出力を、「背景 (Background)」ノードの「カラー (Color)」入力に接続します。
    • 背景 (Background)」ノードの「強さ (Strength)」を調整して、全体の明るさを制御します。
  2. 最終レンダー設定:
    • プロパティエディターの「出力プロパティ (Output Properties)」(プリンターのアイコン)で以下の設定を行います。
      • 解像度 (Resolution)」: 例: 1920x1080 (Full HD)
      • フレーム範囲 (Frame Range)」: アニメーションの開始フレームと終了フレームを設定
      • 出力 (Output)」パス: レンダリングされた動画の保存先を指定
      • ファイル形式 (File Format)」: 例: FFmpegビデオ (FFmpeg Video)
      • エンコーディング (Encoding)」セクション:
        • コンテナ (Container)」: MPEG-4
        • ビデオコーデック (Video Codec)」: H.264 (またはお好みのコーデック)
        • 品質 (Quality)」: 高画質 (High Quality)
    • 設定が完了したら、「レンダー (Render)」メニュー>「アニメーションをレンダー (Render Animation)」を選択して、動画をエクスポートします。

まとめ:Blenderジオメトリーノードで、創造性を無限に広げよう!

お疲れ様でした!これで、Blenderジオメトリーノードを使った、回転する立方体のアニメーションが完成しました。

今回は、特に以下の基本的ながら強力なテクニックを学びましたね!

  • メッシュからポイントへの変換とインスタンス化: 複雑なオブジェクトを効率的に複製し配置する方法。
  • ジオメトリーの結合と階層化: 複数のオブジェクトを構造的に管理する方法。
  • インスタンスのスケール調整: 個々のインスタンスのサイズを制御。
  • サブディビジョンサーフェスとスムーズシェード設定: オブジェクトの見た目を滑らかにする。
  • マテリアル設定: オブジェクトに色や質感を付与。
  • トランスフォームジオメトリーとドライバー: オブジェクトの動きを制御し、自動アニメーションを生成。
  • HDRIライティング: リアルな環境光でシーンを彩る。

この作例は、Blenderジオメトリーノードの基本と応用が詰まっており、インスタンスを使った複雑な構造のアニメーションを作成するための素晴らしい基礎となります。ここから、ぜひあなた自身のアイデアで、様々なノードや効果を試して、Blenderの奥深い世界を楽しんでみてください