レッスン 3.4 - パーティクルとサウンドエフェクト
Tutorial
·
Beginner
·
+0XP
·
60 mins
·
(173)
Unity Technologies

概要:
ここまででゲームはよく出来上がってきているように見えますが、決定的なものが欠けています。サウンドエフェクトとパーティクルエフェクトです。サウンドと音楽は、静かなゲーム世界に生命を吹き込みます。サウンドと音楽は静かなゲーム世界に息を吹き込み、パーティクルはプレイヤーのアクションをよりダイナミックで目を見張るようなものにします。このレッスンでは、キャラクターが走ったり、ジャンプしたり、障害物にぶつかったりするときに、クールなサウンドとパーティクルによるエフェクトが再生されるようにします。
プロジェクトの成果物:
プレイヤーがシーンの中を走っている間、足元に土けむりのパーティクルが表示され、音楽が再生されるようにします。また、ジャンプ時にはバネのような音が、障害物にぶつかった時には爆発音が鳴り、転んで煙のパーティクルがもくもくと上がるようにします。
Languages available:
1. 導入
2. 爆発のパーティクルをカスタマイズする
最初に加えるパーティクルエフェクトは、プレイヤーが障害物に衝突したときの爆発です。
- Course Library > Particles から、FX_Explosion_Smoke を Hierarchy にドラッグし、Play / Restart / Stop ボタンを使ってプレビューします。
- パーティクルシステムの設定を調整して思った通りのエフェクトにします。
- 「Play on Awake」のチェックを外していることを確認してください。
- パーティクルをプレイヤー上にドラッグして子オブジェクトにし、プレイヤーに対する相対位置で位置を決めす。
3. 衝突時にパーティクルを再生する
パーティクルエフェクトや、衝突時に使える爆発のエフェクトを見つけましたが、再生するには、それを Player Controller に割り当てて、新しくコードもいくらか書く必要があります。
- PlayerController.cs で、新しく public ParticleSystem explosionParticle を宣言します。
- インスペクターで、explosion を explosion particle 変数に割り当てます。
- プレイヤーが障害物に衝突する if 文で explosionParticle.Play(); を呼び出して、パーティクルのプロパティのテストと微調整を行います。

4. 土ほこりのパーティクルを追加する
次に必要なパーティクルエフェクトは、土ほこりです。これは、プレイヤーがシーン内を走るときに地面を蹴り上げているように見せるためのものです。このパーティクルは、プレイヤーが地面にいるときにのみ再生されるようにします。
- FX_DirtSplatter を Player の子オブジェクトとしてドラッグし、位置を変えたり、回転させたり、設定を編集したりします。
- 新しく public ParticleSystem dirtParticle; を宣言し、インスペクターで割り当てます。
- プレイヤーがジャンプしたり、障害物に衝突したりした場合の処理に、dirtParticle.Stop(); を追加します。
- プレイヤーが地面に着地したときの処理に dirtParticle.Play(); を追加します。

5. カメラオブジェクトに音楽を追加する
パーティクルエフェクトは良い感じになってきたので、サウンドに移りましょう。音楽を追加するには、カメラにサウンドコンポーネントをアタッチする必要があります。結局のところ、カメラはシーンを見る目で、シーン中の音を聞く耳でもあるということです。
- Main Camera オブジェクトを選択し、Add Component > Audio Source の順に選択します。
- Course Library > Sound から、インスペクターの AudioClip 変数にミュージッククリップをドラッグします。
- サウンドエフェクトが聞き取りやすくなるように音量を下げます。
- Loop チェックボックスにチェックを入れます。
6. オーディオクリップに対して使う変数を宣言する
さて、素敵な音楽が流れるようになったので、次はサウンドエフェクトを追加してみましょう。今度はカメラではなく、プレイヤーからオーディオクリップが出力されます。
- PlayerController.cs で、新しく public AudioClip jumpSound; と public AudioClip crashSound; を宣言します。
- Course Library > Sound から、インスペクターの新しい sound 変数にクリップをドラッグします。
7. ジャンプ時と衝突時にオーディオを再生する
PlayerController でジャンプと衝突にオーディオクリップを割り当てました。あとは、適切なタイミングでこれらのクリップを再生して、ゲームに完全なオーディオ体験を追加しましょう。
- プレイヤーに Audio Source コンポーネントを追加します。
- 新しく private AudioSource playerAudio; を宣言し、playerAudio = GetComponent<AudioSource>(); として初期化します。
- ジャンプ時に playerAudio.PlayOneShot(jumpSound, 1.0f); を呼び出します。
- キャラクターが障害物に衝突した時に playerAudio.PlayOneShot(crashSound, 1.0f); を呼び出します。

8. レッスンのまとめ
新機能:
- ゲーム中に音楽が流れる
- 走ったときにプレイヤーの足元にパーティクルエフェクトがかかる
- 障害物にぶつかった時の効果音と爆発
新しい概念とスキル:
- パーティクルシステム
- 子オブジェクトの位置決め
- オーディオクリップとオーディオソース
- 効果音の再生と停止
全体のまとめ:
私たちは信じられないほど洗練されたゲームを作りました。素敵なサウンドやパーティクルエフェクトがつけられ、アップビートなBGMもあります。キャラクターのアニメーションを利用する方法を学び、背景を無限にスクロールさせるプログラミング上の仕掛けも実装しました。