【Blender 3.3】数式ノードのいろんな使い方を紹介!

URLをコピーする
URLをコピーしました!

CGBoxの一部の記事にはアフィリエイト広告が含まれております。

こんにちは!

コチラの記事では、フリーの3DCGソフト「Blender」を使った作品製作に役立つ知識・ノウハウを紹介しています。

今回は、マテリアルノードやジオメトリーノード数式を使った編集操作を加えることができる、「数式ノード」について紹介します。

実際の作品製作に役立つ、数式ノードのいろんな活用方法を紹介していきたいと思います。

目次

数式ノードとは?

数式ノードとは、その名の通り「数式を使って計算を行うノード」です。

インプットした値に対して、関数や比較等を行って、値を出力します。

コチラのように、シェーダーエディターなどで「Shift+A」→「コンバーター」→「数式(Math)」を選択して追加します。

数式の種類

数式ノードでは、コチラのように非常に多くの数式の中から選択できるようになっています。

数式の一覧と説明はこんな感じです。

(チュートリアル動画では英語表記されているものが多いので、日本語と英語を併記しています。)

「Functions(関数)」「Comparison(比較)」「Rounding(丸め)」「Trigonometric(三角関数)」「Conversion(変換)」5つのグループに分けられます。

表の中で色を付けたものは、比較的よく使うものです(あとで紹介する使用例でもちょくちょく出てきます)。

数式ノードの一覧
グループ日本語名英語名説明
Functions
(関数)
加算Add2つの値の合計(足し算, +)
減算Subtract 2つの値の差(引き算, -)
乗算Multiply 2つの値の積(掛け算, ×)
除算Divide 2つの値の商(割り算, ÷)
積和算MultiplyAを掛けたあとにBを足す(AX+B)
累乗Add入力値をべき乗するX^A
LogPower Logarithm 入力値の, Aを底としたLogをとる(Log_A (X))
平方根Square Root入力値の平方根(√X)
逆平方根Inverse Square Root 入力値の平方根の逆数(1÷√X)
絶対数Absolute 絶対値(|X|)
指数Exponent入力値をネイピア数eのべき乗に(e^X)
Comparison
(比較)
最小 Minimum入力値の最小値を出力
最大 Maximum 入力値の最大値を出力
小さい Less Than 最初の値が2番目の値より小さい場合は1, それ以外は0を出力
大きい Greater Than 最初の値が2番目の値より大きい場合は1, それ以外は0を出力
符号 Sign 正の入力値は1、負の入力値は-1、0の入力には0を出力
比較 Compare 2つの入力値の差がε以下の場合、1を出力、それ以外は0を出力
Smooth Minimum Smooth Minimum Smooth Minimum(値の変化をなだらかにつないだときの最小値)
Smooth MaximumSmooth MaximumSmooth Maximum(値の変化をなだらかにつないだときの最大値)
Rounding
(丸め)
丸め Round 入力値を最も近い整数に丸める
Floor 入力値を最も近い整数に切り捨て
天井 Ceil 入力値を最も近い整数に切り上げ
切り捨て Truncate 入力値の小数点を切り捨て
小数部 Fraction 小数点以下を出力
剰余 Modulo 最初の値を2番目の値で割り算した余りを出力
Wrap Wrap 入力値と、その値より小さい Max の整数倍に最も近い値との絶対差に基づき、Min と Max 間の値を出力
スナップ Snap 入力値を、増分の値の最も近い整数倍に切り捨て
ピンポンPing-Pong入力値に基づいて、0と Scale の間で移動する値を出力
Trigonometric
(三角関数)
サイン Sine 入力値の正弦(サイン)を出力
コサイン Cosine 入力値の余弦(コサイン)を出力
タンジェント Tangent 入力値の正接(タンジェント)を出力
アークサイン Arcsine 入力値の逆正弦(アークサイン)を出力
アークコサイン Arccosine 入力値の逆余弦(アークコサイン)を出力
アークタンジェント Arctangent 入力値の逆正接(アークタンジェント)を出力
アークタンジェント2 Arctan2 最初の値を2番目の値で割った値の逆正接(アークタンジェント)を出力
双曲線サイン Hyperbolic Sine 入力値の双曲線正弦(sinh, (e^X-e^(-X))/2)を出力
双曲線コサイン Hyperbolic Cosine 入力値の双曲線余弦(cosh, (e^X+e^(-X))/2)を出力
双曲線タンジェントHyperbolic Tangent入力値の双曲線正接(tanh, sinh(X)÷cosh(X))を出力
Conversion
(変換)
ラジアンへTo Radiansラジアン角度を度に変換
度へTo Degrees度をラジアン角度に変換

