サイトアイコン Unity+AssetStoreおすすめ情報

Unity:簡単アニメーション、iTween の使い方(人気の無料アセット)

はじめに

Unity の人気アセットの iTween を紹介させていただきます。なんとRatingが★5の 2657もあるという超人気のアセットになります。

本アセットの使い道としては、 オブジェクトなどスクリプトでアニメーションさせたい時にとっても便利なアセットになります。

Unityを知らない方は、ぜひ こちらの記事 をご参照ください。

サンプルシーンを確認

説明などの使い方はいったん横に置いて、まずは何ができるのかをサンプルシーンを確認していきたいと思います。

2つのオブジェクトがまず見えます。

上のオブジェクトは手前に回転した後に、奥に回転しています。
下のオブジェクトは右に移動した後に、左に移動しています。

回転させるスクリプト

それでは上の回転しているオブジェクトのスクリプトを確認してみましょう。

何やら仰々しい内容が書いてありますね、内容を簡単に説明します。

using UnityEngine;
using System.Collections;

public class RotateSample : MonoBehaviour
{	
	void Start(){
		iTween.RotateBy(gameObject,
                        iTween.Hash("x"       , .25,
                                    "easeType", "easeInOutBack",
                                    "loopType", "pingPong",
                                    "delay"   , .4));
	}
}

オプションの説明

移動しているスクリプト

次に移動しているオブジェクトのスクリプトを確認してみましょう。

using UnityEngine;
using System.Collections;

public class MoveSample : MonoBehaviour
{	
	void Start(){
		iTween.MoveBy(gameObject, 
                      iTween.Hash("x"       , 2, 
                                  "easeType", "easeInOutExpo", 
                                  "loopType", "pingPong", 
                                  "delay"   , .1));
	}
}

オプションの説明

iTween のオプション説明

x・y・z

moveHash.Add ("x", 1f);
moveHash.Add ("y", 1f);
moveHash.Add ("z", 1f);

それぞれ、どの方向に力を加えるかを決められます。
引数2はどれだけ力を加えるか指定してあげます。

position

moveHash.Add ("position", new Vector3(0f, 0f, 0f));

x・y・zと同じ用途で使えます。
ポジションを2つ以上動かすのであれば、こちらの方が綺麗かもしれませんね。

time

moveHash.Add ("time", 2f);

アニメーション完了までの時間を指定できます。
また、timeが追加されていない場合は1秒でアニメーションが完了します。

delay

moveHash.Add ("easetype","easeInOutBack");

アニメーションに緩急をつけることができます。
(例えば、値をちょっとずつ加速するようにしたり、一気に減速するようにしたり…等)
以下のサイトを参考にしてもらえればイメージがつかめると思います。
http://ozpa-h4.com/demo/easing/

oncompletetarget

moveHash.Add ("oncompletetarget", this.gameObject);

アニメーションが終わった後に呼ぶメソッドを受け取るオブジェクトを指定してあげます。

oncomplete

moveHash.Add ("oncomplete", "AnimationEnd");

アニメーションが終わった後に呼ぶメソッド名を指定してあげます。
これを使う場合はoncompletetargetを指定してあげないと呼ばれないので注意です。

loopType

moveHash.Add ("loopType", "loop");

ループの動きを指定します。。タイプは3つあります。

iTween のメソッド説明

移動メソッド

回転メソッド

拡大縮小メソッド

揺らすメソッド

揺れるようなメソッド

まとめ

いかがでしたか、iTweenのいい所は緩急をつけたアニメーションの指定を簡単にできる所になります。

Unity 標準でも Vector3.Lerp などを使えば徐々に移動できますが、移動時間の指定、待ち時間、ちょっとバックしからの移動など色々な事が行えるので、Unity でのゲーム開発では結構必須なのかなと思います

参考資料

モバイルバージョンを終了