【Blender5.0】Geometry Nodes(ジオメトリノード)の回転系ノードについて解説

blender
記事内に広告が含まれています。

BlenderのGeometry Nodesにおける回転系ノードについて解説します。回転は3Dモデリングやアニメーションにおいて非常に重要な操作であり、Geometry Nodesを使用すると、ノードベースで簡単に回転を制御することができます。

具体的には、以下のような機能を持つノードを紹介します:

  • インスタンスを回転するノード
  • ベクトルを回転するノード
  • 回転を追加できるノード
  • 別の回転形式に変換するノード
  • 各回転形式のまとめ
  • クォータニオン(複雑な回転をスムーズに扱える形式)の簡単な説明

これらを機能別に紹介し、Blenderにある回転ノードの説明を網羅しています。
Geometry Nodes(ジオメトリノード)での回転に関する基本的な理解と、それぞれの違い、どのようなときにどのノードを使えばいいか分かるようになることを目指します。

この記事は、BlenderのGeometry Nodesにおける回転系ノードについて詳しく知りたい初級者~中級者の記事です。

難易度 2.5

※Blender4.3から5.0になり記事を修正・追記しています。

スポンサーリンク
  1. Blenderにある回転系のノード
  2. instanceを回転させる
    1. Rotate Instances(インスタンス回転)ノード
      1. 入力
  3. 向きを制御する
    1. Align Rotation to Vector(回転をベクトルに整列)ノード
      1. 入力(Inputs)
      2. 連結して複雑なコントロールもできる
  4. 2軸を設定して回転
    1. Axes to Rotation(二軸の回転化)ノード
      1. 入力(Inputs)
      2. ポイント
  5. 追加で回転させる
    1. Rotate Rotation(回転を回転)ノード
      1. 入力(Inputs)
  6. 軸を決めて回転/回転から軸と角度に変換
    1. Axis Angle to Rotation(軸角度の回転化) ノード
      1. 入力(Inputs)
    2. Rotation to Axis Angle(回転の軸角度化) ノード
  7. 逆回転させる/回転を元に戻す
    1. Invert Rotation(回転反転)ノードとは
  8. 回転を補間する
    1. Mix Rotation
      1. 入力(Input)
  9. 軸のベクトルを回転させる
    1. Rotate Vector (ベクトルを回転)ノード
      1. 入力(Input)
  10. 主に位置ベクトルを回すノード
    1. Vector Rotate(ベクトル回転)ノード
    2. 入力(Input)
      1. 他の回転ノードとの違い
  11. ランダムな角度を生成する
    1. Random Rotation(ランダム回転)ノード
      1. 単一のランダム値を生成する
  12. 回転とオイラー角の変換
    1. Rotation to Euler(回転のオイラー化)ノード
    2. Euler to Rotation(オイラーの回転化)ノード
  13. 回転値とクォータニオン形式を変換する
    1. Rotation to Quaternion (回転のクォータニオン化)ノード
    2. Quaternion to Rotation(クォータニオンの回転化)ノード
    3. クォータニオンって何
      1. 何のために使うの?
      2. 補足(混乱しやすい点)
  14. 出力の違い
  15. おまけ
    1. 角度からQuaternionに変換する式

Blenderにある回転系のノード

現在BlenderのGeometry Nodes回転系ノードは以下のものがあります。(リンクはBlender5.0のマニュアルに飛びます)

Instances Nodes
Rotate Instances

Utilities Nodes

Blender4.3時点でのもの

回転運動をさせるようなものを集めました。フィールドなどの回転情報などは扱いません。

Align Euler to VectorRotate EulerノードはDeprecatedと注意が出ており、非推奨です。5.0でも一応ノードはありました。)

スポンサーリンク

instanceを回転させる

Rotate Instances(インスタンス回転)ノード

Rotate Instancesノードはインスタンスを回転させることができます。どこを中心に、どの軸で回すかも指定できるのでアニメーションなどでよく使われます。

入力

  • Rotation:どれだけ回すか(オイラー回転)
  • Pivot Point:どこを中心に回すか
  • Local Space
    • ON → 各インスタンス自身の軸で回転・その場でインスタンスごとに回転する
    • OFF → シーンの座標軸で回転・インスタンス全体が回転するように見える
スポンサーリンク

向きを制御する

Align Rotation to Vector(回転をベクトルに整列)ノード