数式ノードのそれぞれの数式の説明については、コチラの記事がわかりやすいので参考にしてみてください。

Wiki3(うぃきさん)
Math Node - Blender Cycles memo  ≡ ReferenceAdd > Converter > MathMath (数式) ノードは、入力された値に対して、選択された数学演算を行った結果を返します。Add と表示されているドロ...

上の表を見て、「いろんな数式があるのはわかったけど、具体的なイメージがわからない」という方も多いと思います。

コチラのように、平面メッシュにマテリアルを追加してコチラのようなノードを組むことで、それぞれの数式からどんなアウトプットが出るかを理解することができます。

  • 使用したノード
    • 入力>テクスチャ座標
    • ベクトル>マッピング
    • コンバーター>XYZ分離
    • コンバーター>数式
    • コンバーター>数式>「大きい」(Greater Than)

コチラのように、数式を変えることで表示される図形が変わり、上の表の説明が理解できるようになると思うので、試してみてください!

使い方

Blenderの数式ノードではさまざまなノード操作ができるようになりますが、例えば以下のようなことができます。

それぞれについて、以降のセクションで具体的な使用方法・使用例について紹介していきます!

  • マテリアルを作成する
  • マテリアル・コンポジットの色を調整する
  • ジオメトリーノードを操作する
  • 図形を描く

数式ノードを使ってマテリアルのクオリティをアップしよう!

数式ノードをマテリアルに使用することで、クオリティをアップすることができます。

具体例を紹介します。

傷・汚れを作る

数式ノードを使ってテクスチャを重ね合わせることで、リアルな金属の傷・汚れを作ることができます。

以下のように、シェーダーエディターで「テクスチャ」→「ノイズ」「コンバーター」→「数式」を追加し、「数式」は「乗算」に変更してください。

ノイズテクスチャは複製し、片方のスケールを3000、もう片方のスケールを700に設定します。

コチラのように、「乗算」で2つのノイズテクスチャを混ぜ合わせることができます。

さらに、「カラーランプ」の左側のコントローラーを右に持っていくと粗さのムラを調整できます。

金属マテリアルの作成方法について、詳しくはコチラの記事を参考にしてみてください。

CGbox
【Blender2.9】金属マテリアルのクオリティアップをしよう! | CGbox こんにちは! Blenderでの3DCG制作を勉強中のUEDAです。 Blenderを勉強して、アウトプットの場としてそれぞれの機能をまとめられればと思っています。参考にもなれば嬉しい...

フローリングのマテリアルの作り方

数式ノードを使って、コチラのようなリアルなフローリングのマテリアルを作ることができます。

マテリアルノードはコチラです。

オレンジ色で印をつけたのが数式ノードですが、非常に多く使われています。

コチラのように、数式ノードを組み合わせることで、フローリングらしい板の並び方を表現することができます。

上記のマテリアルノードの作成方法と、詳しい説明については、コチラのチュートリアル動画を参考にしてみてください。

マテリアル・コンポジットの色を調整する

数式ノードを使って、マテリアルやコンポジットの色を調整することができます。

具体的なやり方について紹介します。

マテリアルのRGBカラーを調整する

コチラのように、RGBを分離し、単一カラーチャンネルを数式ノードで調節したあとにRGB合成で合体させることで、色調を変化させることができます。

数式ノードを含めた、「RGBカラーを調整できるノード」についてコチラの記事でいろいろと紹介しているので、あわせて参考にしてみてください。

CGbox
【Blender3.1】RGBカラーを編集できるノード・使用例を紹介! | CGbox はじめに こんにちは! コチラの記事では、フリーの3DCGソフト「Blender」を使う上でヒントになりそうな情報を紹介しています。 今回は、マテリアルのRGB色情報を編集でき...

コンポジットでRGBカラーを調整する

レンダリング結果にさまざまな効果を加えることができる「コンポジット」でも、数式ノードを使ってレンダリング結果の色を調整することができます。

まずは、レンダリング後に「Compositing」のワークスペース「ノードを使用」にチェックを入れてコンポジットノードを表示させます。

