【15分で】UV球をノードだけでモンスターボールに変えよう
前回のだんぼー君()作りではノード周りにほぼ触れなかったので、その補完も兼ねて今回はノードだけでモンスターボールを作ってみたいと思います。
構造が簡単なので初めてでも割とすぐできるんじゃないかなぁと
「そういって前回も30分じゃできなかったろ」って?
ナンノコトデショウ...
茶番は置いといて
そもそもノードって?
「オブジェクトに数値や色などの様々な情報を与えるもの」だと思ってください。これをベルトコンベアーのように繋いで入力と出力を繰り返すことで最終的に様々な質感を表現することができます。
選手紹介
まずは今回活躍してくれる選手たちの紹介
・プリンシプルbsdf
大抵の表現はこれ一つでなんとかしてくれる天下のディズニー発のエリート。今回もお世話になります。
詳しくはここでも見て
・カラーランプ
色や数値の調整から範囲の操作までなんでもござれ万能マン。個人的使用率1位のノード。
・RGBミックス
お絵かきソフトの合成モードのように色を合成できるノード。
・グラデーションテクスチャ
黒から白のグラデーション画像。今回の主役。
・テクスチャ座標
オブジェクトへのテクスチャの貼り方を決めるノード。詳しくはこれあたりで。
・マッピング
主にテクスチャ座標とテクスチャの間に挟み位置や向きなどの調整に使われる。
・バンプ
「白」〜「黒」の色情報を高さに変換するノード。メッシュを変形させずに凹凸を出すのに使う。ノーマルマップを使う際にも用いられる。
・反転
文字通り色の白さと黒さを反転するノード。
・数式
文字通り数値の計算をするノード。
下準備
Node Wranglerの有効化
作り始める前にまずノードを組む際にほぼ必須級の便利アドオンを有効化します。アドオンといってもblenderに標準で組み込まれているものなので面倒なことはする必要はありません。
「編集」>「プリファレンス」>「アドオン」の右上のタブに「node」と入力し、「Node Wrangler」の左のチェックボックスにチェックを入れ、タブを閉じます。
・Node Wrangler:ノードに関する様々なショートカットを追加してくれるアドオン。詳しくはここ
素材の準備
モンスターボールの元となるUV球を準備をしましょう。
画面上部のタブから「shading」に移動し、「1」で正面のビューに移動します。
デフォルトの立方体を消し、「Shift+A」>「メッシュ」からUV球を追加、右クリックからスムーズシェードを選択(お好みでサブディビジョンサーフェースも)。
・「スムーズシェード」:オブジェクトの表示の"見た目"を滑らかにするモード(見た目を滑らかにしているだけなので形は変わっていません)
フラットシェードを選択すると戻ります。
画面真ん中の「新規」から新しいマテリアルを生成し、名前を「モンスターボール」としておきます。
平面を新しく生成し、「R+x+90」で立たせ、少し右に移動し、先ほどの新規の左のタブから今作ったマテリアルを選択します。これをテクスチャの貼られ方を確認する用に使います。
手順
本題のモンスターボール作りの手順は次のようにいきます
赤白の2色に分ける
↓
真ん中に黒い帯を巻く
↓
正面に上から黒い円、その内側に白い円を乗せる
↓
白黒を高さに変え、凹凸をつける
↓
全部を混ぜて質感をつける
ではやっていきま〜
ベースカラー(ここから本編)
前置きが長くなりましたがモンスターボール作成に入ります。
まずはUV球の色を赤と白の二つに分けます。
・画面真ん中下側のシェーダーエディター内で「Shift+A」>「テクスチャ」>「グラデーションテクスチャ」でグラデーションテクスチャを追加
・グラデーションテクスチャの「カラー」をプリンシプルbsdfの「ベースカラー」に繋ぐ
・グラデーションテクスチャを選択し、「Ctrl +T」でテクスチャ座標とマッピングをつなぐ
・「Ctrl +T」→テクスチャを選択状態で押すとマッピングとテクスチャ座標を自動でつなぐ。Node Wranglerのショートカット。
・テクスチャ座標の出力を「生成」から「UV」に
・マッピングの「位置」の「X」を「0」→「1」
・マッピングの「回転」の「Z」を「0」→「90」
・「Shift+A」>「コンバーター」>「カラーランプ」でカラーランプを追加、グラデーションテクスチャとプリンシプルbsdfの間に挟み、右の「リニア」→「一定」に、右側のカーソルを真ん中に移動(もしくは「位置」に0.5と入力)
・「Shift+A」>「カラー」>「RGBミックス」を追加
・カラーランプの「カラー」とミックスの「係数」をつなぐ
・ミックスの「カラー」とプリンシプルbsdfの「ベースカラー」をつなぐ
・ミックスの色1色2をそれぞれ「少しくすんだ赤」「白」に(見やすさのためにRGBノードをつないでいます)
・テクスチャ座標からRGBミックスまでを選択し、「Ctrl +J」でフレームを追加
・フレームを選択し、右側のタブ(なければ「N」で出せます)内の「アイテム」>「ノード」>「ラベル」の名前を「ベースカラー」に
・その下のカラーにチェックを入れ、色を好きに変える
これで少し見やすくなりました。フレームを動かせば中のノードも全て動かせます。
・「Ctrl +J」→選択したノードをフレームでまとめる
ボタンと溝
帯
次に帯の部分を作ります。
・テクスチャ座標からカラーランプまでを「Shift+D」で複製、「alt+P」でグループから分離
・カラーランプを選択し、「Shift+Ctrl +左クリック」でカラーランプをプレビュー用のシェーダーに接続
・カラーランプ内の「V(ショートカットではない)」から「カラーランプをリセット」を選択
・カラーランプ内の「+」を2回押し、カーソルを4つに増やし
・カーソルの色を左から「白」「黒」「黒」「白」に変え(色はカーソルの下のバーから変えられます)カーソルを真ん中に集める
・「Shift+D」→選択物の複製
・「alt+P」→選択物をグループから分離
・「Shift+Ctrl +左クリック」→選択物を出力に接続(今どういう処理が行われているかの確認に非常に便利)
ボタンの淵
真ん中の円をつくります。
・テクスチャ座標からカラーランプまでを複製
・マッピングの「位置」の「X」を「1」→「0.5」
・おなじく「位置」の「Y」を「0」→「-0.5」
・マッピングの「拡大縮小」の「X」を「1」→「2」
・グラデーションテクスチャの「リニア」→「二重球形」に
・カラーランプをリセットし、2つのカーソルを真ん中付近に(黒が位置0.56あたり)
・このままだと少し円が大きすぎるので、「Shift+A」>「コンバーター」>「数式」を追加、「追加」を「log」に変更、グラデーションとカラーランプの間に挟み、ベースを「0.7」にするとちょうどいい大きさになる
(blenderでは色情報を数値情報としても扱えるためこのようなことができます)
・blenderでは(「0」〜「1」)=(「黒」〜「白」)と処理されるため数値情報を色情報として扱うことができる。もちろん逆も可。(カラーランプが便利な理由の一つはこれ)
これにRGB分離ノードを組み合わせることでありとあらゆる色を数値として扱うこともできる。
ボタン
次に内側のボタンの部分を作ります。
・上のテクスチャ座標からカラーランプまでをそのまま複製
・カラーランプを調整し、円は挟む(白が0.36あたり)
次に色を重ねて合わせていく前にそれぞれの円の右側(球の裏側)にできている余計な色の部分を取り除く準備をします。
ベースカラーのテクスチャ座標からカラーランプまでを複製、分離
・カラーランプの右側のカーソルの位置を0.7あたりに移動
(次の繋ぎやすさのためにボタンと取り除く用のノードの上下位置を入れ替えました)
合成
これで全ての素材が揃ったので色を重ね合わせていきます。(ここから少しややこしくなります)
・「外側の円(黒い円)のカラーランプ」と「最後に作ったカラーランプ」を選択、「Ctrl ++(プラス)」で色を合成
・ミックスの中の矢印を押し、ノードを開いて範囲制限にチェックを入れる(合成方法は追加のまま)
・同じように「内側の円(ボタン部分)のカラーランプ」と「最後につくったカラーランプ」を合成(合成方法は乗算)
・ボタン部分とミックスされてる方の・カラーランプとRGBミックスの間に、「Shift+A」>「カラー」>「反転」から反転を追加して嚙ます
・「帯のカラーランプ」と「黒い円とミックスした方のRGBミックス」を乗算で合成
・乗算どうしを追加で合成
・「帯の方の乗算」と「乗算どうしを混ぜた追加」の間にミックスを乗算で追加、空いてる方の色にベースカラーを刺す
仕上げ
凹凸
次にこのままだとのっぺりUV球のままなので全体に見た目上の凹凸をつけます。
・「Shift+A」>「ノーマル」>「バンプ」からバンプノードを追加
・プリンシプルbsdfのノーマルにバンプを接続(この時点ではまだ凹凸なし)
ボタン部分のボタン感を出すためのカラーランプを作ります。
・ボタン部分のカラーランプを複製
・白側のカーソルの位置を0.25付近までずらす
・カラーランプ内の「+」からカーソルを増やし、位置を白側に寄せ、色を黒に近づける(後で様子を見ながら調節してください)
・「作ったカラーランプ」と「反転」を乗算できる混ぜ合わせ
・「帯とボタンの淵を混ぜた乗算」と「今作った乗算」を追加で合成
・作った追加をバンプの「高さ」に接続
・「Shift+Ctrl +左クリック」でバンプをビューワーに繋ぎ、凹凸がついていることを確認(凹凸がついているように"見せかけている"だけなので角度によってはのっぺりのまま)
・白黒部分を全て選択、フレームを追加し、色をつける
質感
仕上げに質感をつけます。
・プリンシプルbsdfの粗さを「0.5」→「0.1」
・スペキュラーをお好みで調整
以上でモンスターボールの完成です。お疲れ様でした。
おまけ(ノードのグループ化)
今回のようなフレームで囲っても扱いづらい長いノードを扱いやすくするにはグループ化という方法があります。
・「ノードのグループ化」
⭐︎ショートカットは「Ctrl +G」
⭐︎複数のノードを一つにまとめ、入出力を設定することで「自分だけの最強のノードを作ろう!」ができる機能。
⭐︎選択して「tab」キーでとじたり開いたりが可能。
⭐︎ノードを開いて画面右のツールバー内、「ノード」>「インターフェイス」から入出力の「並び」「名前」「範囲」「デフォルト値」を設定できる。
⭐︎同プロジェクト内なら「Shift+A」>「グループ」から作ったノードグループを追加することも可能になる。
⭐︎アペンド機能を使えば他のプロジェクトに持ち出すことも可能。(アペンドについてはここらへん見て)
◎詳しくはここを
・出力ノード以外を選択し、「Ctrl +G」でグループ化
・新しく作られたグループ入力ノードを探し、ベースカラーの色1.2をグループ入力にそれぞれ接続(グループ入力には初めソケットがないが右真ん中あたりからドラックしたら接続の線が出る)
これで取り回しが良くなりました。
最後に
今回はモンスターボールを作りましたがこれを応用し、様々なノードを組み合わせることでいろいろなボールを作ることができるのでらぜひそちらにも挑戦してみてください。(例:テクスチャ座標の生成を利用してハイパーボール、マスグレイブテクスチャを使ってサファリボール等々)
今回のようなノードをつなげて形や模様をつけることをプロシージャルモデリングと言ったりします。気になる方はそちらも調べてみてください。
作ったモンスターボールは背景を透過してレンダリングすれば素材として使うとこともできますよ〜(背景の透過方法はこちら)
この記事が気に入ったらサポートをしてみませんか?