ある回転(向き)を、指定した方向ベクトルに向けて回すノードです。
「このオブジェクト(やポイント)がどの方向を向くべきか」をベクトルで指定し、現在の回転をそこに向けます。

インスタンスを回転させるのにもよく使われています。

入力(Inputs)

プロパティ(Properties)
Axis(軸)X Y Z
どの軸を、そのベクトルに向けるかローカル軸を指定

Pivot(ピボット)
どの軸を中心に回転するか
Auto(自動)…自動で最適な回転を選ぶ・回転量が最小になるように調整
X / Y / Z…指定したローカル軸だけで回転

  • Rotation(回転):元になるEuler回転(XYZ角度)
    • 方向ベクトル(Normalなど)をつなぐ入力ではない
  • Factor(係数)どれくらいベクトルの方向に合わせるか
    • 0 → 何もしない(元の回転のまま)
    • 1 → 完全にベクトル方向を向く
  • Vector(ベクトル)向かせたい方向
    • 例:Normal → 面の法線方向を向く
    • 例:(0, 0, 1) → 上方向を向く
    • 重要なポイント:このベクトルは回転ではなく「方向」
    • すべて 0,0,0 の場合→ そのポイントは回転しない

連結して複雑なコントロールもできる

Align Rotation to VectorRotationソケットで連結して複数つなげることもできます。

左図はまずCurve Tangentの方向にZ軸を揃え、次にNormal方向にX軸を揃えている図です。

スポンサーリンク

2軸を設定して回転

Axes to Rotation(二軸の回転化)ノード

X軸を上向きに、Y軸をX軸方向に回転させています。

2つの軸方向から回転(Rotation)を作成するノードです。
指定した方向に、オブジェクトの軸を向けるために使います。

入力(Inputs)

プロパティ(設定)X Y Z
Primary Axis(上)…オブジェクトのどの軸(X / Y / Z)を、Primary Axis の方向に合わせるかを指定します。

Secondary Axis(下)…できるだけ Secondary Axis の方向に近づくように合わせる軸を指定します。完全一致ではなく、「可能な範囲で合わせる」軸です。

  • Primary Axis(一次方向)回転の基準となるメインの向きです。
    • 指定した軸が、この方向にぴったり一致するように回転が作られます。
  • Secondary Axis(二次方向)回転のひねり(ロール)を決めるための補助方向です。
    • 理想的には、Primary Axis と直交する方向を指定します。
    • ※Primary Axis だけだと「どの向きにひねるか」が決まらないため、それを補うために使われます。

ポイント

この2つの方向にはメッシュやカーブの「法線(Normal)」と「接線(Tangent)」を使うこともできます。

Align Rotation to Vector が「1軸合わせ」なのに対し、
Axes to Rotation は「2軸を同時に合わせて姿勢を決める」ノードで便利になっています。

スポンサーリンク

追加で回転させる

Rotate Rotation(回転を回転)ノード

すでにある回転に、さらに回転を足すノードです。回転アニメーションするときに便利です。

入力(Inputs)

プロパティ(Properties)
Space(スペース)Global Local どの座標系の軸で回すか

  • Global(グローバル)…ワールド座標の X / Y / Z 軸を基準に回転
  • Local(ローカル)…オブジェクト自身の軸を基準に回転
  • Rotation(回転)元になる回転(基準の姿勢)
    • Euler回転や Rotation 型で、「今こう向いている」という状態
  • Rotate By(回転量)追加で回す回転
    • どれだけ・どの軸で回すかRotation に対して「加算」される回転
    • アニメーションや「ひねりを足す」用途に向く
スポンサーリンク

軸を決めて回転/回転から軸と角度に変換

Axis Angle to Rotation(軸角度の回転化) ノード

「1本の軸のまわりに、何度回すか」
という指定から、Blender内部で使える回転(Rotation)を作るノード
です。

入力(Inputs)

  • Axis(軸): 回転の軸を決める
    • 例:(0,0,1) → Z軸まわり
    • 例:Normal → 面の法線まわり
  • Angle(角度)その軸のまわりに、何度回すか

左図では(0,0,1)のZ軸まわりに45度回転させています。

Rotation to Axis Angle(回転の軸角度化) ノード

Rotation出力から、軸と角度に変換して出力することができます。

スポンサーリンク

逆回転させる/回転を元に戻す

