(:3[kanのメモ帳]

個人ゲーム開発者kan.kikuchiのメモ的技術ブログ。月木更新でUnity関連がメイン。

(:3[kanのメモ帳]


本ブログの運営者kan.kikuchiが個人で開発したゲームです!


TextAnimatorで最終的な表示に合わせて1文字ずつ文字送りする【Unity】【TextMesh Pro】【アセット】【Text Animator】


このエントリーをはてなブックマークに追加


この記事でのバージョン
Unity 2022.3.32f1


はじめに

以前、テキストのアニメーションを簡単に実装出来る Text Animatorというアセットを紹介しました。


実はこのアセット、文字を動かすだけでなく、

文字送り(文字を最初から順番に表示する)も簡単に実装出来たりします。


しかも、文字送りを実装する時にありがちな

「表示される度にテキストの位置やサイズが変わってしまう」

という問題が起きません。


という事で今回はTextAnimatorで文字送りを実装する方法の紹介です!

Text Animator for Unity - Unity Asset Store



TextAnimatorで文字送り

さっそくTextAnimatorで文字送りする方法ですが、

Text AnimatorというコンポーネントをTextMeshProと同じオブジェクトに追加し、

さらに文字送り用のTypewriter By Characterというコンポーネントも追加します。

(単語単位で表示するTypewriterByWordもある)


あとは表示したいテキストを指定し、ShowTextを実行します。

(既に設定されているテキストを表示したい場合はStartShowingText)

using Febucci.UI;//TypewriterByCharacterを使うのに必要。
GetComponent<TypewriterByCharacter>().ShowText("1234567890 あいうえおかきくけこ\n1234567890 あいうえおかきくけこ");

//既に設定されているテキストを最初からアニメーションで表示したい場合
//GetComponent<TypewriterByCharacter>().StartShowingText(restart:true);


ただし、Text Animatorはデフォルトで全体に表示と非表示のアニメーションが設定されているので、

これがいらない場合は↓のEffects Countを0にして消す必要があります。


ちなみに文字送り自体はDoTweenなどを使っても出来ますが、文字をセンタリングしてる場合などは、


表示されている文字でセンタリングしてしまうので、文字が増える度に全体が動いてしまいます。

(TextAnimatorだとこれがなく、最終的な表示に合わせて1文字ずつ表示される)


また、メインの機能であるアニメーションと併用する事も、もちろん可能です。