DOTweenUnity上で、とても簡単にパワフルなアニメーション表現が実現できるアセットです。その設定法は奥深いですが、ここではその基本部分だけを解説してみます。

前回 DOTweenの基本的な使用法を解説しました。今回は、よりパワフルな DOTweenの使用法を解説します。

Unity Basic_229

【オプションを付けて動きを指定】

アニメーションを記述した後に、メソッドチェーンでそのアニメーションの追加設定をしていくことができます。

簡単な例を見てみましょう。
DOMoveでゲームオブジェクトを移動させていますが、移動の仕方としていくつかオプション設定をしています。
Unity Basic_259

transform.DOMove(new Vector3(4f, 0, 0), 1f)
            .SetDelay(1f)
            .SetRelative()
            .SetEase(Ease.OutBounce)
            .SetLoops(2, LoopType.Incremental);

SetDelay:
指定秒数(ここだと1秒)待ってからアニメーションを再生しています。

SetRelative:
現在の位置からの相対的な位置を指定します。これがないとUnityのワールド座標を使用します。

SetEase:
アニメーションの移動・変化の速さの変化を指定します。
「Ease.Linear」だと等速。「Ease.OutBounce」は跳ねるような動きをします。

とても多くの指定法があります。以下のサイトで以下の画像以上の数の指定法が確認できます。

Unity Basic_260

SetLoops:
アニメーションを指定回数ループさせます。
ループタイプとして、「Incremental」は1つ前のループ後の位置を基準として次のループを行います。



【順番にアニメーションさせる】

複数の DOTweenアニメーションを、そのまま連続に書いておくとほぼ同時に実行されます。
以下の2つの DOTween関数 DOMoveと DOScaleはほぼ同時に実行されるので、移動しながら大きくなっていきます。
Unity Basic_261

これらのアニメーションを同時ではなく別々に順番に実行させるには「Sequence」(連続・順序と言う意味)の「Appned()」を使います

 Sequence sequence =
   DOTween.Sequence( 処理をメソッドチェーンで書いていく );

この Sequenceを使うと以下の様になります。
Unity Basic_262

Sequence sequence = DOTween.Sequence()
            .Append(transform.DOMove(new Vector3(4f, 0, 0), 1f)
            .SetEase(Ease.OutQuad)
            .SetLoops(2, LoopType.Incremental))
            .Append(transform.DOScale(new Vector3(2, 2, 2), 1f))
            .OnComplete(() => Debug.Log("Completed"));

ここで、「Append()」で順番に行う処理を行いましたが、「Join()」を使うと前の処理と同時に実行することもできます。

また、最後に「OnComplete」でDOTweenアニメーションの終了がとれるので、アニメーションに続く他の処理を呼ぶことができます



【スクリプト内で実行タイミングを制御】

いままで説明してきたDOTweenアニメーションは基本的にすぐに実行が行われます。
それをスクリプト内でアニメーションのオブジェクトだけ作っておいて、任意のタイミングで実行することもできます。

以下の様に「Play()」で、いつでも実行することができます
Unity Basic_263

t = transform.DOMove(new Vector3(4f, 0, 0), 1f)
            .SetEase(Ease.OutQuad)
            .SetLoops(2, LoopType.Incremental);

t.Play();



どうでしたか。DOTweenはとても簡単にパワフルなアニメーション表現が実現できます。
その設定法も奥は深いですが、ここではそのほんの基本部分だけを解説してみました。



Sponsored Link