Unityのアドベンチャーゲーム制作アセットAdventure Creator の公式サイトに掲載されている英語のチュートリアル を翻訳しながら進行中。今回は会話の音声ファイルを再生する方法について勉強です。
キャラクターが話しているときに音声を追加すると、ゲームの没入感を大きくすることができます。Adventure Creatorは、手動で各音声ラインにオーディオファイルを割り当てるのではなく、そのようなファイルに特定の命名規則を適用するよう要求することによって、プロセスを自動化します。
キャラクターが音声ファイルを再生するには、Audio Sourceコンポーネントがキャラクターオブジェクト階層のルートにアタッチされている必要があります。これは、[Project]ウィンドウ > Assets 以下の階層からキャラクターのプレハブを選択。[Inspector]ウィンドウ > [Add Component]ボタンをクリック > Audio > Audio Sourceを選択してコンポーネントの追加します。
音声ファイルを再生するには、Adventure Creatorがゲームを通してセリフの各行に一意のID番号を割り当てる必要があります。これができるようにするには、ゲームのすべてのシーンがBuild Settingsに追加されていることを確認する必要があります。
Build Settingsにシーンを追加するには、まずシーンを開き、メニュー:Filet > Build Settingsを選択します。
必要なシーンをすべて[Scenes in build]リストに追加したら[AC Game Editor]ウィンドウ > [Speech]タブをクリックします。
Speech manager > Asset file: フィールドにDemo Speech managerのいずれかを割り当ててある場合は設定解除し、peech managerを複製して割り当てるか、メニュー:Adventure Creator > Getting Standard > New Game wizardで新しい音声マネージャを作成、割り当てます。
今回使用するシーンでは後ほど書き出すscript sheetの一覧でPlayer名がファイル名になるよう、次の設定にチェックを入れています。[AC Game Editor]ウィンドウ > [Speech]タブ:Speech manager > Speech audio > [✓] Use Player prefab name in filenames?
Speech manager > Game text > [Gather text]ボタンをクリックします。
「作業を続ける前にプロジェクトのバックアップを推奨します」という注意メッセージが表示されたら[OK]ボタンを押してテキスト収集処理を開始します。
Adventure Creatorはゲームで表示されたテキストを検索し、それを下部に表示します。Speech manager > Game text > Scene filter: [(Any or no scene)]を選択するとテキスト一覧が表示されます。
テキスト各行の左側の番号はID番号です。Sort by: フィールドを切り替えることで表示順を切り替えることができます。
スピーチテキストだけを含むファイルを作成するには、Game text > [Create script sheet]ボタンをクリックします。スクリプトファイルを保存するように求められます。
保存されたhtmlファイルをWebブラウザで開きます。
Webブラウザによっては日本語が文字化けして次のように表示される場合があります。
文字化けを修正するにはhtmlファイルをメモ帳などで開いて、ソースの3行目にある”content=’text/html;charset=ISO-8859-1′”を削除して上書き保存。もう一度Webブラウザで開きます。
<html> <head> <meta http-equiv='Content-Type' content='text/html;charset=ISO-8859-1' charset='UTF-8'> <title>TestGame</title>
これらの行は、シーンが表示されるシーンごとにグループ化され、関連するオーディオファイルに必要なファイル名も表示されます。オーディオファイルは、Unityがネイティブでサポートするオーディオ形式(mp3やoggなど)を使用することができます。たとえば、上記の最初の行には、Player288.mp3またはPlayer288.oggのいずれかのオーディオファイルを含めることができます。
オーディオファイルを作成したら、Resourcesフォルダ内のSpeechというサブフォルダ内に配置する必要があります。重要な点は、このResourcesフォルダ自体ではなく、Assets / “My Game” / Resources/Speechなどとした有効なファイルパスであるということです。
ゲームのテキストが複数の言語で利用可能な場合は、音声言語を複数の言語で再生することもできます。翻訳されたオーディオのファイル名はオリジナルと同じですが、言語と同じ名前のサブフォルダに配置する必要があります。たとえば、フランス語の翻訳は、Assets / “My Game” / Speech / Frenchに配置する必要があります。
ゲームの翻訳の作成について詳しくは、このチュートリアル をお読みください。
ということでセリフに音声ファイルを割り当てる方法がだいたいわかりました。script sheetに書き出されたファイル名に合わせて音声ファイルを用意してSpeechフォルダに入れればOK。というかなり簡単な方法ですが本当にうまくいくのでしょうか?次回は実際に音声ファイルの作成から再生までを行ってみたいと思います!