Unityのアドベンチャーゲーム制作アセットAdventure Creatorの公式サイトに掲載されている英語のチュートリアル を翻訳しながら進行中。前回のチュートリアルで勉強した音声ファイルの再生方法を実際に試して見たいと思います。
というわけで、まずは前回のチュートリアルで出力したscript-sheetの内容を確認しましょう。セリフ部分だけを抜き出しましたこちらの通りです。
このセリフの音声を作成する方法としては自分でしゃべって録音する。という方法もありますが、ここはテキスト読み上げソフトを使ってみました。フリーソフトのテキスト読み上げソフト「テキストトーク」を使用しました。
「テキストトーク」を起動て画面にセリフのテキストを入力してみました。画面はこんな感じです。
画面右上にある再生ボタンを押すとテキストを読み上げてくれます。音声は音声ファイルとして出力することができます。
音声の種類は男性1種類、女性7種類です。入力したテキストを男性と女性でそれぞれ出力するとこんな感じになりました。読み上げ速度が1.0だとちょっと早口のようだったので0.8に下げました。
男性 (日本語) [Open JTalk]
女性 (日本語:普通のメイ) [Open JTalk]
…なんとも言えない感じですが、取り合えずこれでいきましょう。
「テキストトーク」で出力した音声ファイルをセリフごとにファイルを分割する必要があります。音声ファイル編集のフリーソフト「Audacity」を使用して編集を行います。
Audacity® Free, open source, cross-platform audio software for multi-track recording and editing
さて、テキストトークで出力した音声ファイル(WAV形式)をAudacityにインポートしました。こんな感じです。
テキストトークで出力した音声ファイル(WAV形式)をAudacityにインポートするとプロジェクトのサンプリング周波数が48000 Hzになるのでここを44100Hzに変更しておきます。
トラックの音量を調整しておきましょう。メニュー:エフェクト > 正規化を選択。次のように設定します。
さらに音圧を揃えておきましょう。メニュー:エフェクト > コンプレッサーを選択。次のように設定します。
調整後の音声波形はこんな感じになりました。セリフの場合、音圧を上げすぎて「海苔波形」になると不自然になるのでほどほどにしました。
ちなみに「海苔波形」が気になった方はこちらへどうぞ。
Google検索:海苔波形
さて、調整が終わったので音声トラックから書き出したい部分を選択します。
選択した部分をファイルに書き出します。メニュー:ファイル > 選択したオーディオの書き出し…を選択。
ファイル保存ダイアログが開いたら、script-sheetのファイル名を入力し、”WAV(MIcrosoft) 16bit PCM 符号あり”形式で保存します
すべてのセリフに合わせて、波形の部分選択 > 選択したオーディオの書き出しを繰り返します。今回は合計13ファイルになります。
単純作業が結構大変な音声ファイルの切り分け保存が終わったら、Unityにインポートしましょう。script-sheetに書いてあるファイルパスを参考にします。今回は[Project]ウィンドウ > Assets > TestGame > Resources > Speechフォルダにすべての音声ファイルをドラッグ&ドロップでインポートします。
さあ!ゲームを再生してみましょう。ちゃんとセリフ表示に合わせて音声が再生されています。しかし、ちょっとセリフの表示スピードが速いですね。文字を一文字ずつ表示する設定だと音声とのずれが気になるので設定を変更します。[AC Game Editor]ウィンドウ > [Speech]タブ:Speech manager > Subtitlesの設定で文字スクロールのチェックを外します。そしてマウスクリックでセリフのスキップができるようにチェックを入れます。
ついに完成しました。最後にもう一度ゲームを再生しましょう。マウスクリックでセリフの表示が切り替わるようになりました。それから、音声の音量を調整するには、[Esc]キーを押してオプションメニューを表示。 Options > Speech volumeのバーを調整します。
さて、ここまでの内容をWebGLでビルドしたのがこちらになります。
なんだか子供向けの教育ソフトのみたいな内容になってますね。テキスト読み上げソフトを使った音声でも、コミカルな内容など、使いどころはありそうですね。