4
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Unityでサウンドをつける方法

Last updated at Posted at 2024-04-21

はじめに

今回はボールが跳ねる動作を用いて,3Dオブジェクトに音をつける方法を教えて行きたいと思います.以下のような手順で進めて行きたいと思います.サウンドをつける方法だけを知りたい人は,5番だけをみてもらえればいいと思います.

手順

  1. プロジェクトを立ち上げる
  2. 床とボールを作る
  3. ボールに物理法則を適用させる
  4. 跳ねさせる
  5. はねる音を追加

1.プロジェクトを立ち上げる

新しいプロジェクトから3Dを選び,適当な名前をつけます.
 スクリーンショット 2024-04-21 16.43.18.png

2.床とボールを作る

床の作成
Hierarchyタブの空いている場所を右クリックするとメニューが出てくるので,3D ObjectからPlaneを押す.
スクリーンショット 2024-04-21 16.46.20.png

Inspectorタブでは,オブジェクトについて,様々な設定ができる.名前を変えたり,座標を決めたり,一番したのAddComponentからコンポーネントを追加する.
スクリーンショット 2024-04-21 17.34.25.png

ボールの作成
ボールも同様にして,Hierarchyタブを右クリックし,3D ObjectからSpereを押す.
スクリーンショット 2024-04-21 16.47.20.png

Inspectorタブの内容を写真のようにする.ボールは上から落としたいため,座標を(0,5,0)にしている.
スクリーンショット 2024-04-21 17.42.22.png

3.ボールに物理法則を適用させる

Hierarchyタブのボールを選択し,.InspectorタブのAddComponentからRigidbodyを選択する.
これで,ボールが自由落下するようになる.
スクリーンショット 2024-04-21 16.48.09.png

RigidbodyのMassが重さ(kg)を表すので任意の値を入れる.他の値が気になる人は,以下の公式のリンクを見てほしい.

4.跳ねさせる

Assetの空いている場所を右クリックするとメニューが出てくるため,Createから,PhysicMaterialを押す.
スクリーンショット 2024-04-21 16.49.37.png

追加したPhysicMaterialを選択し,InspectorタブからBouncingの値を0.8にする.この値は反発係数であるため,高いほどよく跳ね返り,低いほど跳ね返りが小さい.
スクリーンショット 2024-04-21 16.50.01.png

そして,作ったPhysicMaterialを各オブジェクト(ballとfloor)のColliderのMaterialに追加する(写真の青文字の場所).PhysicMaterialを各オブジェクトにドラック&ドロップすることでも追加できる.
スクリーンショット 2024-04-21 16.52.23.png

5.はねる音をつける

音探し
今回は効果音ラボの生活[3]サッカーボールの跳ねる1を利用した.

利用したい音のファイルをUnityのAssetに追加する.ドラック&ドロップすれば追加できる.

Assetを右クリックして,CreateからC# Scriptを押す.
スクリーンショット 2024-04-21 18.16.54.png

追加したScriptをVScodeなどのエディターで開く.
今回私は,C# Scriptの名前をSoundOfBound.csとしたため以下のコードを書き込み,保存する.

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

public class SoundOfBound : MonoBehaviour
{
    public AudioClip collisionSound; // 再生する音源を設定
    
    private void OnCollisionEnter(Collision collision) {
        AudioSource.PlayClipAtPoint(collisionSound, collision.GetContact(0).point);
    }
}

そして,このScriptをballのコンポーネントに追加して,変数collisionSoundのところに先ほどの音のファイルを選択する.

スクリーンショット 2024-04-21 18.38.01.png

違う名前のScriptにしたい場合はpublic class SoundOfBoundのSoundOfBoundを変えればいい.
もし,床にぶつかった時のみ音が鳴るようにしたかったらSoundOfBound2.csのようなif文を書けばいい.

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

public class SoundOfBound2 : MonoBehaviour
{

    public AudioClip collisionSound; // 再生する音源を設定
    private void OnCollisionEnter(Collision collision) {
        if (collision.gameObject.name == "floor")
        {
            // 指定した音源を再生
            AudioSource.PlayClipAtPoint(collisionSound, collision.GetContact(0).point);
        }
    }
}

以上,最後までお読みいただきありがとうございました!
GitHubのリンク載せておくので,好きなように使ってください!

4
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?