Unity

【ツール不要】ノベル風にテキストを1文字ずつ表示させる方法【音も付けられる】

本記事内には、アフィリエイトリンクを含む場合があります

テキストをぱっと出すのと、
文字送りにして出すのとでは、
そのテキストの読ませやすさ、注意の惹きつけやすさが全然違います。

テキストを1文字ずつ表示させる最も知られた方法は、
アセットDOTween (HOTween v2)を使った方法です。

DOTWeenは確かに便利で、
使えるようになっておくことは必須だと思いますが、
文字送りで表示させることは、そのようなツールを使うまでもありません。

そして、その1文字1文字に効果音をつける場合は、
DOTweenを使うより、ツールなしのほうがシンプルに実装できます

DOTweenは、DOTween (HOTween v2)(無料版)とDOTween Pro(有料版)があり、
1文字1文字にアニメーションや効果音をつけられるのは、
DOTween Pro(有料版)です。

それでも効果音をつける手法は、Kanのメモ帳様で紹介されていますが、
やや面倒…^^;

【引用】Kanのメモ帳---DOTweenのDoTextにSE(効果音)を付ける

そこで、本記事ではツールなしでの実装方法を紹介します(完成形↓)

1.テスト用にUIを配置

TextもしくはTextMeshProのいずれかを使えますので、適当に配置します。
ここでは単なるTextの場合で説明します。

また、複数の文章に対して、文字送りするので、
次の文章を呼び出すための「次へボタン」も配置します。

そして、1文字ごとに鳴らす効果音ファイルをシーン配置します。
(効果音ラボのカーソル移動4を拝借)

Play On Awakeは解除しましょう。

準備はこれでOK ^^

2.ノベル風の文字送り用スクリプト

早速、NovelTextManager.csというスクリプトを以下のコード内容で作成します。

 

内容はスクリプトのコメントに書いた通りです。
ポイントは、ToChararray()によって、
1つの文章を、その1文字ずつを要素にもつ配列にしている点です。

その配列を、for文で1文字ずつに対して処理しています。

また、Update関数やOnClickNext関数で、
その文章が何番目の文章なのか(最後かどうか)を
i == sentences.Length または i < sentences.Length で判定して
次へボタンの扱いを変えています。

 

3.Inspectorでの設定

このスクリプトをシーンのオブジェクト、とりあえずはMainCameraにアタッチします。

Inspectorにて、図のように紐付け、文章を準備します。

次へボタンのOnclickも設定します。

作業は以上です!
ゲームを実行すると、ノベル風の文字送りを楽しむことができます。

ABOUT ME
いなも@システマライフハッカー
”仙豆”を開発することを夢見て、健康食品会社で働いていたものの、2016年に出会ったロシアの武術”システマ”こそ、その糸口があると感銘し、勝手にシステマ普及活動を始める。 一方で、クリエイティブなモノ作りが好きで、DX社会で楽しみを見出せる"Unity”を活かして、”スマートかつ快適な暮らし”のヒントを発信している。

COMMENT

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA