Fungusについての基礎知識はこちらの記事を参照してください。
「そもそもラブデリック語とは?」や「UNITYで(Fungusを使わずに)ラブデリック語を実装する方法」についてはこちらの記事で解説しています。
Fungusの音声再生
はじめに、「moon」と比べるとFungusのデフォルト文字表示速度は速めなので、SayDialog内のWriterコンポーネントのWritingSpeedを18程度に変更しておきましょう。
続いて、Fungusではデフォルトで文字送りの際にBeep音が流れる仕様ですが、これはSayDialog内のWriterAudioコンポーネントで制御されている機能です。
ここのAudioModeを「Beeps」にして、BeepSoundsリストに好きなだけ音を登録すればとりあえずラブデリック語は完成します。超簡単ですね。
ただし、このままでは「同じセリフを喋った時は同じ音を再生する(ランダムテーブルの固定)」という機能にはなりません。
完璧な「ラブデリック語」にするには少々手順が多いですが、難しくはありません。
事前準備
はじめに、特定のコマンドが開始されたことを検知するため、Flowchartオブジェクト内に適当な名前(私は FlowchartSignals という名前にしました)のスクリプトを作って、中身をこう書きます。
次に、Flowchartオブジェクト直下にラブデリック語を使用したいSayDialogオブジェクトを格納します。
これは先ほどのスクリプトから子オブジェクトとして検索するためなので、もっと上手な方法があれば適宜工夫してください。
アセットの中身の書き換えかた
ProjectウインドウからFungus -> Scripts -> Components フォルダにある WriterAudio.csを探して、中身を編集します。
はじめに、固定パターンのランダムテーブルを使用するため、神ブログ(:3[kanのメモ帳]で公開されている固定パターンランダムテーブルクラスをまるごとコピペします。スクリプトの上のほうにでも置いておきましょう。
続いて、BeepSounds音声を再生しているこの箇所を、
このように編集します。
次に、Fungusの初期設定であるフェードイン/フェードアウト機能を無効化する必要がありますので、同スクリプト内の203行目あたりにある
これを
こうします。
そうするとテキスト送りをスキップしたときにテキスト終了が呼ばれないなど予期せぬバグの原因となるので、特別な事情がなければフェードイン/アウト機能自体を無効化するほうがよいと思います。
以上で完成です!
動画でも解説しました。