徳島ゲーム開発ごっこ 技術ブログ

ゲームを作るために役に立ったり立たなかったりする技術を学んでいきます!

【Unity】稲妻のアセットを使って、フォースの暗黒面に触れる

 夏ですねー。
 世間の人々は、海水浴に行ったり、バーベキューをしたり、花火を見たりしているのでしょねー。
 まあ、ぼっちの僕には縁遠い話だがなぁ!

 というわけで今回は、AssetStoreで公開されている稲妻のアセットを使って、夏を楽しんでいる人々を絶望のどん底に落としてみましょう。
 残念ながら、現在のUnityでは現実世界に影響を与えることが出来ません。
 そのため気分を味わうだけになりますが、少しはこの夏の鬱憤が晴れると思いますよ。


この記事にはUnity2018.2.3f1を使用しています。
.Netのバージョン設定には.Net4.x (4.6相当)を使用しています。
Asset「Lightning Emitter」のバージョン1.383を使用しています。
Unity アセット真夏のアドベントカレンダー 2018 Summer!参加記事です。
http://assetstore.info/eventandcontest/adventcalendar/asset-adventcalendar2018summer/

あらすじ

  • Lightning Emitter のアセットを使って稲妻を作った。
  • 形やエフェクトなどいろいろなことが設定できた。

稲妻を作るアセットを紹介するぜ

 今回は、稲妻を作成するアセットとして、Lightning Emitter を使っていきますよ。
assetstore.unity.com

 このアセットを使うことで、こんな稲妻演出を作ることができました。



 おお、いい感じに稲妻が発生していますよ。
 この演出を作るのに大した時間もかからず、結構簡単に作れましたよ。

チュートリアルを見ていこうぜ

 では、Lightning Emitter 使い方を見ていきましょうか。
 まず、チュートリアル用の動画が用意されています。
 そちらご覧くださいませ。

youtu.be
youtu.be
youtu.be

 そしてアセット内には、チュートリアル用のシーンも用意されています。
 このシーンを順番に見ていくことで、Lightning Emitter をより詳しく学ぶことが出来ると思いますよー。

f:id:urahimono:20180814072502p:plain

早速稲妻を作ってみるぜ

 では、上記で学んだことを実践してみましょうか。

メニューから稲妻オブジェクトを作成だ

 チュートリアル上では、すでにシーン上に稲妻生成用のオブジェクトが Hierarchy 上に配置されていました。
 ただこれ、一から稲妻を作るときはどうすればいいんだ?
 チュートリアルからコピペしてくるのか、それとも自分でスクリプトをアタッチしていく必要があるのか……。
 と思ったら、ちゃんと用意されていました。
 上部メニューより、
GameObject > Effects > Lightning Emitter
 を選ぶことで、稲妻の基礎となるオブジェクトが生成されますよ。
f:id:urahimono:20180814072648p:plain
f:id:urahimono:20180814072703p:plain
 ただ、本当に基礎部分となるので、実行してもこんな風になってしまいます。
f:id:urahimono:20180814072715g:plain
 稲妻でもなんでも無ぇよ。
 ここから少しずつ稲妻にしていきましょう。

マテリアルを設定だ

 とりあえず、この白い四角では、稲妻感がゼロなので、マテリアルから設定していきましょう。
 基本、稲妻の設定には、LightningEmitter オブジェクトに付いている Sox Ltn のパラメータを変更することで設定します。
f:id:urahimono:20180814072732p:plain
 稲妻用のマテリアルは、いくつか用意されています。
 今回は、LTNWide を使っていきましょう。
f:id:urahimono:20180814072743p:plain
 設定することでこんな感じになります。
f:id:urahimono:20180814072752g:plain
 これで稲妻感は出てきました。

ノードについてだ

 さて、稲妻の表現には、LightningEmitter オブジェクトの子オブジェクトである、ノードが重要になってきます。
