テキスト表示の詳細


宴では、ノベル用のテキスト表示のための、特殊な機能がいくつかあります。

基本的な機能

改行について

改行は、エクセルのセル内で「Alt+Enter」を入力することで追加できます。また、\nを入力することでも改行可能です。改行は、後述のテキストタグとも併用できます。

自動改行・禁則処理について

宴ではメッセージウィンドウに大きさに合わせて自動的に改行処理がされます。自動改行のときに禁則処理がされます。
禁則処理とは、区切りの悪いところでの改行を禁止する処理です。
行頭に 、 。 などが来ないよう。行末に 「  { などがこないように改行されます。
また、英単語の途中で改行されないWord Wrap処理もされます。
禁則処理の概念について詳細はこちら(宴ではリンク先の全て規則が適用されるわけではありません)

禁則文字の設定は、TextSettingsで細かな設定が出来ます。

文字間を無視する特殊な文字について

…… などのように同一文字が連続する場合、文字間の余白を無視する設定が出来ます。
これも、TextSettingsで、どの文字に対して設定するか変えることができます。

UguiNovelTextとUguiNovelTextGenerator

宴ではノベル用のテキスト表示のために、Unity標準のTextコンポーネントを拡張したUguiNovelTextコンポーネントを使ってメッセージウィンドウなどを表示するようにしています。
UguiNovelTextで設定可能な項目は、Unity標準のTextコンポーネントと同じです。宴独自の設定は、UguiNovelTextGeneratorから調整できます。

プロパティ名 説明
Space スペースのサイズ(-1)の場合、フォントファイルで設定されている大きさをそのまま使う
Letter Space Size 文字間のサイズ
Word Wrap 自動改行時の方法
Length Of View 表示する文字数。-1でテキスト全てを描画。主に、文字送りのために使うので、自動的に変化することが多い
Text Settings 禁則文字などテキストの詳細設定
Ruby Size Scale ルビの文字サイズを、通常文字のサイズと比べてどれくらいの大きさにするかの倍率。通常は0.5倍
Sup or Sub Size Scale 上付き文字、下つき文字タグを使った場合の文字サイズを、通常文字のサイズと比べてどれくらいの大きさにするかの倍率。通常は0.5倍
Emoji Data 絵文字データ
Dash Char ダーシタグや、アンダーライン表示に使う文字。デフォルトでは全角ダッシュ(—)なので、別の文字にしたい場合や、bmpフォントに用意されているのが半角ダッシュなど別の文字しかない場合に使用
Bmp Font Size Custom Font、Unicode Fontを使う場合の、画像に書き込んだ際のフォントサイズ
Is Unicode Font Unicode Fontを使う場合はチェックを入れる

TextSettings

「禁則処理」や「スペースを空けない文字」の設定は、UguiNovelTextGeneratorコンポーネントに設定してある、TextSettingsというオブジェクトの中で調整することがができます。
各オブジェクトのインスペクター内を調整するのではなく、プロジェクトで共通の設定を使えるようにScriptableObjectで設定できるようになっています。

プロパティ名 説明
Word Wrap Separator スペース以外の、英単語の区切り文字
KinsokuTop 自動改行時に、行頭に置くことを禁止する文字
KinsokuEnd 自動改行時に、行末に置くことを禁止する文字
Igonore Letter Space 同じ文字の文字間スペースを無視する文字(主に……などに使う)
Auto Indentation 自動字下げ。先頭がこの文字だった場合は、2行目以降はその文字の幅ぶん自動で字下げする

Auto Indentationの例

TextSettigsオブジェクトの作成方法

宴2.11以前のプロジェクトの場合は、手動でTextSettigsオブジェクトを作成する必要があります。
2.12以降で作ったプロジェクトであれば、プロジェクト作成時に自動作成されていますが、テキスト表示方法複数設定したい場合は、手動作成して設定することもできます。

作成Projectビュー→Create→Utage→TextSettingsから作成してください。

フォント設定の注意

フォントは初期状態ではUnityのArialフォントが設定されています。
これを設定しておけば、基本的にはデバイスに組み込まれてる基本フォントを使えるのですが、少し問題があるケースもあります。
ただし、特にiOSなどではOSのバージョンアップでフォントが文字化けしてしまうことがあります。
ですので、自分で.ttfファイルなどをUnityにインポートして、フォントを設定することをお勧めします。
また、WebGLではフォントはArialでは日本語は表示できませんので、やはり自分でフォントを設定するようにご注意ください。(Unity5.3で確認)