ゲーム制作   Unity ソフトウエア 

Unity ソフトウエアでゲーム制作#1モグラたたき編(27.エフェクト2パーティクルシステム)

キャッチ画像モグラたたきパーティクルシステム

本投稿は2024年9月時点の内容になります。アップデートにより変更となる場合があります。また環境によって違いがあると思いますのであくまで参考として、ご了承ください。

様々な書籍、ブログや動画を参考にさせていただきました。多すぎて一つ一つはお紹介できませんが感謝です。

初心者の自分がUnity ソフトウエアでゲームを作ってみました。とりあえずシンプルなものということでモグラたたきに挑戦です。ゲーム作ってみるかという感じになったときに、いいタイミングで某ゲームのイベントシナリオ内ミニゲームにモグラたたきが実装されていたのでUIとかエフェクトとか、諸々の仕様をぱくって参考にして作ってみましたよ。様々なHowToの中の選択肢のひとつとして、同じ初心者さんの参考になればよいです。

\ チェック /

パーティクルシステムを使ってエフェクトを作成していきます

Unity プロジェクトでエフェクトをつけるには主に2つ方法があります。

前回はアニメーションを使って自作しましたが、今回はパーティクルシステムを使っていきます。クリックすると星が出るエフェクトを作ってみたいと思います。

とはいっても、パーティクルシステムの設定項目はすごく多くて奥が深すぎるので、思いっきりざっくりと行きます。

本記事のポイント

  • パーティクルシステムの使い方。
  • 画像をパーティクルシステムで使いたいとき。

パーティクルシステムでエフェクトを作る

パーティカルをシーンに置いてみます

まずはパーティクルをシーンに置いてみましょう。

パーティクルシステムを使ったエフェクト実装例(その1パーティクルをシーンに置く)

  1. ヒエラルキー上で右クリック>エフェクト>パーティクルシステムをクリック 名前は「StarEffect」にしました。
  2. シーンビューに白い四角を出す噴水みたいのが出てきたと思います。これがパーティクルです。とりあえずTransformの位置を「0,0,0」にして原点に置きましょう

少しずつ設定していきましょう。

パーティクルの設定をいじってみよう

クリックして星が出るエフェクトを目指していきます。

パーティクルシステムを使ったエフェクト実装例(その2パーティクルを設定してみよう)

  1. 今はパーティクルを放出し続けています。クリックしたときだけで放出したいので、まずはループのチェックをはずします。これで再生を押すと「継続時間+開始時の生存時間」再生して止まると思います。
  2. まだ長いので「継続時間」を「0.4」「生存期間」を「0.35」くらいにしてみます。
  3. 少し粒子が大きいので「開始時のサイズ」「2つの値間でランダム」にして「0.2」「0.8」に設定してみます。
  4. 少し散りすぎな感じがするので「開始時の速度」を少し遅くして「2.5」くらいにしてみます。
  5. 自動的にDestroyさせたいので「アクションを停止」を「破棄」に設定します。
  6. 次は「放出」を見てみます。「放出」のところクリックすると項目が開きます。
  7. 「バースト」の「+」をクリック 「時間」(放出のタイミング)を「0.1」、「数」を「5」に設定してみました。
  8. 次は「形状」を見てみます。
  9. 「スフィア(球状)」にして「半径の厚さ(放出のボリューム)」を「0.5」に設定しました。
  10. 散りながら回転させたいので「生存期間の回転」で「角速度」を「45」にしてみました。
  11. だいたい形が出来てきたので、「★」を出していこうと思います。

確認はパーティクルエフェクトパネルの再生で出来ます。

パーティクルシステムで画像を使う

パーティクルシステムで画像を使うとしましたが、実際は画像をそのまま使うことはできません。画像をマテリアルにして、そのマテリアルを使っていきます。なのでまずマテリアルを用意します。

パーティクルシステムを使ったエフェクト実装例(その3マテリアルの準備①)

  1. プロジェクトで右クリック>「作成」>「マテリアル」をクリック。名前は「Star」にしました。
  2. 作成したマテリアルを選択してインスペクターを確認します。「Shader」(陰影の計算処理方法)を選択します。パーティクルで使うので「Particle>StandardSurface」やもっと簡単に済ませたいなら「Mobile>Particle>Additive」あたりを、「UnivarsalRenderPipeline」を使用してる場合は「UnivarsalRenderPipeline>Particle>Lit」あたりを選択してください。
  3. 今回は「UnivarsalRenderPipeline>Particle>Lit」を使用します。