Invert Rotation(回転反転)ノードとは

入力された回転を打ち消す回転を作るノードです。

回転は、角度を-(マイナス)にして逆方向に回転させるだけでは、
一般には元の向きに戻りません。
(特に Euler 回転や複数軸の回転では一致しません)

元の向きに正しく戻すには、
Invert Rotation ノードで回転の逆変換(逆回転)を作り、
それを適用する必要があります。

スポンサーリンク

回転を補間する

Mix Rotation

MixノードのRotationモードです。

回転の中間状態を作るノード

入力(Input)

  • 入力:Rotation A / Rotation B
  • Factor:0~1の間でA~Bの回転を補間する

Mix ノードの Rotation モードでは、A と B に入力した 2つの回転の間を補間できます。

Factor を 0〜1 で変化させることで、回転 A から回転 B へ滑らかに遷移させることができます。

スポンサーリンク

軸のベクトルを回転させる

Rotate Vector (ベクトルを回転)ノード

Rotate Vector ノードは、指定した回転を使って、ベクトルの向きを回転させるノードです。
位置を動かすノードではなく、方向・向きだけを回転させるのがポイントです。

入力(Input)

  • Vector(ベクトル):回転させたいベクトル・軸
    • 方向ベクトル(Normal、Tangent など)
    • 軸方向(X=1,0,0 など)
  • Rotation(回転):ベクトルに適用する回転です。

ポイント(混乱しやすい所)
❌ これは「回転させるノード」ではない
✅ 「ベクトル」を回すノード
Normal を回す・方向を回す・軸を回す

Rotate系ノードの違い
Rotate Instances→ 物体を回す
Rotate Rotation→ 回転を回す
Rotate Vector→ 向きを回す

スポンサーリンク

主に位置ベクトルを回すノード

Vector Rotate(ベクトル回転)ノード

元はまっすぐの線だったが、各ポイントをベクトルとして、中心(0,0,0)で回転させてうずまきにしている

指定した中心点(ピボット)を基準にして、ベクトルを回転させるノードです。
これは何かを回転したくてその軸を回転するノードではなく、純粋なベクトルを回転する計算ノードです。

入力(Input)

プロパティ(Type)

  • X / Y / Z Axis…指定した軸(X,Y,Z)を中心に回転します。
    • 角度は Angle 入力
    • Center を基準に回転
  • Axis Angle任意の軸を中心に回転します。
    • 軸 → Axis
    • 角度 → Angle
  • Euler…Euler回転として回します。
    • 中心 → Center
    • 回転量 → Rotation(XYZ)

Invert(反転)…回転方向を逆にします。

  • Vector(ベクトル):回転させたいベクトルです。
    • 位置ベクトル/方向ベクトル/任意の XYZ 値
  • Center(中心):回転の中心(ピボット)となるベクトルです。
    • 原点 (0,0,0) → 原点回転
    • 任意の位置 → その点を中心に回転
  • Axis(座標軸):回転の軸となるベクトルです。
    • Axis Angle モードで使われます
  • Angle(角度):回転量(ラジアン)です。
  • Rotation(回転):Type が Euler のときに使われます。

他の回転ノードとの違い

Vector Rotate ノードは Rotate Vector ノードよりも指定できるオプションが多く、各ポイントの位置ベクトルを回転させる計算を行うのに向いています。

回転データやインスタンスを回すノードではなく、ベクトル演算として位置を処理するため、結果としてオブジェクトを変形させる用途で使われることが多いノードです。

スポンサーリンク

ランダムな角度を生成する

Random Rotation(ランダム回転)ノード

Random Rotationノードは、指定した角度範囲の中でランダムな回転値を生成します。
インスタンス、パーティクル、ジオメトリの要素の向きをランダム化するために使用できます。

  • Min Zenith(最小ゼニス角)
    • 垂直方向(上下方向)の回転角度の最小値。ランダム回転がこの値以上になります。
  • Max Zenith(最大ゼニス角)
    • 垂直方向の最大回転角度。ランダム回転がこの値以下になります。

上下方向にだけ制限が効きますが、横方向はランダムに回転するため、それをオイラー角表示で見ると、設定した以上に回転してるように見えることがあります。完全に制御したい場合は軸ごとにRandom Valueでだした方が制御しやすいです

単一のランダム値を生成する

