
パーティクルについて
最近Unityでのゲーム制作にも手を出し、なかなかの筆の乗り具合に鼻腔膨らませているこの頃です。どうもダイナマイトです。
今日はパーティクル機能を使ってUnityにて炎エフェクトを作ってみました。とっても楽しい作業でした。
ちなみにパーティクルとは映像でもよく使われる言葉ですが、、、意味としては「微小なもの。 小片。 細片。 粒子。」らしいです。つまりちっちゃいものの集合体ですね。今回はそれをうまく使おうというお話です。
参考文献
文献っていうかYoutubeですけども、、、このUnityを始めるきっかけとなった方の一人。ひろはすさんの動画を参考にさせてもらいました。
上で今回やったことは全部説明されています。というわけで今回の日記はここまで!ではまた。
なんていうYoutubeだったらエンドカードでも流れていそうな茶番をしてみましたが、これだけで終わるわけもなく、、、
とにかく彼の動画は参考になる&モチベーションの上がるものばかりなので、おすすめです。
素材の用意
まずは炎の元となる、素材の用意です。
今回の炎は「いくつかの形の違う要素をランダムで表示させる(色もそれっぽくする)」ことでそれっぽく見せるという考え方から成るものとなります。
今回はひろはすさんの動画でも使われていたPhotoshopをたまたま私も持っていたので、これを使います。強くてニューゲームみたいなもんです。わからなかったらいいです。
今回の素材で使用したのは以下のような要素です。

これだけだとよくわからないと思いますが、これはその実、手書きのアルファベット「A,C,J,Z」を黒背景に書き、その上から黒点で虫食いにしたものです。
そこに縦方向のぼかしを入れたりアルファチャンネルにうんたらしたりしているのですがここでは割愛。なぜならひろはすさんがわかりやすすぎるから。
ここで言いたいのは、この素材たちがUnity上でパーティクルにすると「A ,C ,J,Z」のそれぞれが自由自在にダンスを踊るようになることです。荼毘のごとく(ネタバレ注意)
Unityへの適用
先ほど作ったPhotoshopのプロジェクトファイルをそのままUnityにテクスチャとして読み込みます。そしてうまいことするために以下の画像のように設定します。(ここで大事なのはAlpha Is Transparenにチェックを入れること)

そしてマテリアルを作成し、名前を適当に決めてShaderの部分を下記のように設定する。
「Mobile/Particles/Alpha Blended」

そしてここから、ヒエラルキーにパーティクルシステムなるものを作成してマテリアルを当てこみ、数値をいじいじしていきます。
ここが一番イジるところ多くてややこしいんですが、、、ひろはすさんの解説を見ればだいたい大丈夫。
とはいえどれくらいややこしいのかを一度見てもらった方がいいかなと思うので、、、、どん!

ね?わけわかんないでしょ?
しかもこの項目それぞれに複数の設定項目があるから困ったものです。
ここでは一応、僕の感じた「これは抑えるべき!」っていう項目を上げておきます。
Emission
Rate Over Time…パーティクルの要素の被り時間?を司る項目。これが多いほど隙間なく要素が重なっていきます。
Shape
Angle…パーティクルが放出される中心点からの広がりを司る。数値が高いと広がった炎になり、低いと一直線上の炎になる。ジェットバーン。
Radius…放出の中心点の広がりを司る。数値が高いと中心点が広くなるので当たり判定がでかい。俺こっちのがいい。
Color over Lifetime
Coler…色です。透明度もあります。色々触ってみてください。色だけに。ね?
Texture Sheet Animation
ここが一番大事。上で作った要素たちを個々で踊らせるためにはこちらの値をしっかり決めないといけません。
Tiles…テクスチャで適用した画像を何分割するか。を司る。x軸とy軸でそれぞれ2を入れれば4分割、といった具合だ。
Animation…画像をどう表示するかを決めるところ。Whole Sheetなら画像全体、Single RowならTilesで分割した画像がランダムで表示される。
Renderer
Material…ここでマテリアルをきちんと適用します。
他にも色々ありますが、あとは適当にいじってみましょう。サイズ感とか諸々好きに変えられるので、いじってると楽しいのもまた事実。
結果発表
ってなわけでできたのがこちらの炎!とくとご覧あれ!

はい、ちょっと安っぽいけどこんな感じくらいが今回作っているゲームにはちょうどいいので、、、これでよしとします。
てな感じで、今日はこんなところかな。またゲームが完成したらここでも報告しようと思うので、よければ気長にお待ちくださいな。
ではでは、また明日。