Blenderで円を時計回りに出すワイプアニメーションを作る方法【シェーダーノード編】

blender

はじめに

Blenderで「円が時計回りに広がっていくようなワイプアニメーション」を作りたい場合、実はシェーダーノードだけで表現できます。
この方法を使えば、マスクや動画編集を使わずに、マテリアルだけで円が回転しながら出てくる演出が可能です。
この記事では、ベクトル演算や数式(Math)ノードなどを組み合わせて、扇形マスクを作る手順を紹介します。


準備:オブジェクトとマテリアル

  1. 円(Circle)を追加します。
  2. 編集モードから、円の全ての点を選択した状態でFキーを押して面を作ります。
    面を作ったらオブジェクトモードに戻します。
  3. シェーダーエディター」を開き、新しいマテリアルを追加します。
  4. プリンシプル BSDFマテリアル出力は、使用するので消さずに残します。ここにノードを追加して「扇形マスク」を作成していきます。

ステップ1:座標を準備

まず、オブジェクト上で位置情報を扱えるようにします。
ノードは Shift + A で追加できます。

  1. テクスチャ座標 ノードを追加します。
  2. ベクトル演算 ノードを追加します。
  3. 演算タイプを 「減算」 に変更します。このノードで円の中心位置を調整します。
  4. テクスチャ座標ノードの「生成」を、ベクトル演算ノードの「ベクトル」 に接続します。
  5. ベクトル演算ノードのもう一方の入力(ベクトル) に中心位置を指定します。
     円を標準サイズで使用している場合は、
     X = 0.5、Y = 0.5、ZはそのままでOKです。

この設定により、オブジェクト上の「(0.5, 0.5)」を円の中心として扱えるようになります。
値を変えれば、円の中心を自由にずらせます。


ステップ2:角度を求める

次に、各ピクセルが中心から見てどの角度にあるかを計算します。
ここで、扇形の範囲を作るための基本となる「角度マップ」を作ります。

  1. XYZ分離 ノードを追加します。
  2. ベクトル演算ノードの「ベクトル」を、XYZ分離 ノードの「ベクトル」と接続します。
    これで「X」と「Y」の値をそれぞれ個別に取り出せます。
  3. 数式(Math)ノード を追加します。
  4. 数式タイプを「アークタンジェント2」に変更します。
  5. XYZ分離 ノードを、数式ノードに接続します。
    「X」→「値1」(上)
    「Y」→「値2」(下)
    このノードは、各点の角度をラジアン(-π~+π)で出力します。
  6. 範囲マッピング ( Map Range)ノード を追加します。
  7. 数式ノードの「値」を、範囲マッピングノードの「値」と接続します。
  8. 範囲マッピングノードの設定値を以下の数値に変更します。

 設定例:
 - 入力最小値:-3.14159
 - 入力最大値:3.14159
 - 出力最小値:0
 - 出力最大値:1

これで角度が「0~1」の範囲に正規化され、
後で角度範囲を自由に制御できるようになります。


ステップ3:角度で表示範囲をコントロール

次に、先ほど求めた「角度(0~1に正規化された値)」を使って、
どの範囲を表示するかを決めます。

  1. 数式(Math)ノード を追加します。
  2. 数式タイプを「小さい 」に変更します。
     このノードは、「入力Aが入力Bより小さい場合に1、それ以外は0」を出力します。
     つまり、指定した角度までを白(表示)
     それ以外を黒(非表示) にすることができます。
  3. 数式「小さい」ノード に「範囲マッピング(Map Range)」の出力を接続します。

ステップ4:結果をマテリアルに反映

最後に、この数式「小さい」ノードの出力を
プリンシプルBSDFアルファ入力 に接続します。

レンダーエンジンCyclesの場合は、この設定でできます。

EEVEEの場合は、マテリアルのブレンドモードをアルファクリップにする必要があります。


アニメーション設定

数式「小さい」ノードしきい値 の値をアニメーションキーで動かすことで、
円が時計回りにワイプ表示されるアニメーションが作れます。

※レンダービューでないと確認できません。


まとめ

この方法では、

  • 画像やマスクを使わず
  • ノード(6個追加)だけで
  • 円のワイプアニメーションを制御

が可能です。
シェーダーだけで完結するため、マテリアルを他のオブジェクトに流用したり、合成で使うことも簡単です。
時計回りの円表示やタイマー表現などにも応用できるので、ぜひ試してみてください。

タイトルとURLをコピーしました