もくじ
うさほシェーダーとは
「うさほシェーダー」は、うさほ3号の作成したUnity用NPR系シェーダー群です。
現在含まれるシェーダーは6つ、用途で分けると5種類となっております。
※(2021/12/2)疑似空シェーダー1種とポータル向け空間歪みシェーダー1種を追加しました!
「薄暮の」モデルに主に使用したシェーダーを扱いやすい形に変えて販売しているものに
なりますので、ご興味があればBOOTHの販売ページをご覧ください。
VRCSDK有りと無しで見た目が変わるためVRChatでの利用を想定しておりますが、
改変していただければ通常のUnity環境でも狙った結果が出せるかと!
また、全てUnityの有料アセット、Amplify Shader Editorにて作成しているので、
お持ちの方は当シェーダーを改変して使用していただくことも可能です。
ノードベースで解説も豊富なので、比較的簡単にシェーダーを組むことの出来る
便利なアセットですので、ご興味のある方はそちらもご確認くださいませ!
【Amplify Shader Editor (Unity Asset Store)】
うさほシェーダーのつかいかた
ここからは、肝心の各シェーダーの内容と使い方を解説していきます。
販売物の中にはサンプルのユニティパッケージも同梱されておりますので、
ご購入いただいた方はそちらを確認しながら読み進めてください!
召喚エフェクトに!dissolveシェーダー
概要
一つ目のシェーダーは、武器の召喚エフェクトなどに使えるdissolveシェーダーです。
主な機能は3つ。
- 上下左右にリピートするマップを利用し、流れる溶岩のような質感を表現する
- 溶岩の色味や流れる速度、奥行き表現の強さを調整する
- パラメータを変更して表示・非表示のアニメーションを表現する
gif動画の見た目はかなり炎系の見た目に寄っていますが、
使用するマップや選ぶ色味によってはかなり印象を変えられます!
また、下記の下準備をしていただけるとより自然な印象に近づけられるので、
BlenderなどのDCCツールを利用できる方は是非お試しください!
下準備
dissolveシェーダーはUVを参照してマップの流れを作っています。
つまり、UVの切れ目が目立つ場所にあればあるほど、その箇所で流れも不自然に途切れてしまうのです。
対策として、「薄暮の射手」ではUV投影で作成したシームレスなUVをそのまま使うことで、滑らかな見た目を確保しています。
適用したいメッシュのUVを切れ目が無いように調整していただければ、
流れの不自然な途切れを軽減することが出来るのです。
パラメータ
画像のように、dissolveシェーダーには編集可能なパラメータが7つ用意されています。
・Mask
流れと奥行き感を形成するマップです。
上下左右でリピートできるものを使っていただくと、切れ目ができないのでオススメです。
もちろん、付属のマップを利用していただいても大丈夫!
・Scroll Speed
マップが流るスピードです。
数字が大きいほど早く、小さいほどゆっくりと流れていくようになります。
・Color 1 / 2
マテリアルの色味を決めるパラメータです。
Color 1がマップの暗部、Color 2が明部の色味を示しており、
RGBカラーを自由に指定することができます。
・Burn In / Out
召喚エフェクトの肝、表示・非表示を演出するパラメータです。
Inは数字が大きいほど表示が進み、Outは大きいほど非表示が進みます。
また、Inの上限は1、Outの上限は1.1となっておりますので、
アニメーションの設定の際はご注意ください。
・Parallax
奥行き表現の強さです。
0を奥行き無しとして、ー方向で押し出し、+方向で奥まりの表現ができます。
瞳をリッチに!eyeシェーダー
概要
二つ目のシェーダーは、瞳の表現をちょっとリッチにできるeyeシェーダーです。
主な機能は3つ。
- パララックスのマップで瞳の奥行きを表現する
- エミッションのマップで発光を表現する
- MatCapで瞳への映り込みを表現する
このシェーダーのポイントは、凸型のメッシュに対してフェイクの奥行き表現を行える点。
MatCapは凸型のメッシュ表面に映り込み、アルベドマップ(色のテクスチャ)とエミッシブは
メッシュ形状とは分離して疑似的な奥行きを持つことが出来るのです。
パラメータ
eyeシェーダーの編集可能なパラメータは8つ。
・Albedo_map
ベースとなる、色を設定するテクスチャです。
・Parallax_map / Parallax
奥行き表現を設定するマップと、その強度です。
マップの暗部が奥行き表現の追加される部分となっており、
グラデーションの画像を使えばなだらかな凹みを、
一部を暗く、または明るくすればその箇所のみ凹み方を変更することも出来ます。
Parallaxの値は0を基準としてー方向で押し出し、+方向で奥まりの表現ができます。
・Emission_map /Emission
発光表現を設定するマップと、その強度です。
マップにより発光の色合いと強度を設定することができ、
Emissionの値でマップの透明度を調整できます。
・Matcap / Matcap Alpha / MatCap Blend
メッシュ表面に移り込むMatcapと、映り込む範囲のマップ、そしてその強度です。
Matcap Alphaのマップは明部が移り込む範囲を示し、
MatCap Blendの値でその透明度を調整することが出来ます。
ファンタジックな宝石を!jewelシェーダー
概要
三つめは不透明な宝石類を表現できる、jewelシェーダーです。
要素の多いシェーダーで、以下の機能を調整できます。
- パララックスのマップで内部構造の色味と奥行き等を表現する
- エミッションのマップで発光を表現する
- フレネルのカラー、範囲、強度を調整する
- Matcapでメッシュ表面への映り込みを表現する
- エッジのマップでエッジ部分の色味を別個に表現する
調整項目は多めですがその分多様な表現が出来るシェーダーになっていますので、
次はパラメータの方を順番に見ていきましょう!
パラメータ
jewelシェーダーの編集可能なパラメータは17個。
・Albedo_map
ベースとなる、色を設定するテクスチャです。
・Parallax_map / Parallax Intensity
内部構造の奥行きを設定するマップと、その強度です。
マップの明部が奥行き表現の追加される部分となっており、
Parallaxの値は0を基準として、+方向で奥まりの表現ができます。
・Parallax Albedo / Parallax Alb Blend
内部構造の色味を設定するマップと、その強度です。
・Edge Parallax
エッジ部分で屈折の加減が変わる演出を行う設定です。
エッジとみなす範囲は後述のEdge Maskのマップに依存します。
・Emission_map / Emission Intensity
発光表現を設定するマップと、その強度です。
マップにより発光の色合いと強度を設定することができ、
Emissionの値でマップの透明度を調整できます。
・Fresnel_Color / Fresnel_Power / Fresnel Intensity
フレネルの色、範囲、強度を設定するパラメータです。
・Matcap / Matcap Intensity / Blending Mode
メッシュ表面に移り込むMatcapと強度、合成のモードです。
Blending Modeは、Add(加算)とMultiply(乗算)の2種を選ぶことが出来ます。
・Edge Mask / Edge Color / Edge Intensity
エッジとみなす範囲を決定するマップとエッジの色及びその強度です。
また、このEdge Maskは前述のEdge Parallaxの範囲も決定します。
鉄板!matcapシェーダー
概要
四つ目のシェーダーは、お手軽立体感演出でお馴染みのmatcapシェーダーです。
とても単純なシェーダーで、要素はたった一つ。
- ライトの色味や明度を反映するmatcapを設定する
これだけです。
ただ、一つだけ特殊な要素を持たせている点もあります。
ライトを無視する最も基本的なmatcapのシェーダーと異なり、
当シェーダーはライトの色味や明度を参照できるのです。
この設定により、きちんとライトの設定がなされているワールドであれば
当シェーダーを設定したモデルを雰囲気に馴染ませることができます。
パラメータ
パラメータもとても単純でたったの一つ。
MatCap
メッシュ表面に移り込むMatcapです。
設定に注意!skyシェーダー
概要
五つ目、六つ目のシェーダーは、二つセットで効果を発揮するskyシェーダーです。
これも単純なシェーダーで、要素は一つ。
- 適用したメッシュに景色を映す窓のような表現を追加する
実際には窓の役割を果たすメッシュと景色を貼り付けるメッシュの二つを用意して、
ステンシルでマスクしているという構造のため、使用時に設定を合わせる必要があります。
下準備
BlenderなどのDCCツールにて、skymapシェーダーを適用するメッシュとは別に、
その外側を覆うようにskydomeを適用するメッシュを用意してください。
skymapシェーダーを適用するメッシュを中心に据えて外側に球状のメッシュを配置し、
内側が表面になるようにフェースを裏返しておきましょう。
パラメータ
skymapとskydome、二つのシェーダーを合わせても項目は三つだけです。
ただ、前述の通り使用時に双方の設定を合わせる必要がある点にご注意ください。
・Stencil Skymap
skymapシェーダー唯一のパラメータで、ステンシル設定に使う番号を設定します。
この番号は必ず後述のStencil Skydomeの番号と合わせてください。
合わせないと…窓の処理が出来ず見た目が壊れてしまいます。
この番号は他の方々のアバターにも使われているものになりますので、
出来る限り被らなさそうな値を選択しておきましょう
・Sky Texture
skydomeシェーダーのパラメータで、
窓から見える景色を設定するテクスチャです。
・Stencil Skydome
skydomeシェーダーのステンシル設定に使う番号を設定します。
前述の通り、この番号は必ずStencil Skymapの番号と合わせてください。
メッシュひとつでOK!skymapシェーダー
概要
七つ目のシェーダーは、前述のskyシェーダーの亜種になる、skymapシェーダーです。
要素はskymapシェーダーと同様。
- 適用したメッシュに景色を映す窓のような表現を追加する
ですが、こちらのシェーダーは複数のメッシュを掛け合わせる必要がないため、
用途によってはコチラが使いやすいかと!
パラメータ
このシェーダーのパラメータはたったの一つ。
ただ、画像としてキューブマップを用意する必要があります。
キューブマップについては、下記URLのページを参考にしてみてください。
・Cubemap
文字通りキューブマップ画像を差し込むスロットです。
画像の設定項目、Texture ShapeをCubeに設定しておきましょう!
この設定だけで、異世界を除く窓のような効果を得ることが出来ます。
景色を歪める!portalシェーダー
概要
八つめはポータルに利用されるような景色の歪みを表現できる、portalシェーダーです。
平面に適用する想定のシェーダーで、以下の機能を調整できます。
- 渦状のアニメーションと波状の歪みの強度を設定する
- マップの差し替えで渦状の歪み方を変更する
- ポータルの色、範囲、強度、フチのぼけ具合を調整する
パラメータ
portalシェーダーのパラメータは8つ。
どれも機能的には単純なものなので、直感的に調整していただけるかと思います。
・Twirl / Wave_Strength
渦状 / 波状の歪みの強さを設定するパラメータです。
・Twirl Tex
渦状の歪みに適用されるテクスチャです。
・Tex Strength
適用されるテクスチャの強度です。
・Portal Color / Size / Hardness / Strength
ポータルの色、サイズ、フチのぼかし強度、全体の強度のパラメータです。
さいごに
ここまでうさほ3号の自作シェーダー、
「うさほシェーダー」の説明にお付き合いいただきありがとうございました。
どれもちょっとニッチな役割を持ったシェーダーではありますが、
イラスト調のモデルを作る時にはそこそこ役立つ面がある…はずです。
他にも、
「もっとこんな機能が欲しい!」
「そもそもこんなシェーダーが増えると助かる!」
などなど、ご意見・ご質問がございましたら、いつでもお気軽にご質問くださいませ!
それでは皆さま、良いVRChat自作ライフを!