「宴」で画面いっぱいにテキストを表示する~走れメロス~


全画面のテキスト

宴2.3.0から画面全体にテキストを表示することが可能になりました。
ここでは、サンプルとして「走れメロス」の冒頭部分をノベルゲーム化してみました。

サンプルのDL

サンプルファイルは走れメロスサンプルからダウンロード可能です。

シナリオデータの書き方

基本的な使い方は、通常と変わりません。
PageCtrl列に以下の設定をすることで、改ページせずに同じページで次のテキストを表示したり、別のコマンドを実行することができます。

PageCtrl 内容
Input 入力待ちをした後、次のコマンドを実行
InputBr 入力待ちをした後、改行してから、次のコマンドを実行
Next 入力待ちをせずに次のコマンドを実行
空欄 改ページ入力待ち

サンプル

UIについて


テキスト表示部分の大きさは、UnityのプロジェクトビューのAdvEngine>UI>MessageWindowで変えることができます。

ノベルタイプの場合、メッセージの背景は非表示の場合が良いかもしれません。
Imageのチェックをはずしたり、ColorのA値(半透明度)を調整すると良いでしょう。

バックログ

バックログは通常であれば、1ページ内の行数によらず、大きさが固定になってしまいます。
BaclLogItemプレハブのIsMultiTextのチェックをオンにすると、テキストの行数でバックログの大きさを変えることができます。
さきほどと同じく、Imageのチェックを外すことで背景も非表示にできます。

この状態では、バックログは一ページ内に複数のボイスがある場合、このように該当箇所のテキストをクリックすることでボイスの再生が可能になります。

文字表示の高速化

この手法では、1ページ内に文字をさくさんの文字を表示する必要があります。
日本語であれば、あまり問題ならないかもしれませんが、英語圏ですと500~1000文字近く表示するケースもあります。
その場合に、アウトライン(文字の縁取り)の処理が原因で非常に高い負荷がかかることがあり、FPSが10などに低下して画面がコマ落ちしてしまうことがあります。
その問題への対応はこちらにまとめました。