ゴマちゃんフロンティア

気まぐれと勢いで作るUnityゲーム開発日記です。

【Unity】ちょっとしたダメージエフェクトの作成

time 2016/04/23

というわけで、今回はタイトル通り「ちょっとしたダメージエフェクト」を作ってみました!

shot2ss20160423223609064

今までダメージを受けた際のエフェクトは、UnityのDefaultParticleが拡散するようなしょぼいものでした。
あまりにも味気ないので、ファンタジーなゲームにありがちなエフェクトにしてみました!

エフェクト作成には「Effekseer」を使っていましたが、何故か正常にレンダリングされなくなってしまったので、今回はUnity標準のshurikenだけで作れそうなものにします!
外部ツールということでUnityやフレームワークのバージョンに左右されてしまっているのかもしれません。
Effekseer自体は良いツールだと思うので、改善されたらまた使おうと思います!

エフェクトの作成

大きく2つ、「星が拡散するエフェクト」と「ギザギザした吹き出しのエフェクト」になります。
まず前者からということで、適当に星形のテクスチャを作ります。

star

インポートしたらImportSettingsのTextureTypeを「Sprite(2D and UI)」にします。
新規にマテリアルを作成し、シェーダーを「Particle/Addtive」にし、先ほどのテクスチャを設定します。

shot2ss20160423223954164

新規にParticleSystemを作成し、生成するエフェクトのパーティクルを設定します。
キモとなるのはEmissionモジュールのBurstsで、生成された1回のみ且つ生成量を調整します。
また1点から外側へ拡散させるため、ShapeモジュールはSphereを選択、Radiusを限界まで下げておきます。

次に「ギザギザした吹き出しのようなエフェクト」を作ります。
(こういうエフェクトってなんて名前で呼べば良いのかよく分からないですorz)
こちらはダメージ発生時に一瞬だけ表示させます。

damage_shock

最近「PhotoshopElements14」を買いましたが、それにちょうどいいシェイプが入っていました。
適当に色を塗り、Unityへインポートします。
星と同じくImportSettingsのTextureTypeを「Sprite(2D and UI)」にします。

shot2ss20160423224050404

こちらは一瞬かつ1つしか表示しません。
なのでEmissionモジュールのRateを0にし、BurstsのMaxとMinを1に設定します。
DurationとStartLifetimeも0.1に設定します。

また、StartRotationを「Random Between Two Constants」にし、0と180を設定します。
これで再生されるたびにランダムで表示角度が変わります。

空のゲームオブジェクトを作り、この2つを子オブジェクトにした上でプレハブ化します。
あとはダメージ発生時にInstantiate()するだけ!
テスト用に耐久値を猛烈にあげたブロックを攻撃します。

20160423_1

ちょっと手を加えるだけでも結構見栄えが変わるものです。
緩めの「ゲームっぽさ」が表現できます。
ゲームの雰囲気やスピードに合わせてパラメータを調整すると尚良い感じです。

まとめ

ということで、「地味だけど良くなる」ちょっとしたダメージエフェクトを作ってみました!
ひさびさにUnity標準のパーティクルモジュールを使うといろいろ変わっていたりします。

私的にはShapeに「MeshRenderer」や「SkinnedMeshRenderer」が指定できるのが気になります。
時間がある時にいじってみたい部分です。

スポンサーリンク

down

コメントする



ツイッター