1
/
5

Creative Blog #7 ShaderGraphで光る武器を作る

こんにちは。ポケラボクリエイティブ部です。

クリエイティブ部の若手メンバーがスキルアップに励む姿をお送りしているCreative Blogですが、今回は「頑張ってるのは若手メンバーだけじゃないぞ!」ということもお伝えしたく、中堅メンバーがスキルアップに励む様子をお送りします。

以前紹介した「Creative Blog #4 ShaderGraphでマスク処理」で、ShaderGraphの習得に励んでいるエンジニアが今回は光る武器シェーダの作成に挑戦しました。

その模様を制作者のコメントを交えつつお送りいたします!

前回から継続してShaderGraphの習得に励んでいます。
ノードベースでシェーダが作れるのはとても楽しいです!

ShaderGraphに関しては下記のサイトをご参照ください。
https://blogs.unity3d.com/jp/2018/02/27/introduction-to-shader-graph-build-your-shaders-with-a-visual-editor/

今回はShaderGraphを使って刀身が光る武器を作りたいと思います。

アートチームのメンバーに頼んで、ちょちょいと描いてもらったのがコチラの武器です。
このオーソドックスな剣にシェーダを当てて刀身を光らせたいと思います。


作成したシェーダの構造は下記の通りです。

大きく分けると、剣画像を表示する部分と光る刀身の処理部分の2つになります。
今回のメインは光る刀身部分になります。

シェーダの中身を説明する前に、まずは結果をご覧ください。


ちょっと分かりづらいかもしれませんが、今回のシェーダでは下記の処理を行っています。
・Emissionを使って強く光らせる
・ずーっと一定に光るのではなく明滅させる
・均一に光るのではなくノイズを加えてまだらに光らせる
・ノイズは停止せず緩やかに動いている

明滅やノイズを使ったまだらな発光により、見栄えが良くなっているかと思います。

それではシェーダを詳しく説明していきます。
まずは明滅部分。

Timeノード、Sineノード、Remapノードで繰り返しの処理を行い明滅させます。
Multiplyノードと繋いでいるプロパティは明滅の間隔を調整するプロパティです。


プロパティのGlowIntervalを調整する事で明滅の間隔が変化します。
値を小さくすれば明滅がゆっくりになり、値を大きくすると明滅の間隔が短くなります。


次にノイズ部分。

Simple Noiseノードでノイズを生成します。
スクロール方向を決めるVector2にTimeノードを掛け合わせて、それをTiling And OffsetノードのOffsetに繋いでスクロールを行っています。
ノイズの濃さ、スクロールの速さ、スクロールの方向はプロパティ化しているので調整が可能です。


プロパティのNoiseDetailの値を小さくするとノイズの密度が薄くなり、刀身にボヤ~っとノイズがかかる感じになります。値を大きくするとノイズの密度が濃くなり、沢山の細かいノイズが刀身に映るようになります。
プロパティのNoiseScrollVecのXとYを調整する事でノイズが流れる方向を調整出来ます。
Xは横方向。1なら左に流れ、-1なら右に流れます。
Yは縦方向。1なら下に流れ、-1なら上に流れます。
プロパティのNoiseScrollSpeedはノイズが流れる速さです。値が小さいほど遅くなり、大きいほど速くなります。


次にカラー部分。光る刀身の色を決めています。

色を変えるだけならColorノードをEmissionに繋ぐだけですが、
今回はノイズを加えてるので、ノイズ部分とカラー部分をMultiplyノードで繋いでいます。
カラーは、色と強さを調整出来るようにプロパティ化しています。


プロパティのGlowColorで光る色を決めます。
プロパティのColorStrengthは色の掛かり具合の強さで、値が大きいほど色が強くかかります。


カラー部分とノイズ部分を繋いだので、次は明滅部分と繋げます。
Multiplyノードで繋ぐだけです。


最後に、今まで作ったカラー、ノイズ、明滅の処理が刀身だけになるように範囲を制限します。

カラー、ノイズ、明滅が合わさったMultiplyノードと刀身のマスク画像を新しいMultiplyノードで繋ぎます。
それをPBR MasterのEmissionに繋げば完成です。

これで剣の刀身だけが光るシェーダが出来上がります!

下記がプロパティの一覧になります。

・GlowColor ;Glowの色
・ColorStrength ;色の強さ、色のかかり具合
・GlowInterval ;明滅の間隔、周期
・NoiseScrollSpeed ;ノイズの移動スピード
・NoiseScrollVec ;ノイズの移動の方向
・NoiseDetail ;ノイズの濃さ、密度
・WeaponTexture ;武器画像
・WeaponGlowMask ;刀身のマスク画像

以上がShaderGraphで作った光る武器シェーダになります。

ShaderGraph楽しいです!もっと勉強して色々な表現ができるようになりたいと思います!

いかがでしたでしょうか?
業界の変化に柔軟に対応するべく、中堅メンバーも若手に負けず日々スキルアップに励んでいます。

次回は、「Creative Blog #6 Spineキャラ描きました!」でお見せしたSpineキャラクターのセットアップをお送りする予定です。お楽しみに!



株式会社ポケラボでは一緒に働く仲間を募集しています
8 いいね!
8 いいね!
同じタグの記事
今週のランキング