| 使用ソフトウェア | バージョン | 備考 | 
|---|---|---|
| Blender | 3.3.1 | 
2022/12/13:後編のリンクを追加
日本語:オイラーをベクトルに整列
難しいので例を上げて解説する。
例えば次のように1と2のメッシュがある。
分かりやすくするため、1は矢印が各ローカル軸と同じ方向に向かっているメッシュを作成した。
このとき1のZ軸を2の青の玉の位置ベクトルと同じ方向に整列したい。
こういった場合にAlign Euler to Vectorノードを使うと
このようにZ軸である青矢印を青い球の方向へ向けることができる。
動画で確認すると次のような回転ができる(後ほど解説)
この場合はY軸(緑)に変更してある
Utilities(ユーティリティ) => Align Euler to Vector(オイラーをベクトルに整列)
このノードは理解するのががちょっと面倒。
にも関わらず非常によく使うノードでもあるため、より良い作品を作るためにはぜひとも覚えておきたいノードの一つである。
というわけでこの記事では細かく手順を追って可能な限りわかりやすい記事を目指す。
このノードはRotationとVectorの2つの入力によって複雑に結果が変わってくる。
Rotationは何も入力せず使うことも多いためこの記事ではVector入力のみ使用する。
基本的にRotationには何も入力しないままで良い。
Rotationに関しては次の記事を参照。
Align Euler to Vector(オイラーをベクトルに整列)ノードを解説:後編【Blender - Geometry Nodes】 | 謎の技術研究部
まず初めに確認しておきたいのが出力がRotation(回転)であること。
なので次のように
TransformノードやInstance on PointsノードのRotationソケットに繋いで使う事が多い。
Rotationのソケットから出力されているデータは度数ではなくラジアンという単位で出力されている。
これはどういうことかというと
Rotationの直接入力は度数で良いのだが、ValueやCombineノードから入力する場合はラジアンで入力しなければならない。
つまりこの項で言いたいことは基本的にRotationソケット同士を結びましょうということだ。
Rotationの出力をVectorの入力などに繋いで「思ったようにならない」というケースがよくあるので覚えておく。
ラジアンについては詳しくは解説しないが「180度 = πラジアン」ということだけ知っていればなんとかなる。
つまり3.1415...をRotationに入力すると180度回転になる。
上のようなノードで90と入れても90度にはならないことは覚えておこう。
Transformノードには使えるがSet Positionのようなノードには使えない。
どうしてもSet PositionでAlign Euler to Vectorを使いたい場合は次のノードで動作する。
Vector RotateのTypeをEulerに変更して使用している。
Positionの赤ノードも必須
前置きが長くなったが、今回は冒頭で示した作例を使って解説する。
次のようなノードになっている。
Align Euler to VectorをRotationから外すと次の状態
1は自作のノードグループ。実際はなんでも良い。
2は青球の座標を取得するためのノード。Relativeにしておくと1のジオメトリから相対座標が出る。
まずは一番上のXYZのボタンから確認する。
ここで選択した軸を、後に指定するベクトルに整列させるという意味だ。
これだけだとわからんのでイメージで考える。
分かりやすいのはゴムで引っ張られる軸とおぼえておくと楽だ。
上ではZが指定されているので、Z軸の矢印の先端にゴムが引っかかっており、この先端が引っ張られ次のようになる。
ということは、ここをYにしたらどうなるか。
Y軸の頭がひっぱられるので
こうなる。
覚えてしまえば簡単だ。
矢印のメッシュはBlenderの表示と同じく「青:Z軸」「緑:Y軸」「赤:X軸」と一致させてある。
この設定はローカル軸を指定している。ワールド軸ではない。
ただ、このあたりあまり深く考えると混乱するのでなんとなく理解してれば良い。
一番下のVectorには整列する目的のベクトルを入れる。
今回は青玉の座標を入れている。
つまり上のノードのまま青球を動かすと
Y軸(緑)の角度が変わった。
つまりこちら(Vectorソケット)がゴムを引っ張る側でイメージすれば良い。
基本的にこの2つさえ分かってしまえばイメージが簡単になると思う。
かわいいイラストはIMTよりあつさん作
念のため書いておくが、このノードはあくまで回転させるためだけのノードだ。
したがって上の例では「引っ張られる」と表現しているが、矢印の中心が移動したり、メッシュの伸縮が発生することはない。
回転して上の結果となっているだけだ。
日本語:ピボット
ここにPivotという項目がありデフォルトでAutoとなっているがXYZを切り替えることができる。
この設定を解説する。
ここにXYZ軸の設定があるため上のXYZ設定と混乱しないように注意。
少し難しいので具体例としてXに設定変更し、何が起こるのかを見ていく。
まずはPivot=Auto(これまでの例と同様)のままだと
このようにY軸が青玉に引っ張られて回転するのはこれまでで理解できたと思う。
この状態でPivotをXに変更してみる。
Y軸はコレまで通り青玉に引っ張られているが、X軸は初期の状態で固定された。
まだ完全に理解できないかもしれないので動画で確認する。
Pivot = Autoのまま青球を自由に移動すると次のようになる。
X軸(赤軸)は自由に動いている。
次の例でPivot = Xにして同じように動かしてみると
最初の例ではX軸は自由に動いているが、後者では完全に初期の位置で固定されているのがわかる。
つまりPivot = プロペラの軸 のように覚えておくと楽かと思う。
日本語:係数
0 ~ 1の間で全く回転してない状態とミックスできる。
0にすると完全に回転の効果がなくなる。
イメージが湧かない場合は球が引っ張っているゴムの強さだと考えると楽かもしれない。
今回はRotationのソケットを全く使用しないまま解説した。
Rotationを使うとより複雑にできるのだが、理解するのも難しくなる印象。
そもそもRotationはあまり頻繁に使うソケットではないので、ここまで理解できていれば十分とも言える。