コチラのように、「コンバーター」→「カラー分離」と「カラー合成」を追加して、R,G,B,アルファをそれぞれ接続します。

「コンバーター」→「数式」ノード赤チャンネルに追加して、数式を「乗算」に設定して、値を動かすと、コチラのように色が緑から赤に変わります。

Blenderの「コンポジット」の機能の基本的な使用方法については、コチラの記事で紹介しているので、あわせて参考にしてみてください。

CGbox
【Blender2.9】コンポジット:光の調整 〜初級編〜 | CGbox こんにちは! Blenderでの3DCG制作を勉強中のUEDAです。 Blenderを勉強して、アウトプットの場としてそれぞれの機能をまとめられればと思っています。参考にもなれば嬉しい...

ジオメトリーノードでの使い方の例

ノードを使ってオブジェクトの形状などを操作することができる「ジオメトリーノード」の機能でも、数式ノードが使えます。

ジオメトリーノードで数式ノードを使った例を紹介します。

数式ノードでジオメトリーノードをアニメーションさせる

数式ノードを使ったジオメトリーノードによって、コチラのようにランダムに押し出した面に球を発生させるようなアニメーションを作成することができます。

作成したジオメトリーノードはコチラです。

オレンジ色で示した数式ノードで、以下の操作を行っています。

  • 「サイン(Sine)」で、往復運動を表現
  • 「乗算(Multiply)」(3か所)で、押し出し量と球のスケールを表現

詳しい説明については、コチラの紹介記事と、記事から参照しているチュートリアル動画を参考にしてみてください。

CGbox
【チュートリアル紹介】初級的なジオメトリーノードの使い方動画が公開! | CGbox こんにちは! 今日はSurfaced Studioさんの「Substance Painter Blender WorkflowBlender Geometry Nodes For Absolute Beginners | Part 1/3」

チュートリアル動画は、初心者の方にも分かりやすいように丁寧に説明しているので、ジオメトリーノードを触ったことのない方でも十分に理解できると思います。

Blenderの「ジオメトリーノード」の基本的な使用方法については、コチラの記事でも紹介しているので、あわせて参考にしてみてください!

CGbox
【Blender2.9】ジオメトリーノードの使い方~基礎編~ | CGbox こんにちは! Blenderの使い方や機能、ノウハウについてまとめているUEDAです。 自分のためのアウトプットの意味合いもありますが、読んだ方の参考になれば嬉しいです。 今...

フレーム数とリンクしたタイマー

数式ノードを使って、コチラのようにフレーム数に合わせて時間を進めるタイマーを作ることができます。

作成したジオメトリーノードはコチラです。

オレンジ色で表示した数式ノードは、コチラのような役割をしています。

  • 「除算(Divide)」で、秒を60で割ることにより「分」を表現
  • 「切り捨て(Truncate)」で、秒の小数点以下を切り捨て
  • 「(Modulo)」で、60で割った余りを出力することでタイマーの「秒」を表現

また、上のノードの応用で、コチラのようにカウントダウンして時間になると文字列を表示するタイマーも作れます。

コチラが作成したノードです。

青枠で囲ったのが、さっき紹介したノードから追加した箇所になります。

追加したノードのうち、オレンジ色で表示した数式ノードは、コチラのような役割をしています。

  • 「減算(Subtract)」で、0から秒を引くことにより「カウントダウン」を表現
  • 「乗算(Multiply)」と「加算(Add)」で、「分」×60と「秒」を足し合わせることで残り秒数を表現

ノードの作成方法について、詳しくはコチラの紹介記事と、記事から参照しているチュートリアル動画を参考にしてみてください。

CGbox
【チュートリアル紹介】フレーム数とリンクしたタイマーの作成方法を学べる動画を紹介! | CGbox こんにちは! 今日はJoy Carlinoさんの「Countdown Timer with Geometry Nodes || Blender 3.2」を紹介していきます。 https://youtu.be/FcNWOPVAZsk チュート

数式ノードを使って図形を描いてみよう!

最後に、ちょっと変わった数式ノードの使い方として、図形を描く方法を紹介します!

実際の作品作りに使うかどうかはさておき、数式ノードの仕組みの理解に役立つので、試しに作ってみることをオススメします。

けっこう難しい数式が登場しますが、あまり気にせずにノードだけをまねすれば図形が描けるので、チャレンジしてみてください。

数式ノードを使って、コチラのような円を表現することができます。

