DOTween は Unity上で、とても簡単にパワフルなアニメーション表現が実現できるアセットです。その設定法は奥深いですが、ここではその基本部分だけを解説してみます。
前回 DOTweenの基本的な使用法を解説しました。今回は、よりパワフルな DOTweenの使用法を解説します。
【オプションを付けて動きを指定】
アニメーションを記述した後に、メソッドチェーンでそのアニメーションの追加設定をしていくことができます。
簡単な例を見てみましょう。
DOMoveでゲームオブジェクトを移動させていますが、移動の仕方としていくつかオプション設定をしています。
transform.DOMove(new Vector3(4f, 0, 0), 1f) .SetDelay(1f) .SetRelative() .SetEase(Ease.OutBounce) .SetLoops(2, LoopType.Incremental);
SetDelay:
指定秒数(ここだと1秒)待ってからアニメーションを再生しています。
指定秒数(ここだと1秒)待ってからアニメーションを再生しています。
SetRelative:
現在の位置からの相対的な位置を指定します。これがないとUnityのワールド座標を使用します。
SetEase:
アニメーションの移動・変化の速さの変化を指定します。
「Ease.Linear」だと等速。「Ease.OutBounce」は跳ねるような動きをします。
とても多くの指定法があります。以下のサイトで以下の画像以上の数の指定法が確認できます。
SetLoops:
アニメーションを指定回数ループさせます。
ループタイプとして、「Incremental」は1つ前のループ後の位置を基準として次のループを行います。
アニメーションを指定回数ループさせます。
ループタイプとして、「Incremental」は1つ前のループ後の位置を基準として次のループを行います。
【順番にアニメーションさせる】
複数の DOTweenアニメーションを、そのまま連続に書いておくとほぼ同時に実行されます。
これらのアニメーションを同時ではなく別々に順番に実行させるには「Sequence」(連続・順序と言う意味)の「Appned()」を使います。
Sequence sequence =
DOTween.Sequence( 処理をメソッドチェーンで書いていく );
DOTween.Sequence( 処理をメソッドチェーンで書いていく );
この Sequenceを使うと以下の様になります。
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()」で、いつでも実行することができます。
t = transform.DOMove(new Vector3(4f, 0, 0), 1f) .SetEase(Ease.OutQuad) .SetLoops(2, LoopType.Incremental); t.Play();
どうでしたか。DOTweenはとても簡単にパワフルなアニメーション表現が実現できます。
その設定法も奥は深いですが、ここではそのほんの基本部分だけを解説してみました。
Sponsored Link