
こんにちは!夜の街2Dアクションゲームを制作中の怪獣です🦖
前回の入門では「敵を踏んで倒す処理」を実装しました!
今回はそのアクションに効果音(SE)を追加して、より臨場感を出していきます!
具体的には、
- 「ジャンプした時」
- 「敵にぶつかってダメージを受けたとき」
- 「敵を上から踏んで再ジャンプしたとき」
というタイミングでSEをつけていきます!
SEの鳴らす方法方は色々あると思いますが、今回はAudioSource と PlayOneShot を使った、簡単にできる方法で作っていきます!
この記事でやること
- ジャンプしたときに「ピョン!」という音を出す
- 敵にぶつかってダメージを受けたときに「ダメージ音」を出す
- 敵を上から踏んで再ジャンプしたときにも効果音を出す
①AudioSourceを追加する
Unityで効果音を鳴らすには、主に次の2つを使います。
- AudioSource
音を再生するためのコンポーネント - AudioClip
実際の音声データ
ざっくり言うと、AudioClipが音のデータ、AudioSourceがその音を鳴らす再生機です。
手順
以下の手順で、AudioSourceコンポーネントを追加します!
1.Hierarchyでプレイヤーオブジェクトを選択する。
2.Inspector の Add Component をクリック

3.AudioSource を追加する

勝手にSEが再生されないように、まずはこの2つを設定値をOFFにしておくのがおすすめです!
- Play On Awake:OFF
- Loop:OFF

②効果音ファイルを準備する
- 効果音を管理するフォルダを作り、その中に使用するSEファイル(.wavや.mp3)をいれます
-
Assets/Audio/SEなど
-

今回は、ジャンプ音、ダメージ音を例に進めます!
③効果音を呼び出す処理を書く
Playerスクリプトに、効果音を鳴らす処理を書いていきます!
(★今回追加・・・前回入門記事から追加した処理です)
以下のタイミングにSEを鳴らす処理を追加します。
- 敵を上から踏んで再ジャンプしたとき
- 敵にぶつかってダメージを受けたとき
using UnityEngine;
using UnityEngine.UI;
using UnityEngine.InputSystem;
public class Player : MonoBehaviour
{
[SerializeField] private AudioSource _audioSource;
[SerializeField] private AudioClip _jumpSE;
[SerializeField] private AudioClip _damageSE;
// 敵に触れたときの処理
private void _HitEnemy(GameObject enemy)
{
// 処理省略
// ① プレイヤーが敵の上からぶつかった場合(踏んだとき)
if (playerBottom >= enemyTop)
{
// 処理省略
// ジャンプ効果音(踏んだときも再利用OK)
if (_jumpSE != null)
_audioSource.PlayOneShot(_jumpSE); // ★今回追加
}
// ② 横や下からぶつかった場合(ダメージを受ける)
else
{
// 処理省略
// ダメージ時の効果音を鳴らす
if (_damageSE != null)
audioSource.PlayOneShot(_damageSE); // ★今回追加
}
}
}
以下のタイミングにSEを鳴らす処理を追加します。
- ジャンプしたとき
// ジャンプ処理
public void _OnJump(InputAction.CallbackContext context)
{
// 処理省略
// ジャンプ時の効果音を鳴らす
if (_jumpSE != null)
{
_audioSource.PlayOneShot(_jumpSE); // ★今回追加
}
}_audioSource.PlayOneShot()という処理で、指定した音を1回だけ再生するようにしています。
今回はこの PlayOneShot を使うことで、シンプルに効果音を鳴らしています!
④AudioSource、音声ファイルをアタッチする
このままだと音声ファイルとプログラム上が紐づいていないので、アタッチしていきます!
1.AudioSourceを追加済みのプレイヤーオブジェクトを選択する
2.Inspectorの _audioSource 欄にAudioSourceコンポーネントをドラッグする

3.ソース上で定義した「JumpSE」、「_damageSE」に、音声ファイルをそれぞれドラッグします


ここまで設定すれば全て完了です!
動作確認
ゲームを再生し、動作確認する
| 条件 | 動作 |
|---|---|
| スペースキーでジャンプ | ピョン!と音が鳴る |
| 敵に上から当たる | 敵が消えてジャンプ音 |
| 敵に横から当たる | HPバーが減ってダメージ音 |

効果音をつけることでより2Dアクションゲームらしさが出てきました!
まとめ

最後まで読んでいただきありがとうございました!
今回は、Unityで効果音を鳴らす基本として、PlayOneShot を使った方を紹介しました。
効果音を追加すると、ジャンプやダメージなどの動きがわかりやすくなり、ゲームらしさも一気にアップします!
まずは今回の方法でシンプルに音を鳴らせるようになっておくと、今後ほかの効果音も追加しやすくなります!
この記事が少しでもゲーム制作のお役に立てたら嬉しいです🦖
次回の記事では、ゲーム内でBGMを自動再生する方法を解説します!



コメント