f:id:urahimono:20180814072810p:plain
 稲妻の演出は、このノード順に流れていきます。
 そのため、ノードの形を変えることで、そのノードに沿った稲妻を作ることが出来ます。
f:id:urahimono:20180814072829p:plain

どうやってノードを増やすんだよ

 デフォルトでは、ノード数は三個設定されています。
 でも、複雑な稲妻を作るのなら、このノードの数を増やしたいものです。
 では、どうやってノードを増やすのか。

 Sox Ltn にノード数を調整するプロパティがあります。
 そこで変更しましょう。
f:id:urahimono:20180814072840p:plain
 増やしたノードを複雑な形にすれば、同じように複雑な稲妻が作成できます。
f:id:urahimono:20180814072856p:plain

 注意してほしい点は、直接 Hierarchy 上でノードを増減させてはいけないということです!
 ノードはSox Ltn が管理しているので、勝手に増減させても元に戻ってしまいます。

ノードのプロパティだ

 ノードにも設定するプロパティはいくつかあります。
 少しだけ見てみましょう。

 一番使うのが、Cirle Areaでしょうか。
 このプロパティは稲妻が通る範囲を指定できます。
f:id:urahimono:20180814072910p:plain

 真ん中のノードだけ 1、他を 0 で指定するとこんな感じになります。
f:id:urahimono:20180814072918p:plain

稲妻の寿命と変化だ

 では稲妻の基本的なプロパティを見てきましょう。
 Sox LtnPlay control あたりが基本的な設定になります。
f:id:urahimono:20180814072930p:plain

  • Auto Activate at Birth
    実行時にすぐ生成するかのフラグ
  • Looping
    繰り返すかのフラグ
  • Duration
    稲妻生成時間
  • Rate
    1秒あたりにどれだけの稲妻を生成するか

 この中の Rate の値を大きくすることで、濃密な稲妻にすることができます。
f:id:urahimono:20180814072947g:plain

 色や太さ、フェードイン・アウトも指定できます。
f:id:urahimono:20180814073007p:plain  このプロパティを上記のように変えると、こんな稲妻も表現できます。
f:id:urahimono:20180814073016g:plain

テクスチャのUVだ

 テクスチャのUVに関するプロパティもあります。
 まずUVスクロールをやってみましょう。
f:id:urahimono:20180814073037p:plain
f:id:urahimono:20180814073047g:plain

 稲妻が動いている感じが表現できます。

 他にもテクスチャアニメーションもできます。
 このアセットにはテクスチャアニメーション用の稲妻マテリアルも用意されているので使ってみましょう。
f:id:urahimono:20180814073108p:plain
f:id:urahimono:20180814073117g:plain
 うにょうにょした稲妻が表現できます。

エフェクトと連動だ

 作った稲妻とエフェクトを連動することも出来ますよー。
 Linked particle objects のプロパティにエフェクトを設定することで、稲妻の生成とエフェクトを連動できます。
 Linked particle objects には複数のエフェクトが指定できるようになっていますが、これはノードと連携しています。
 インデックス0 のエフェクトは、ノード0 の場所で発生するような感じです。
f:id:urahimono:20180814073139p:plain
f:id:urahimono:20180814073150g:plain

 いい感じじゃないですか。

そして明日へ

 Lightning Emitter を使うことで、こんな感じで稲妻を作ることが出来ます。
 稲妻に興味がある方は一度お試しください。

 ただ一つだけ言えることは、このアセットを使っても、
 夏を楽しんでいる人々を絶望のどん底に落とすことは出来ませんでした。
 それだけは報告しておきます。

 明日のUnity アセット真夏のアドベントカレンダー 2018 Summer!は、汗人柱さんの「Dynamic Bone」についてです。
Unity AssetStoreまとめ
 よかった、明日の担当が汗人柱さんで。
 僕が茶を濁してしまったこの空気を何とかしてくれるはず……。