シャボン玉をテーマにマテリアルを学ぼう

※本サイトはアフィリエイト広告を利用しています。

本日のテーマはしゃぼん玉用のマテリアルの作り方です。応用可能な色々な技術が詰まっています。

後半で作り方解説しています

透過マテリアル新規作成

これは海外のYouTuberさんたちの動画でほぼ同じ作り方で、説明することはないといえばないのですが日本語でできるだけわかりやすく説明してみたいと思います

新規マテリアルをつくり、まず最初にブレンドモードを3つ目のTranslucent(半透明)にします
マテリアルを作るときはOpaqueという透けないやつになっています

あとはその変更で有効となる、透過処理/LightingModeを「SurfaceTranslucency」にしましょう。

本体のパラメタ設定対象が変わります

マテリアルの構成

まず完成図から。

最初に作るのは左上のPixelNormalWS(ワールドスペース)です

ノードのプレビューをすると、プレビュー画面がこのノードの出力になります

カメラを動かして見ると、位置によって色が変わっているかと思いますが
法線の方向によって違う色になっています

その下は時間のノードで、動きを出したいときは大概使うやつですね

その下はあとから変更したいパラメータで

1を押しながら左クリックで数値ノードを出して、右クリックからパラメータに変換でできます
あとの手順で調整するものです

名前はレインボーローテーター、虹の回転係数って感じです

時間にかけ合わせて、ローテーターという回転させるノードの時間に入力しています

かけた段階でプレビューしても意味わかりませんが、ローテーターでプレビューすると

さきほどの向きによって色が変わるものが、時間で回転してこんな感じになります

パラメタを大きくすると速く動くという仕組みです
0だと止まっちゃいますが0.4とかならゆっくりも動きます。

そのつぎのドットはベクトルの内積です。

相手側のカメラベクターというのはカメラに向かう方向のベクトルです。
最初のピクセルノーマルと似たような感じですが、内積をとると

いったん白黒のスカラーになります

似ているけどちょっと違っていて、しかも動いているものと止まっているものの内積(どのくらい同じかみたいな)計算をすると、こんなふうに月の満ち欠けみたいな感じの情報になるんですね

一致している箇所は1に近い値(プレビュー上は白)、一致していないところは0に近い値(黒)になります

その次が表記はTexCoord[0]ですが、ノード名は「TextureCoordinate」で、Uキー押しながら左クリックで出せます。

これはテクスチャーのUV座標でタイリングとかを調整するやつで、これも頻繁に使うものですね

よっしー
よっしー

UE5.3くらいまではtexcoordでは見つからなかったのですがUE5.4で検索が強化されて普通に見つかるようになりました

ありがたいです(´▽`)

掛け算でサイズ調整する値もパラメタ化されていましたが、自分は必要ないのでとりあえず1固定してみました

でそれを月の満ち欠け的なDotの出力と足すと、ふたたびベクトルになります

よっしー
よっしー

私にはこれが何って説明できませんが職人技ですね

そして次は3を押しながら左クリックで設置できるベクトルで、いわゆる色を指定する(RGB)やつです
ダブルクリックとかで開いてカラーピッカーが出せます

これを緑にしてあります

そしてこれらを次の「HueShift」につなぐと、
緑1色の画像テクスチャーが場所ごとに違う比率でカラーテーブル上をズラされて
こんなふうにモヤモヤと動く虹ができあがるということみたいです

これで虹色の球としてはほぼ完成ですね

その次は透明感をつける加工です。
フレネルノードはシルエット(輪郭)をくっきりさせるやつです。

これをさらにどのくらい強調するかのパラメタをPowerノードに入力で”べき乗”で利くようにしています

よっしー
よっしー

普通の掛け算でもよいと思います

これをパラメタを強調して、さっきの虹色にかけ合わせると、こんな感じになります

これをベースカラーとしつつ、さらにパラメタをかけ合わせたものをエミッシブカラーという発光色に入れます。

輪郭強調をオパシティ(透明度)にも同じ入力すると、外側だけ虹色で内側が空っぽの球ができるというわけです

ちなみにメタリック0.5で金属感は中間にしつつ
ラフネスは0でつるつるにしています。ここもパラメタ化して遊んでみてください

位置オフセット

ワールド位置オフセットというのはマテリアルの力でそれが貼られているもの自体を移動する機能です。という説明だとちょっと変ですが。。。
旗をゆらゆらさせたり、ふわふわさせたり、電気ビリビリみたいなこともできます。

Pで設置できる「Panner」というのはカメラを横からパンする のときにつかうパンで、動かすときに使うものです。

それを入力に帯状にするGenerateBandの出力でみると、幅0.6の帯状になって上に動いているのが見えました。さらにそれを5乗でめっちゃ強調するとこんな風に白いところと黒いところがくっきりしましたね

そしてこれをワールド位置オフセットにつなぐと、白いところは出っ張って黒いところはもとの位置で形状が歪む波が起きてモヤモヤゆれるというわけです

↓ちょっとGIFの色数がすくなくて汚いですが、YouTube動画で見てくださいm(_ _)m

できたら適用を忘れずに押しましょう

保存してマテリアルは完成です

もちろん定数にしちゃっているところもパラメタ化できます

マテリアルインスタンス

マテリアルを右クリックからマテリアルインスタンスを作りましょう

マテリアルはちょっと変更するたびに待たされますが、インスタンスはマテリアルを親にしてパラメタだけをいじることができる軽量版で、コンパイル不要で動作がサクサクです

エミッシブカラーは光具合です
フレネルパワーは輪郭強調度合(≒透け感)です
レインボーローテーターは最初に作った回転速度です

プレビューを止めてて動かない場合は、左上の三(ハンバーガーボタン)からリアルタイムにチェックつければ動き出します

あとはできたマテリアルインスタンスを球のマテリアル欄に設定して使います。

コメント

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