Unity ノベルゲームの作り方13 TextMeshProの装飾機能を会話文に反映させる | Unity入門の森 ゲームの作り方

Unity ノベルゲームの作り方13 TextMeshProの装飾機能を会話文に反映させる

Unity ノベルゲームの作り方


Unity入門の森オリジナル本格ゲーム制作講座はこちら
11種類の本格ゲームの全ソースコード公開・画像&動画による解説付き

この記事は「恋愛・ホラー風ノベルゲーム」の作り方講座の第13回です。

前回でスプレッドシートのデータを読み込んで会話処理ができるシステムを構築しました。

前回の記事:

ノベルゲームの作り方12 Unityでスプレッドシートを読み込み会話文として表示する
この記事は「恋愛・ホラー風ノベルゲーム」の作り方講座の12章です。前回までで一通りの会話や選択肢を表示し、背景変更等もできるようになりました。前の記事:今回は会話の内容を外部データベースから読み込んでノベルゲーム内で使えるようにしていきます...

今回は会話データを読み込む際に文字色の変更、太字での強調、文字の大きさ変更などをタグ指定で行えるように改造します。


【Line登録者限定のプレゼントもあるよ!】

TextMeshProの文字色の変更を会話システムに導入する

RichTextを設定する

例えば、「Talk」オブジェクトの文字表示に使用している「TextMeshPro」の下の方にある「ExtraSetting」には「RichText」という設定項目があります。

初期値が「true」(チェックが入っている)なので、特に気にしなければ「true」になっているかと思いますが、「false」の場合は「true」にしておきましょう。

タグの追加を行ってみる

RichTextをオンにしておくと、テキストをタグで囲むことにより文字を装飾することができます。

下記のようなタグで囲むと太字にする、サイズを変える、色を変えるなどの装飾を実現できます。

(HTMLのタグに似ていますが、別のものです。)

上の画像では「<color=#0800FF>」という開始タグと「</color>」という終了タグで囲んだ部分の文字色を変更しています。

「<color=[カラーコード]>〜</color>」で囲んでいる「〜」部分の色が変わります。

この「カラーコード」というのは色を表すコードです。6文字の英数字の頭に「#」を付けます。

例えば「FFFFFF」は白です。

ちなみに太字のタグは「<b>〜</b>」です。

会話でタグを使う

ではこれまでに作成してきた会話でタグを使ってみましょう。 

会話を作成したスプレッドシートの最初の部分

「今日の待ち合わせ場所」と「ここ」にタグ「<color=#0800FF>〜</color>」をつけました。

この状態で再生すると以下の動画のようになります。

今回作成した会話処理では一文字づつ文字を追加しています。そのため、タグの「<>」マークやタグ内の文字まで会話として表示され、タグが完成した段階で突然文字色が変わっています。

これでは良くないのでタグを表示せずに色を変える処理を作成していきましょう。

テキスト装飾処理の作成

まず先の動画をみると最初の「<color=#0800FF>」が出来上がったら消えて次の文字から青色になっています。

そしてその後青色の文字が続き、「</color>」のタグが完成したところで通常の色に戻ります。

この前提を踏まえて会話処理を修正してみましょう。  

「TalkWindow.cs」の「TalkStart()」関数を変更します。

続きを読む

このコンテンツはパスワードで保護されています。 コンテンツを読みたい方はUnity入門の森ショップ(https://unityforest.shop/)で講座閲覧権を取得してね。

これで追加部分は完成です。

では確認してみましょう。

先ほど表示されていたタグの表示がなくなって文字色のみ変更できるようになりました。

この処理によって太字の「<b>〜</b>」など同じ形なら同じように表示できるはずです。

ただしこの修正により、文章中で「<」と「>」を使用してはいけないという制約が出てきます。

もしこうした文字を使いたい場合は例えばフラグを用意して機能のオンオフをする、他の文字に置き換える、など個々の用途によってカスタマイズするのもいいかと思います。

まとめと次回に向けて

今回でノベルゲームのメッセージ管理システムの構築もいよいよ終わりです。

強調文字や色変更などノベルゲームの会話文中で必要になる装飾表現をタグを用いて使うことができるようになりました。

次回はノベルゲームのセーブデータ、シナリオ進行度の管理システム、セーブデータのロードシステムなどを作っていきます。

次の記事:

Unity ノベルゲームの作り方14 選択肢によるシナリオ分岐・進行をセーブデータ付きで管理する
この記事はUnityを用いた「恋愛・ホラー風ノベルゲーム」の作り方講座の第14回です。前回は文字装飾機能をノベルゲームの会話システムに実装しました。前回の記事:今回はセーブデータをJSON形式で作成してセーブ・ロードするセーブデータシステム...

Unity ノベルゲームの作り方講座へ戻る >>



Unity入門の森オリジナル本格ゲーム制作講座はこちら
11種類の本格ゲームの全ソースコード公開・画像&動画による解説付き

コメント

タイトルとURLをコピーしました