こんにちは、Unityエンジニアのオオバです。

オオバは3歳の頃からテレビゲームと呼ばれるものを必ず毎日30分は少なくともやってました。(当時はファミコンです)
大学に入って少し頻度が下がりましたが、iPhoneが世に出回りスマホゲームを作るようになってからは、加速するようにゲームをしてするようになりました。

今年の夏頃にはプレステ4も購入してしまいました。絶賛FF15中です。

ゲームを子供の頃からやっていると、ゲームエフェクトには憧れというものが出てきます。
その中でも雷系のエフェクトは、ゲーム好き男子にとっては、うっとりするモチーフなのではないかと勝手に思っています。

ということでUnityで雷エフェクトを作ってみます。

👉DOTweenの教科書を読んでUnityアニメーションをプログラミングしてみよう!

素材が無い

オオバの中では 「エフェクト = Shuriken(ParticleSystem)」なのですが、Texture素材がないと始まりません。
Photoshopで描いて作るか、ネットから適当な参考画像を探して来るか、AssetStoreで買うか(もはや制作済み状態)、、、。

『そうだ GLSL Sandbox、行こう』

という流れで、まさにバチバチと音がなりそうな雷表現がGLSL Sandboxで見つかったので、Unityに移植して遊びます。

移植後のシェーダーコードはこちら

Lightning.shader · GitHub

GLSL SandboxをUnityに移植して遊ぶ_その3_0

GLSL Sandboxのコチラのソースを参考にしております。

GLSL SandboxをUnityに移植して遊ぶ_その3_1

このように、ザ・ゲーム中に出てきそうな雷エフェクトができました。移植前のコードでは、マウス座標に雷の終点が追随する用になっていましたが、その辺は省いています。

まとめ

この記事含め3つのGLSL Sandboxのシェーダーを移植してきましたが、やはりPCサービスということで処理がリッチです。
今回のシェーダーも見てもらえればわかりますが、フラグメントシェーダー内に多重for文、sin, cos, length, max, min, lerpと、いかにも重そうな処理をガンガン記述しています。

次回は、このレベルのフラグメントシェーダー処理負荷が、
モバイルで耐えられるのかを追っていこうと思います。

オススメ記事