Help us understand the problem. What is going on with this article?

UnityのParticleSystemを使って火の弾みたいなものを発射してみる

More than 1 year has passed since last update.

はじめに

この記事は SLP KBIT Advent Calendar 2018 の19日目の記事です。

ふとUnityのParticleSystemだけで炎の弾とかって作れるのかなって思い、試しに作ってみたら、わりとそれっぽく作れました。

今回作ったもの

こんな感じの炎の弾を作りました。
fireball
ここで実際に動かすことができます。
マウスで弾を撃ちたいところをクリックすると、カメラからクリックしたところに向けて、弾が発射されます。
発射された弾が、的か鳥にぶつかると、爆発します。
右上のワイプで、横から見た映像が流れるようにしているので、爆発などの様子を観察できます。

やってることはこんな感じです。
説明用.png
弾は、透明な球体オブジェクトに、コンポーネントとして、ParticleSystemを持たせています。
弾が指定したオブジェクト(今回は的と鳥)に衝突すると、弾は消滅します。それと同時に、衝突したオブジェクト側で、爆発エフェクト用のパーティクルが生成されます。

弾のパーティクル

弾本体のParticleSystemの設定で、炎を表現する上で必要そうな項目をいくつか紹介します。

Shape

キャプチャ.PNG
今回の例では、Coneを選択しました。Coneの他にも、Sphereとか選択してもいい感じになります。

Size over Lifetime

キャプチャ.PNG
時間経過での、粒子の大きさを制御するところです。時間が経つにつれ、だんだん小さくなるようにしてます。

Color over Lifetime

キャプチャ.PNG
キャプチャ.PNG
時間経過での色の変化を制御するところです。炎は、先端になるほど明るい色になるので、それを意識しながら設定してます。終わり際の色は、透明度を高くすると、粒子が綺麗に消えてくれます。なお、色の色相を変えると、青い炎とかが作れちゃいます。

Renderer

キャプチャ.PNG
Materialは、StandardAssetに入っているParticleFirecloudを選択しました。これについては、お好みで選択してください。

これらの他にも、NoiseLightsとかを設定すると、いい感じになります。

爆発エフェクトのパーティクル

爆発を表現する上で必要そうな項目をいくつか紹介します。基本的には、弾のパーティクルとほぼ同じです。

Shape

キャプチャ.PNG
爆発は、全方位に粒子が飛び出るイメージなので、ShapeはSphereを選択しました。

Trails

キャプチャ.PNG
粒子の軌跡を描画します。花火のような効果を出そうと思い、設定しました。なお、Trailsの描画には、RendersでTrail Materialを設定する必要があります。

爆発エフェクトの生成

以下のコードを、的と鳥のコンポーネントに入れてます。

Target.cs
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Target : MonoBehaviour {
    public GameObject ExploadObj;
    void OnCollisionEnter(Collision other)
    {
        if (other.gameObject.tag == "Ball")
        {
            Instantiate (ExploadObj, this.gameObject.transform.position, Quaternion.identity);
        }
    }
}

爆発のパーティクルシステムをExploadObjに入れて、指定したタグのオブジェクト(ここではBall)が接触すると、ExploadObjが生成されるといった仕組みです。

最後に

ParticleSystemを活用すれば、割と簡単に、炎の弾を作ることができました。これで思いっきり焼き鳥とか作れるな!
時間に余裕があれば、氷とか雷とかのエフェクトも作ってみたいです。

参考

Unityマニュアル - パーティクルシステム(Shuriken)
https://docs.unity3d.com/jp/460/Manual/class-ParticleSystem.html
LemonteaのUnity部屋 - Unity パーティクル(2) 炎のエフェクト 松明風と某悪魔風
https://www.sawalemontea.com/entry/2017/09/14/220000

fentok
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした