音を付けよう
映像だけでは伝わらない臨場感を、音が補ってくれる。このチュートリアルでは、UnityのAudioシステムを使って、BGMの再生、効果音の設定、3D空間オーディオ、リバーブゾーン、オーディオミキサーまで学んでいこう。
前提条件
- Unity が起動していて、OpenForge MCP と接続済みであること
- 何かしらのシーンがあること(オブジェクトが配置されていればOK)
- 音声ファイル(.wav や .ogg)がプロジェクトにインポートされていること、またはAIに生成を頼むこと
ステップ1: AudioSourceを追加する
音を鳴らすには、AudioSourceコンポーネントが必要。
あなた:
シーンの中心に空のGameObjectを作って、名前を「BGMPlayer」にして。AudioSourceコンポーネントを追加して
AIの動き: AudioSource付きのGameObjectが作成される。
基本設定
あなた:
BGMPlayerのAudioSourceに以下の設定をして:
- Play On Awake をオンにして(シーン開始と同時に再生)
- Loop をオンにして(ループ再生)
- Volume を0.3にして(BGMは控えめに)
AIの動き: AudioSourceの各プロパティが設定される。
あなた:
BGM用の音声クリップを割り当てて。プロジェクト内にBGMファイルがあれば使って、なければ穏やかなアンビエント系の音を用意して
AIの動き: 音声クリップがAudioSourceのClipに設定される。
あなた:
シーンを再生して、音が鳴っているか確認して
音を鳴らすにはAudioSource(音源)とAudioListener(聴く側)の両方が必要。AudioListenerは通常、メインカメラに自動で付いている。シーン内にAudioListenerが2つ以上あるとWarningが出るので注意しよう。
ステップ2: 3D空間オーディオを設定する
BGMは2D(どこにいても同じ音量)で良いけど、効果音は3D(距離によって音量が変わる)にすると臨場感が出る。
2D音源と3D音源の違い
あなた:
BGMPlayerのAudioSourceのSpatial Blendを0にして。これで完全な2D音源にして
AIの動き: Spatial Blendが0に設定される。プレイヤーがどこにいても同じ音量でBGMが聞こえる。
3D効果音を作る
あなた:
シーン内にある焚き火のオブジェクトにAudioSourceを追加して。パチパチという炎の効果音を割り当てて。以下の設定にして:
- Spatial Blend を1(完全3D)にして
- Min Distance を2メートルにして
- Max Distance を15メートルにして
- Loop をオンにして
- Volume を0.8にして
AIの動き: 焚き火オブジェクトに3D AudioSourceが設定される。プレイヤーが近づくと大きく聞こえ、離れると小さくなる。
あなた:
シーンを再生して、焚き火に近づいたり離れたりしたときの音量の変化を確認して
AudioSourceのRolloffモードで、距離に対する音量の減り方を制御できる。
- Logarithmic Rolloff: 現実に近い減衰。近くで急に大きくなる。
- Linear Rolloff: 直線的に減衰。ゲーム的でわかりやすい。
- Custom Rolloff: 自分でカーブを描く。細かい調整が必要なとき。
あなた:
焚き火のAudioSourceのRolloffをLinearに変更して
ステップ3: イベントに効果音を付ける
ゲーム中のアクションに効果音を紐づけよう。
ボタンクリック音
あなた:
UIのボタンをクリックしたときに「カチッ」という効果音が鳴るようにして。AudioSourceを使って、クリックイベントにPlay()を紐づけて
AIの動き: ボタンのOnClickイベントにAudioSource.Play()が設定される。
足音
あなた:
プレイヤーキャラクターが歩くときに足音が鳴るようにして。歩行アニメーションの足が地面に着くタイミングで再生して。AudioClipは複数用意して、ランダムに切り替わるようにして
AIの動き: アニメーションイベントまたはスクリプトで、歩行中の足音が再生される仕組みが作られる。複数のクリップからランダムに選ばれるので、同じ音の繰り返しにならない。
衝突時の効果音
あなた:
オブジェクト同士がぶつかったときに衝突音を鳴らすスクリプトを作って。OnCollisionEnterで再生して、衝突の強さに応じてVolumeを変えるようにして
AIの動き: 衝突検知スクリプトが生成される。弱くぶつかれば小さな音、強くぶつかれば大きな音になる。
短い効果音を鳴らすときは、Play()ではなくPlayOneShot()を使うのがおすすめ。PlayOneShot()は同じAudioSourceで複数の音を重ねて再生できるので、連続して効果音が発生する場面でも音が途切れない。
あなた:
足音のスクリプトをPlayOneShotに変更して
ステップ4: リバーブゾーンを作る
場所によって音の響き方を変えると、空間の広さや素材を感じさせることができる。
あなた:
洞窟エリアにAudio Reverb Zoneを追加して。ReverbPresetをCaveにして。MinDistanceを5メートル、MaxDistanceを20メートルにして
AIの動き: 洞窟エリアにReverb Zoneが配置される。このゾーンに入ると、すべての音が洞窟のように反響して聞こえる。
あなた:
室内エリアにもReverb Zoneを追加して。ReverbPresetをRoomにして
AIの動き: 室内用のReverb Zoneが追加される。
あなた:
洞窟エリアに入ったときと屋外にいるときで、足音の響き方がどう違うか確認して
リバーブのプリセットは場所の雰囲気に合わせて選ぼう。
| 場所 | おすすめプリセット |
|---|---|
| 洞窟 | Cave |
| 大聖堂 | Cathedral |
| 小さな部屋 | Room |
| 廊下 | Hallway |
| 屋外 | Plain(またはリバーブなし) |
ステップ5: オーディオミキサーを使う
複数の音をまとめて音量調整するために、Audio Mixerを使おう。
ミキサーを作る
あなた:
Audio Mixerを作って、名前を「MainMixer」にして。「BGM」「SFX」「Ambient」の3つのグループを作って
AIの動き: 3つのグループ(サブチャンネル)を持つAudio Mixerが作成される。
AudioSourceをグループに割り当てる
あなた:
BGMPlayerのAudioSourceの出力先をMainMixerのBGMグループにして。焚き火のAudioSourceはAmbientグループにして。効果音はSFXグループにして
AIの動き: 各AudioSourceのOutput先がそれぞれのミキサーグループに設定される。
音量バランスを調整する
あなた:
BGMグループの音量を-10dBにして。SFXグループは0dBのまま。Ambientグループは-5dBにして
AIの動き: ミキサーの各グループの音量が調整される。BGMが控えめで、効果音がはっきり聞こえるバランスになる。
設定画面との連携
あなた:
設定画面のスライダーでBGMとSFXの音量を別々に変えられるようにして。ミキサーのExposed Parameterを使って
AIの動き: ミキサーのパラメータがExposeされて、スクリプトからスライダーの値に応じて音量を変更できるようになる。
Audio Mixerにはエフェクトも追加できる。たとえばポーズ中にBGMをローパスフィルターでこもった音にするとか、水中シーンで全体の音をくぐもらせるとか、演出の幅が広がるよ。
あなた:
ポーズ中にBGMグループにLowpass Filterを掛けて、カットオフ周波数を500Hzにして
ステップ6: 全体の確認
すべての音が揃ったら、全体を通して聞いてみよう。
あなた:
シーンを再生して。プレイヤーを動かしながら、以下を確認して:
- BGMが適切な音量でループしているか
- 焚き火に近づくと音が大きくなるか
- 足音がアニメーションに合っているか
- 洞窟でリバーブが掛かるか
AIの動き: AIがシーンを再生して、各項目をチェックしてくれる。
まとめ
このチュートリアルで学んだこと:
- AudioSource -- 音を鳴らす基本コンポーネント
- 3D空間オーディオ -- Spatial Blendと距離による音量変化
- イベント連動 -- ボタンクリック、足音、衝突音の再生
- リバーブゾーン -- 場所に応じた音の響き方の変化
- オーディオミキサー -- 音のカテゴリ別管理とバランス調整
音はゲームの没入感を大きく左右する。AIに「この音をもう少し小さくして」「もっと響くようにして」と伝えながら、心地よいサウンドスケープを作り上げていこう。