【シェーダーグラフメモ その47】炎の卵を作る
はじめに
炎が燃えさかるような卵を作る方法を解説します。
サンプル
STEP1 : テクスチャ準備
今回は以下のテクスチャを使用します。
上記のテクスチャはSubstanceDesignerで以下のようなノードを組んで作成しました。
BnW Spots1のパラメータを Scale = 1, Disorder = 0.27, Roughness = 0.47としたものをOutputでビットマップ出力しています。
STEP2 : シェーダーグラフ作成
次にシェーダーグラフを作成します。
PBRノードは以下のように設定します。
Workflow = Mettalic, Surface = Opaque, Blend = Alpha, TwoSided = True
これを球体に張り付けると以下のようになります。
パラメータを以下のように設定することで炎らしい見た目になります。
※光の滲みはPostProcessingStack V2のBloomで実現しています。
シェーダーグラフ単体では光の滲みは出せないので注意です。
STEP3 : 卵型のメッシュを作成(Houdini)
最後に以下のような卵型のメッシュをHoudiniで作成します。
STEP2の球メッシュを卵型メッシュに置き換えることで、炎の卵の完成となります。
STEP 3.1 非商用版Houdini Apprenticeの準備
まずは非商用版のHoudini Apprenticeをインストールします。
STEP 3.2 Houdiniを起動する
Houdiniを起動すると以下のようなウィンドウが登場します。
今回は赤い線で囲った部分を使用します。
STEP 3.3 Geometryノード作成
ネットワークビューを右クリックするとTABメニューが現れます。
右クリックの代わりにネットワークビュー上でTABキーを押すことでもTABメニューを出せます。
TABメニュー上で"Geo"と入力し、Geometryを選択します。
geo1ノードが作成されます。
STEP 3.4 geo1ノードの中に入る
geo1ノードをダブルクリックして、中へ入ります。
何もないウィンドウが表示されるはずです。
STEP 3.5 Sphereノード作成
ネットワークビュー上で右クリックし、TABメニュー上で"Sphere"と入力してSphereを選択します。
Sphereノードが作成されます。
画面左側のシーンビューには球が表示されます。
STEP 3.6 球をポリゴンにする
パラメータービューにあるPrimitive Typeを Polygon Mesh にします。
STEP 3.7 UVプロジェクション
次にUV座標を球体に貼り付けます。
ネットワークビュー上でTABメニューを出し、UV Projectを選択します。
入力と出力を一つずつ持ったUV Projectノードが作成されます。(uvprojection1という名前になっています)
丸ポチの部分をドラッグアンドドロップしてSphereノードとuvprojectノードを接続します。
Sphereノードの出力がuvproject1へ入力されるようになりました。
STEP 3.8 UVの表示
TABメニューからuvquickshadeノードを作成します。
これをuvprojectノードと接続し、uvproject1の出力がuvquickshade1へ入力されるようにします。
uvquickshade1ノードの右端をクリックし、ノードのDisplayフラグをONにします。
シーンビューの球体にUVが表示されるようになります。
STEP 3.9 UVプロジェクションの調整
uvprojection1ノードををクリックして選択状態にします。
パラメータービューからProjectionの部分をPolarへ設定します。
球面のUVがきれいになりました。
STEP 3.10 球体を歪める
最後にBendノードを利用して球体を卵状に歪ませます。
まずはBendノードを作成し、uvquickshadeノードの出力がBendノードへ入力されるようにします。
Bendノードの右端のボタンをクリックしてDisplayフラグをON(可視状態)にします。
シーンビューは以下のような表示になります。
Bendノードのパラメータを以下のように設定します。
卵のような形状になります。
STEP 3.11 UVを90°回転させる
現状だと卵がとがっている方向にX軸、垂直な方向にY軸が向いていますが、
今回は都合が悪いのでこれを90°回転させます。
uvproject1とuvquickshade1の間にTransformノードを挟み込みます。
TransformノードのRotateのZ成分を-90に設定します。
UVが90°回転し、卵がとがった向きへUVのY軸、垂直な方向へX軸が向くようになりました。
Bend1ノードによってデフォームをかける前に球体を回転させているため、UVだけがうまい具合に回転してくれています。
STEP 3.12 卵型メッシュをOBJ形式で書き出し
最後に卵型メッシュをOBJ形式で書き出します。
UnityはOBJをサポートしているため、OBJで書き出すことでUnityで利用できるようになります。
まずはネットワークビューのbend1を右クリックします。
Save/Geometry... を選択するとファイル書き出しウィンドウが表示されます。
今回は炎の卵を作るということでファイル名をfire_egg.objとします。
Acceptボタンを押すとobjファイルが出力されます。
ファイル書き出しウィンドウの矢印アイコンをクリックすると出力されたobjファイルを手っ取り早く見ることができます。
STEP 3.13 卵型メッシュをUnityに取り込む(完成)
fire_egg.objをUnityに取り込み、
STEP2で作成したシェーダーグラフを張り付けることで以下のような炎の卵になります。(Rotation = (0, 0, -90)にしています)