【Unity】RPGを作るチュートリアルその117 タイトル画面とメニュー画面の効果音を実装

【Unity】RPGを作るチュートリアルその117 タイトル画面とメニュー画面の効果音を実装

シンプルなRPGをUnityで作るチュートリアルシリーズの117回目です。

第116回では戦闘画面のBGMや効果音など、オーディオ関連の機能を実装しました。

今回はタイトル画面の効果音、メニュー画面の効果音を実装します。効果音に関しては対象が多いので順番に実装していきましょう。

 

 

制作環境

MacBook Pro 2023 Apple M2 Max

Unity6 (6000.0.30f1) Silicon

 

作業内容と順序

シンプルなRPGを作る上でどんな作業が必要か、どんな順番で作っていくと良さそうか、別ページで検討しました。基本的にこの流れに沿って進めていきます。

 

チュートリアルの一覧

このシリーズ全体の一覧は以下のページにまとめています。

 

前回の内容

前回は戦闘画面のBGMや効果音など、オーディオ関連の機能を実装しました。

 

タイトル画面の効果音

前回は戦闘画面の効果音を実装しました。小規模なゲームではありますが、戦闘画面以外にも効果音をつけていきたい部分はたくさんあるので、順番に実装していきましょう。

まずはタイトル画面から効果音を実装します。タイトルメニューでの選択、ロード画面での選択とキャンセルが対象になります。

 

TitleMenuWindowControllerの変更

「TitleMenuWindowController」ではタイトル画面の「はじめから」や「つづきから」のメニューを制御しています。項目を選択した際に効果音を再生するようにします。

項目選択時はOnPressedConfirmButton()のメソッドが呼ばれるので、このメソッド内で効果音を再生するようにします。

 

TitleContinueControllerの変更

「TitleContinueController」ではロード画面の動作を制御しています。項目の選択時、キャンセル時の2箇所で効果音を再生するようにします。

OnPressedConfirmButton()のメソッドでは項目選択時の効果音を、OnPressedCancelButton()のメソッドではキャンセル時の効果音を再生します。

 

メニュー画面の効果音

移動中に表示できるメニュー画面に関しても効果音を入れていきます。メニューの開閉、トップ画面から順番に実装していきましょう。

 

メニューの表示

メニューを開く際には選択時の「ピッ」という効果音を再生したいと思います。まずは「MenuManager」を変更しましょう。

CheckOpenMenuKey()のメソッドでは、メニューを開くときに選択時の効果音である「SeNames.OK」を再生します。

 

メニューのトップ画面

「TopMenuWindowController」を変更します。

メニューのトップ画面では、SelectCommand()で直接分岐しているのでここで効果音の再生処理を追加します。メニューの項目を選択する際に決定ボタンを押した時には「SeNames.OK」を再生し、キャンセルボタンを押した時には「SeNames.Cancel」を再生します。

 

メニューのアイテム画面と魔法画面

アイテム画面と魔法画面では共通してウィンドウを制御しているので「MenuItemWindowController」のクラスを変更します。

決定ボタンを押した時に呼ばれるOnPressedConfirmButton()ではreturnで抜ける可能性のある部分以降に効果音を再生するようにします。これは何もしていないのに効果音だけ再生されるのを防ぐためです。

キャンセルボタンを押した時に呼ばれるOnPressedCancelButton()ではそのままキャンセル時の効果音を再生します。

 

メニューの装備画面

装備画面では、装備する部位を選択する「MenuEquipmentPartsWindowController」と装備するアイテムを選択する「MenuEquipmentSelectionWindowController」のそれぞれで効果音再生の処理を追加します。

まずは「MenuEquipmentPartsWindowController」から変更します。

こちらのクラスではOnPressedConfirmButton()で選択時の効果音、OnPressedCancelButton()ではキャンセル時の効果音を再生します。他のクラスでも同じ名前でメソッドを作っているので、実際の開発ではプロジェクト内のコードをメソッド名で検索して効果音を埋め込んでいくと楽です。

続いて「MenuEquipmentSelectionWindowController」についても変更します。

こちらのクラスでもOnPressedConfirmButton()で選択時の効果音、OnPressedCancelButton()ではキャンセル時の効果音を再生します。OnPressedConfirmButton()ではreturnで抜ける可能性がある部分以降に効果音を再生するようにしています。

 

メニューのステータス画面

ステータス画面を制御する「MenuStatusWindowController」を変更します。

こちらも決定時、キャンセル時に対応する効果音を再生します。ステータス画面の場合は押したボタンによって動きは変わらないのですが、効果音は他と合わせてボタンに対応させます。

 

メニューのセーブ画面

セーブ画面を制御する「MenuSaveWindowController」を変更します。

OnPressedConfirmButton()では選択時の効果音を再生します。

 

OnPressedCancelButton()ではキャンセル時の効果音を再生します。

 

メニューの終了画面

メニューの終了画面では選択肢ウィンドウを使用します。選択肢ウィンドウ側で効果音再生を入れておくと、選択肢ウィンドウを使用する他のクラスでも一貫して効果音を再生できるので「MenuSaveWindowController」を変更します。

こちらも決定ボタンを押した時とキャンセルボタンを押した時に対応する効果音を再生します。

 

動作確認

スクリプトを保存したら動作を確認しましょう。

「Title」シーンを開いてゲームを実行して、タイトルメニューの項目を選択した際に効果音が再生されることを確認します。また、「つづきから」を選択して表示されるロード画面にて、決定ボタンを押した時、キャンセルボタンを押した時にそれぞれ対応する効果音が再生されることを確認します。

「はじめから」または「つづきから」を選択してゲームを開始して、メニュー画面を開く時の効果音、メニュー項目でそれぞれ対応する効果音が再生されることを確認します。

メニュー画面の効果音を確認
メニュー画面の効果音を確認

 

もし効果音が再生されていない部分があれば、このページの目次と見比べて抜け漏れがないかご確認ください。私が忘れている部分があったらコメントでこっそり教えてください。

 

今回のブランチ

 

まとめ

今回はタイトル画面の効果音、メニュー画面の効果音を実装しました。効果音を後から入れる場合、コード内に固定の文字列でコメントを入れておくと実装時に分かりやすくなるかもしれません。

次回はイベント関連の効果音を実装していきます。

 

     

ゲーム開発の攻略チャートを作りました!

CTA-IMAGE

「ゲームを作ってみたいけど、何から手を付けていいか分からない!」


そんなお悩みをお持ちの方向けに、todoがアプリをリリースした経験を中心に、ゲーム作りの手順や考慮すべき点をまとめたe-bookを作成しました。ゲーム作りはそれ自体がゲームのように楽しいプロセスなので、「攻略チャート」と名付けています。


ゲームを作り始めた時にぶつかる壁である「何をしたら良いのか分からない」という悩みを吹き飛ばしましょう!