マテリアルがピンクになってしまった時

  1. 原因はShaderが環境に合ってないため。よくあるのが「UnivarsalRenderPipeline」を使っているのに「Standard」のシェイダーになってる場合です。
  2. その場合インスペクターでShaderを「UnivarsalRenderPipeline」のものに変更してあげる
  3. もしくはマテリアル選択した状態で「編集」>「レンダリング」>「選択したビルトインマテリアルをURPに変換」で直ると思います。

画像をマテリアルに適用します。Shaderによって設定方法は違います。今回は「UnivarsalRenderPipeline>Particle>Lit」の場合です

パーティクルシステムを使ったエフェクト実装例(その3マテリアルの準備②)

  1. インスペクターの「サーフェスオプション」を確認
  2. 「サーフェスタイプ」を「Transparent」します。
  3. 今回は★で明るくしたいので「ブレンドモード」を「Additive」(加算)にします。
  4. 「レンダー面」を「Both」にします。
  5. 「カラーモード」「Overlay」にしました。
  6. 「サーフェス入力」の「べースマップ」の小さい四角の部分に今回使う★の画像をドラッグアンドドロップします(色は#FDF0B5にしました)。
  7. マテリアルに画像が反映されたと思います。

マテリアルをパーティクルシステムに反映させます。

パーティクルシステムを使ったエフェクト実装例(その4マテリアルの反映)

  1. パーティクル「StarEffect」のインスペクターの「レンダラー」を確認
  2. 「マテリアル」を今作成した「Star」します。
  3. これでパーティクルシステムに画像が反映されたと思います。
  4. ソートレイヤーを「Effect」(作成してなかったらUIの奥になるように作成します)に変更。
  5. あとはお好みでいろいろ調整してみてください。
  6. 最後にプレハブ化します。

プレハブ化してInstantiateします

パーティクルシステムを使ったエフェクト実装例(その5スクリプト)

  1. スクリプトを変更して、プレハブ化したエフェクトをアサインします。
class EffectManager
public class EffectManager : MonoBehaviour
{
    //省略
    [SerializeField] GameObject StarEffect;
    //省略
    
    //EffectManagerの子にScoreEffectをインスタンス化します
    public void ShowStarEffect(Vector3 pos)
    {
        Instantiate(StarEffect, pos, Quaternion.identity, this.gameObject.transform);
    }
    
    //省略
}

スクリプトざっくり解説

  • インスタンス化するコード
class EnemyController

    public void ClickedEnemyAction()
    {
        effectManager.ShowStarEffect(this.gameObject.transform.position);

    //省略

    }

スクリプトざっくり解説

  • クリック時にエフェクトを出します。

パーティクルシステムを使ったエフェクトでした。ぜひいろいろなエフェクトを試してみてください。

まとめ

まとめ

  • パーティクルシステムを使うといろいろなエフェクトが作れる。
  • パーティクルシステムで画像を使いたいときはマテリアルを作成する。
  • マテリアルがピンクになっているときはShaderのモードを確認してみる
ユニティちゃん公式ホームページへ
ユニティちゃん公式ホームページ
ユニティちゃんライセンス
ユニティちゃんの画像、素材、ライセンスロゴはユニティちゃんライセンス条項を元に使用しています

\ Unityのスクリプトを書くのに役立ちます /

もっと早く教えてほしかった!Unity C#入門

MARU

マケイヌ的おすすめ度

わかりやすい度

目指せ脱初心者

〇おすすめポイント

ボリューム大でC#学習にもよく使う関数のチェックにもOK

×よくないポイント

始めたばかりの人にはちょっと難しい

\ 初学に使った書籍です /

動画×解説でかんたん理解! Unityゲームプログラミング超入門

大角 茂之/大角 美緒

マケイヌ的おすすめ度

わかりやすい度

提供素材がよくてテンション上がる度

〇おすすめポイント

素材が良くてモチベがあがります。

×よくないポイント

動画解説前提なので図版が小さいのが玉に瑕

おすすめ記事

 

プロフィール

マケイヌ

人生のメインストリームから外れた40代の♂。

90年代オルタナにはまり、文字通りメインストリームから逸脱。 その後もたびたび人生から逃亡。

心が動いた作品の紹介や 自分のちいさな経験、HowToを発信できればと日々模索中。

1年後までにイラストと写真のポートフォリオをつくりたい。

記:2019年12月

▼プロフィールはこちら

Follow me

アーカイヴ