目次
DOTweenとは
DOTweenはUnityでよく使われるアセットであり、簡単なコードでオブジェクトのアニメーションを付けることが可能になります。動かし方にも種類が豊富なため、まんべんなく活用できると便利なので今回は簡単にまとめてみました。
アクションゲームでは特に、障害物やオブジェクトの移動は頻繁に行われるため、DOTweenの活用も一つの手だと思っています。
アクションゲームでは特に、障害物やオブジェクトの移動は頻繁に行われるため、DOTweenの活用も一つの手だと思っています。
Use the DOTween (HOTween v2) tool from Demigiant on your nex…
有料版について
DOTweenは無料で利用できるアセットですが、Pro版(DOTweenPro)があります。Pro版では、コーディングなしに選択肢から選ぶだけで簡単にアニメーションを設定できます。インスペクターでの操作に慣れている方には、こちらの方もありかもしれません。
私も簡単な台の移動であったりなんかは、短時間で作るならこちらを使用しているときがあります。
私も簡単な台の移動であったりなんかは、短時間で作るならこちらを使用しているときがあります。
Get the DOTween Pro package from Demigiant and speed up your…
DOTweenのtransformの基本処理
今回はDoTweenで実装できる基本的な処理を紹介します。毎回調べて書くよりも、ある程度の基礎的なアニメーション処理については知っておいて損はないでしょう。
DOMove
現在の座標から指定した座標へ移動する処理です。
ワールド座標の移動
//3秒でワールド座標系で(5,0,0)に移動
transform.DOMove(new Vector3(5, 0, 0), 3);
ローカル座標の移動
//1秒でローカル座標系で(-5,0,0)に移動
transform.DOLocalMove(new Vector3(-5, 0, 0), 1);
座標軸を指定した移動
X、Y、Z軸のいずれかを指定することもできます。
これもワールド座標、ローカル座標の両方で指定が可能です。
//現在の座標からX軸が5の座標になるように3秒かけて移動する
transform.DOMoveX(5, 3);
相対値を使った移動
現在の位置からどれだけ移動するか指定ができます。
//現在位置に(5, 5 , 0)を足した位置へ、3秒かけて相対的に移動する
transform.DOMove(new Vector3(5, 5, 0), 3).SetRelative(true);
DOScale
オブジェクトの縮小や拡大ができます。こちらもローカルスケールとグローバルスケールの指定が可能です。
// スケールを3秒で(5,5,5)にする
transform.DOScale(new Vector3(5, 5, 5), 3);
DORotate
オブジェクトを回転させることができます。
RotateMode.Fast
RotateModeを何も指定していない場合、RotateModeはRotateMode.Fastとなり、これは最短経路で指定した角度に回転するモードです。
//回転を3秒で(90,0,90)にする
transform.DORotate(new Vector3(90, 0, 90), 3);
RotateMode.WorldAxisAdd
RotateMode.WorldAxisAddを指定すれば、加算される回転量を指定するモードにすることができます。
//3秒で(1080,0,1080)を加算して回転
transform.DORotate(new Vector3(1080, 0, 1080), 3, RotateMode.WorldAxisAdd);
DOLookAt
オブジェクトを指定したオブジェクトの方向へ向けます。この際、オブジェクトのZ軸のプラス方向が正面としてターゲットに向きます。
//3秒でtargetの方向を向く
transform.DOLookAt(target.position, 3);
まとめ
今回はDOTweenの基本的な移動処理についてまとめました。オブジェクトの移動だけであれば、Transformコンポーネントをスクリプトから直接操作するだけでも良いですが、ここからさらにアニメーションを追加するとなるとコードが複雑になりがちです。そんなときにDOTweenアセットがあると非常に便利です。UIなどで頻繁に利用されるので、その辺りについては次回以降にまとめていこうと思います。