たくあんポリポリ

勉強したことを載せていきます。最近、技術系の記事はZennに書いています。(https://zenn.dev/chittai)

DOTweenProでオブジェクトを動かす

Tween系で有名な、DOTweenPROを使用してみました。以下みたいなアニメーションをかなり楽に作ることができます。なんか、装備している武器の変形とかかっこよくできそう。

f:id:c_taquna:20181105232107g:plain

やりたいこと

とりあえず、DOTweenでどんな事ができるのか調べてみたうえで、簡単にアニメーションを作成してみました。この記事では、DOTween初めての人が簡単に使えるように説明します。

使用したツール / 環境

  • Unity 2018.13f1
  • DOTween

やること

DOTweenの購入・インポート

下記はPROなので有償ですが、無償版もあります。
assetstore.unity.com
(無償版:DOTween (HOTween v2) - Asset Store)

オブジェクトの配置

今回は、Cube×2とEmptyObject×1です。

Cubeは以下の様に配置します
f:id:c_taquna:20181105232904j:plain

Empyを以下のように配置します。
f:id:c_taquna:20181105233022j:plain

ちなみに、Hierarchyは以下のようにしてください。
Emptyはpivotにリネームして、その子オブジェクトとして動かす方のCubeを配置します。
f:id:c_taquna:20181105233125j:plain

今回は、このpivotを回転させることで、いい感じに2つのCubeが繋がります。

実装

今回は、まずはCubeGroupを上にあげてから、pivotを軸に回転させるという処理をシーケンシャルに行うようにしています。
gist.github.com

基本的なコマンドは下記リンク先を参照してください。
qiita.com

今回は、この中でも処理を連続で実行している Sequence を使用しています。

これで、今回動かしたいCubeGroupをInspectorから指定します。

public GameObject cubeGroup;

SequenceにAppendでどんどん処理を加えていきます。そうすると、「これがおわったら次」といった感じで順に処理されていきます。今回は、まずは"CubeGroup"をY方向に動かして、次に"GetChild(1)"で取ってきたpivotを回転させています。DOMoveやDORotateはTransformコンポーネントの拡張メソッドなので、オブジェクト自身に対してはかけません。

Sequence sequence = DOTween.Sequence()
	.Append(cubeGroup.transform.DOMoveY(1,1))
	.Append(cubeGroup.transform.GetChild(1).DORotate(new Vector3(180f,0f),0.5f));

感想

LeapMotionとかで表示される腕の横に配置して、ボタンを押すと変形するとか、、、かっこいいかも