デフォルトでは「各要素ごとに異なるランダム回転」が生成されます(ID が要素ごとに違うため)。全ジオメトリで1つだけランダムな回転を使いたい場合は、ID 入力に 一定の値(例:Integer ノードで “1”など) をつないでください。

スポンサーリンク

回転とオイラー角の変換

Rotation to Euler(回転のオイラー化)ノード

Blender内部で使われている「回転データ」を、人が扱いやすいオイラー角(XYZ角度)に変換するノードです。

Euler to Rotation(オイラーの回転化)ノード

XYZ 回転(Euler)で与えた回転量を、ジオメトリノードで安全に使える Rotation に変換するためのノードです。

この二つは Rotation と Euler の表現を相互に変換するためのノードです。

Rotation ノードも Euler も見た目は同じように角度を入力できますが、
内部で扱われる回転の表現が異なります。

Rotation は内部でクォータニオンとして回転を保持・計算するため、
安定していますが、 Euler は XYZ の角度指定による回転表現のため、
回転の指定や合成の仕方によってはジンバルロックが発生する場合があります。

変換ノードは用意されていますが、特別な理由がなければ Rotation をそのまま使うのが安全です。

ジンバルロックとは
3D回転(オイラー角)で、2つの回転軸が同じ方向を向いてしまい、自由に回転できなくなる現象です。

スポンサーリンク

回転値とクォータニオン形式を変換する

Rotation to Quaternion (回転のクォータニオン化)ノード

通常の回転(Rotation)を、クォータニオン形式に変換するノードです。回転の表現方法だけが変わります。

入力

  • Rotation(回転):Blenderで使われる標準の回転値です。

出力

  • W / X / Y / Z:クォータニオン(四元数)を構成する4つの値です。
    • W:回転のスカラー成分
    • X / Y / Z:回転軸と角度を表す成分
    • これら4つを合わせて、1つの回転を表します。

Quaternion to Rotation(クォータニオンの回転化)ノード

Rotation to Quaternionノードの入出力が逆になっています。

クォータニオンって何

クォータニオンは、3D空間の回転を4つの値で表す回転表現です。
Euler回転のような「回転順序」や「ジンバルロック」の問題が起きにくく、安定して回転を扱えるため、CGでよく使われています。

何のために使うの?

  • 回転を数値として扱いたいとき
  • 自前で回転演算をしたいとき
  • Quaternion演算ノードと組み合わせるとき
  • ※ 普段のジオメトリノードでは直接使う場面は多くありません

補足(混乱しやすい点)

Blender内部では:
Rotation ソケット → 内部表現はクォータニオン、見た目はオイラー角みたいにして扱いやすくしているだけです。
なのでこのノードは、「内部表現を明示的に数値として取り出す」ノードだと思うと分かりやすいです。

スポンサーリンク

出力の違い

回転系ノードの出力には

  • Rotation
  • Vector
  • Axis
  • Euler
  • Quaternion

があります

データの種類役割
Rotation (回転情報)回転の向きや量を指定する。
CombineXYZなどで入力するときはラジアン値を入れる。
(180°, 0, 0)(オイラー角の場合)
Vector (ベクトル)回転後の位置を表す。(1, 0, 0)(X軸方向の単位ベクトル)
Axis (回転軸)回転の軸を表す単位ベクトル。(0, 1, 0)(Y軸回転の軸)
Euler (オイラー角)XYZの3つの角度で回転を表す。ジンバルロックの影響を受ける(90°, 45°, 0°)
Quaternion (クォータニオン)回転を4次元のデータとして表す。回転の累積計算がスムーズで、ジンバルロックの影響を受けない。(0.707, 0.707, 0, 0)(X軸90°回転)
スポンサーリンク

おまけ

角度からQuaternionに変換する式

クォータニオンの基本構造

クォータニオン (w,x,y,z) は、回転軸と回転角を次のように表現します:

w=cos(θ/2​)
(x,y,z)=sin⁡(θ/2)⋅(Vx, Vy, Vz)

  • θ は回転角(ラジアン)
  • (Vx,Vy,Vz)は回転軸の単位ベクトル

例えばX軸周りに180°回転させたいときは、

w=cos(π/2​)=0
x=sin⁡(π/2)⋅1=1
y=sin⁡(π/2)⋅0=0
z=sin⁡(π/2)⋅0=0
※π=pi

なので(0,1,0,0)を入れます。