24時間頑張らない

Unityのこと書いたり、ゲームのこと書いたり

集まったり散らばったりするテキストアニメーションを簡単に実装できる「Text Revealer Pro」

Unity Asset

Unityバージョン:2020.15f1 Text Revealer Proバージョン:1.1

はじめに

現在Unityのアセットストアで「REBOOT 2020」が開催中です。
せっかく半額だしと思って試しに買ってみた「Text Revealer Pro」が、安いのにとても使い勝手が良かったので、紹介します。

元値で9.99ドル、半額で5ドルという安さで買えます。

目次

デモ

導入すると、こんな感じのアニメーションが作れます。

外から文字が集合したり
f:id:naganobesso:20200917123244g:plain

逆に文字が散らばったり f:id:naganobesso:20200917123308g:plain

上から文字が降ってきたり f:id:naganobesso:20200917123334g:plain

左右に文字がフェードアウトしたり f:id:naganobesso:20200917123416g:plain

使い方

使い方はとても簡単です。

作成したTextまたはTextMeshProオブジェクトに、「Text Revealer」コンポーネントを追加するだけ。

f:id:naganobesso:20200917123756p:plain

あとは、パラメータを調整して好きなアニメーションを作ることができます。
「Reveal Options」は文字が出現するとき、「Unreveal Options」は文字が消える時のアニメーション用パラメータです。
調整できるパラメータの種類はどちらも同じです。

また、「Text Revealer」にはプレビュー機能がついており、いちいち実行しなくても、どのようなアニメーションになるか確認することができます。
f:id:naganobesso:20200917123440g:plain

ちなみにこのアニメーションは、「Text Revealer」の初期設定です。

スクリプトからの呼び出しも、こんな感じで「Reveal()」と「Unreveal()」を呼び出すだけです。

using UnityEngine;

public class TextRevealerCall : MonoBehaviour
{
    private TextRevealer tx;
    
    void Start()
    {
        tx = GetComponent<TextRevealer>();
    }

    void Update()
    {
        // 左クリックしたらテキスト呼び出し
        if (Input.GetMouseButtonDown(0))
        {
            tx.Reveal();
        }
        // 右クリックしたらテキスト削除
        else if (Input.GetMouseButtonDown(1))
        {
            tx.Unreveal();
        }
    }
}

パラメータ調整

設定できるパラメータは以下の通り。

全体パラメータ

「Auto Unreveal」「Unreal After(Seconds)」

「Auto Unreveal」にチェックをつけると、Revealアニメーション終了後、「Unreal After(Seconds)」秒後にUnrevealアニメーションが再生されます。

「Reveal On Enabled」

チェックをつけると、オブジェクトを有効にしたときに、Revealアニメーションを再生します。

「Unreveal On Disabled」

チェックをつけると、オブジェクトを無効にしたときに、UnRevealアニメーションを再生します。

「Reveal Options」「Unreveal Options」ごとのパラメータ

以下は「Reveal Options」のパラメータですが、名称が一部違うだけで機能は「Unreveal Options」も同じです。

「Smooth Overlap」「Smooth Overlap smoothness」

「Smooth Overlap」にチェックをつけると、前の文字が完全に表示される前に、次の文字の表示が開始されます。
「Smooth Overlap smoothness」が大きいほど、文字を表示するまでの時間が早くなります。
「Smooth Overlap smoothness」を最大にすると、全ての文字が同時にアニメーションを開始します。

「Smooth Overlap smoothness」の値が大きいほど文字の移動速度が遅くなるのは、後述する「テキスト表示が完了するまでにかかる時間」に合わせているからです。

「Animation Direction」

文字がアニメーションする方向を「Horizontal」「Vertical」「Both」から選択できます。

「Horizontal Direction」

「Animation Direction」が「Horizontal」または「Both」の場合に設定できます。
文字の移動方向を「Left To Right Only」「Right To Left Only」「Randomize」から選択できます。

「Min Horizontal Starting Distance」「Max Horizontal Starting Distance」「Horizontal Starting Distance Range」

文字の最小、最大移動距離です。 実際に移動する距離は、この範囲内でランダムに決定されます。
「Horizontal Starting Distance Range」では、範囲をスライダーで視覚的に調整できます。

「Vertical Direction」「Min Vertical Starting Distance」「Max Vertical Starting Distance」「Vertical Starting Distance Range」

「Animation Direction」が「Vertical」または「Both」の場合に設定できます。
「Horizontal Direction」「Min Horizontal Starting Distance」「Max Horizontal Starting Distance」「Horizontal Starting Distance Range」の垂直バージョンです。

「Reveal Duration (Seconds)」

テキスト表示が完了するまでにかかる時間です。

「Initial Opacity」「Final Opacity」

アニメーション開始時、終了時の文字の透明度です。

「Apply Random Rotation」

チェックを入れると、文字がランダムで回転します。

「Reverse」

チェックを入れると、最後の文字から表示されます。

おわりに

学習コストがほとんどなく、使い勝手もとてもよいので、何かしらテキストを遊ばせたいときにあると便利なアセットだと思います。
値段も安いので、使うかどうかは分からなくても、とりあえずで買っておいて損はないんじゃないかな。