コチラのWikipediaの記事にもあるように、XY座標上で円を表現する方程式「X^2+Y^2=1」を数式ノードで表現します。

あわせて読みたい

コチラのように「X^2+Y^2=1」を数式ノードで表現することで、先ほど示した円を描くことができます。

数式ノードを使った円の描き方について、詳しくはコチラの記事を参考にしてみてください。

日々のいろいろ
Blenderのシェーダー(マテリアルノード)で円を描く幾つかの方法 - 日々のいろいろ まえがき Blenderのマテリアルノードで円を描く幾つかの方法 その1 グラデーションテクスチャを球状にして描く方法 その2 ベクトル演算の長さを使う方法 その3 数式ノー...

ハート

数式ノードを使って、コチラのようなハートを表現することができます。

円の方程式と似ていますが、さらに複雑になった「X^2-(5/4Y-√|X|)^2=1」でハートの形状を表現することができます。

数式ノードで表現するとコチラのようになります。

Blenderの数式ノードを使ったハートの描き方について、詳しくはコチラのチュートリアル動画を参考にしてみてください。

カージオイド図形

カージオイド(円の外側を、別の円が接するように転がるときに描かれる曲線)も、Blenderの数式ノードで表現することができます。

「カージオイド」の方程式は「r=1+cos(nθ)」という極座標形式で表現されます。

コチラのように、数式ノードを使用してX,Yからrとθを計算することで、表現できます。

上の「乗算」ノードの、黄色で示されている値を1から順に大きくしてやることで、コチラのように花束のような図形を描くことができます。

「カージオイド」(Cardioid)の数学的な説明については、コチラの記事などを参考にしてみてください。

ナンスカ
見ても描いても楽しい!美しい数学の曲線たち |ナンスカ 普段、私たちが見ているこの世界。 ほんの少しだけ「数学」を知ってみると、意外な奥行きが見えてくるかもしれません。 今回は「美しい数学の曲線」を紹介します。

図形を描く方法のラストとして、コチラのように星を作る方法を紹介します。

「カージオイド」と同じ極座標形式で、「r=1/cos{(Acos(sin nθ)-2π)/5}」で星を描くことができます。

かなり数式ノードが入り組んでいますね。

nの値を大きくしてやることで、コチラのように星から出る光芒の数を増やすことができます。

上で紹介した「星の作り方」については、コチラのチュートリアル動画で紹介しているので参考にしてみてください。

まとめ

Blenderの数式ノードについて、さまざまな使用例を紹介してみましたが、いかがだったでしょうか?

コチラの記事で紹介したのは数式ノードの活用例のほんの一部ですが、ぜひプロシージャルマテリアルや、コンポジット、ジオメトリーノード等で参考にしていただければと思います。

最後に、今回のまとめです。

  • 数式ノードとは?:数式を使って計算を行うノード
    • 数式の種類は以下の5つのグループ
      • Functions(関数)加算、乗算、絶対値など
      • Comparison(比較)小さい、大きいなど
      • Rounding(丸め)切り捨て、天井など
      • Trigonometric(三角関数)サイン、コサインなど
      • Conversion(変換)ラジアンから度へ、など
  • 数式ノードを使ってマテリアルのクオリティをアップしよう!
    • 傷・汚れを作る:テクスチャを混ぜ合わせる
    • フローリングのマテリアルの作り方加算・乗算などを組み合わせて床板の配置を表現
  • マテリアル・コンポジットの色を調整する
    • マテリアルのRGBカラーを調整する:「RGB分離」「RGB合成」と組み合わせる
    • コンポジットでRGBカラーを調整する:「カラー分離」「カラー合成」と組み合わせる
  • ジオメトリーノードでの使い方の例
    • 数式ノードでジオメトリーノードをアニメーションさせる:「サイン」「乗算」などを使用
    • フレーム数とリンクしたタイマー「除算」「剰余」などを使用
  • 数式ノードを使って図形を描いてみよう!
    • 円:X^2+Y^2=1
    • ハートX^2-(5/4Y-√|X|)^2=1
    • カージオイド図形r=1+cos(nθ)
    • 星:r=1/cos{(Acos(sin nθ)-2π)/5}

この記事が気に入ったら
フォローしてね!

よかったらシェアしてね!
URLをコピーする
URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

CGBox編集部。CGに関する様々な記事を執筆しております。

目次
閉じる