LoginSignup
25
22

More than 5 years have passed since last update.

UnityのiTweenを試してみる その1 Move系

Last updated at Posted at 2018-05-14

初めまして、株式会社ZOOA(ゾーア)のzobと申します。[@twitter]

弊社はフリーランスや、個人事業主、給料UPを目指している方向けに高単価求人案件配信サイト(ZOB)も運営しておりますので是非ご覧ください!

本日より技術ブログをQiitaで色々と書いていきますので、よろしくお願いいたします。

弊社で検証した結果をドンドンQiitaに書いていきます!

iTween

iTweenはUnityで有名なライブラリの一つです。

iTween

オブジェクトを、スクリプトでアニメーションさせたい時にとっても便利です!

検証で使用したUnityバージョンは以下の通りです。
Unity2018.1.0f2

今回はiTweenで基本となる移動系のメソッドを一通り検証したのでまとめてみました。

iTween.MoveTo

MoveToは指定した座標位置にアニメーション移動します。

使い方は以下の通りです。

iTween.MoveTo(gameObject, iTween.Hash("x", 5f));
iTweenTest.cs
public class iTweenTest: MonoBehaviour
{
    void Start ()
    {
        // Start時にX座標5まで移動
        iTween.MoveTo(gameObject, iTween.Hash("x", 5f));
    }
}

上記スクリプトでは、X座標の5の位置まで移動します。
※現時点のX座標から5を加える、という意味ではないので注意

この四角いキューブが……
image.png

ここまで移動します。たった一行で移動アニメーションができるのはいいですね!
image.gif

iTween.Hashは、以下の通り複数の値を指定できます。

iTween.MoveTo(gameObject, iTween.Hash("x", 5f, "y", 5f));
iTween.MoveTo(gameObject, iTween.Hash("x", 5f, "z", 5f));
iTween.MoveTo(gameObject, iTween.Hash("y", 5f, "z", 5f));

XYZ座標3つ指定することができます。

iTween.MoveTo(gameObject, iTween.Hash("x", 5f, "y", 5f, "z", 5f));

以下のように、Hashで同じ座標を2回以上指定すると動かない(エラーが出る)ので注意が必要です。

iTween.MoveTo(gameObject, iTween.Hash("z", 5f, "z", -15f));

iTween.MoveUpdate

MoveUpdateはMoveToと同じ指定した座標位置にアニメーション移動します。

iTween.MoveUpdate(gameObject, iTween.Hash("x", 5f));

MoveToとの違いは、Updateで呼ばないと移動アニメーションされないという点です。

iTweenTest.cs
public class iTweenTest: MonoBehaviour
{
    void Update ()
    {
        // Update時にX座標5まで移動
        iTween.MoveUpdate(gameObject, iTween.Hash("x", 5f));
    }
}

※StartでMoveUpdate呼び出し
image.gif
すごくわかりにくいですが、ほんの少しだけ動いています。

※UpdateでMoveUpdate呼び出し
image.gif

MoveUpdateはマウス座標、タッチした座標に移動する等、動的に移動座標が変わる時に使うと便利です。

iTween.MoveFrom

MoveFromは指定した座標位置から現在の座標位置に移動します。

iTween.MoveFrom(gameObject, iTween.Hash("x", 5f));

以下のようにX座標5から、配置時の位置に移動しています。
image.gif

iTween.MoveBy

MoveByは現在の座標から指定した値だけ移動します。

iTween.MoveBy(gameObject, iTween.Hash("x", 5f));

image.gif

MoveToと比べると、MoveByの移動位置の違いがわかると思います。

iTween.MoveAdd

MoveAddもMoveByと同じく現在の座標から指定した値だけ移動します。

iTween.MoveAdd(gameObject, iTween.Hash("x", 5f));

MoveByとの違いは、iTweenのアニメーション実行中でも利用が可能という点です。
わかりやすい例として、以下のスクリプトを試してみましょう。

iTween.MoveBy(gameObject, iTween.Hash("x", 10f, "time", 3f));
iTween.MoveAdd(gameObject, iTween.Hash("y", 5f, "time", 1f, "delay", 0.5f));
iTween.MoveAdd(gameObject, iTween.Hash("y", -5f, "time", 1f, "delay", 1f));

以下のようにX座標の移動アニメーション中に上下に動きます。
image.gif

まとめ

iTweenを利用することで、移動アニメーションをスクリプトで制御させることが簡単に実現可能です。
次回もiTweenの検証結果をまとめていきたいので、今後ともよろしくお願いします!

・技術検証協力 荻野雄季(Twitter, Qiita)


UnityのiTweenを試してみる
その1 Move系←今ココ
その2 Rotate系
その3 Scale系
その4 Shake系
その5 Punch系


株式会社ZOOA(ゾーア)
詳細はこちら


25
22
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
25
22