Unity3D
Unity
iTween

UnityのiTweenを試してみる その3 Scale系

株式会社ZOOA(ゾーア)のzobです。[@twitter]

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

前回に引き続き、iTweenを色々と試してみました。

iTween

今回はScale系のメソッドを試してみました。

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

iTween.ScaleTo

ScaleToは指定した値まで拡大・縮小アニメーションを行います。
使い方は以下の通りです

iTween.ScaleTo(gameObject, iTween.Hash("x", 10f));

image.gif

上記のGifはアニメーションの様子をわかりやすくするため、以下の通り5秒の時間指定があります。

iTween.ScaleTo(gameObject, iTween.Hash("x", 10f, "time", 5f));

感覚的にはMoveTo、RotateToと同じように使えそうです!

iTween.ScaleTo(gameObject, iTween.Hash("x", 10f, "y", 10f));
iTween.ScaleTo(gameObject, iTween.Hash("x", 10f, "z", 10f));
iTween.ScaleTo(gameObject, iTween.Hash("y", 10f, "z", 10f));

Scaleを3つ指定することもできます!

iTween.ScaleTo(gameObject, iTween.Hash("x", 10f, "y", 10f, "z", 10f));

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

iTween.ScaleTo(gameObject, iTween.Hash("z", 10f, "z", -10f));

iTween.ScaleFrom

ScaleFromは指定した値から、元の値に拡大・縮小アニメーションさせます。
使い方は以下の通りです。

iTween.ScaleFrom(gameObject, iTween.Hash("x", 10f);

image.gif

iTween.ScaleUpdate

ScaleUpdateはScaleToと同じ、指定した値に拡大・縮小アニメーションさせます。

iTween.ScaleUpdate(gameObject, iTween.Hash("x", 10f);

MoveUpdate、RotateUpdateと同じ、Updateで呼ばないと拡大・縮小アニメーションされません。

iTweenTest.cs
public class iTweenTest: MonoBehaviour
{
    void Update()
    {
        iTween.ScaleUpdate(gameObject, iTween.Hash(""x", 10f));
    }

}

ScaleUpdateはUIのスクローラー等でオブジェクトの拡大縮小を動的に行いたいと使うと便利です。

iTween.ScaleBy

ScaleByは現在の値から、指定した値を乗算して拡大・縮小アニメーションさせます。

iTween.ScaleBy(gameObject, iTween.Hash("x", 10f);

image.gif

ScaleByは元のScaleの値×指定したScaleの値で拡大・縮小アニメーションの最大値を決めているようです。

以下のように2fを初期値として入れている場合、20fまで拡大アニメーションが走るため注意が必要です。

image.gif

iTween.ScaleAdd

ScaleAddは少々特殊な動作をします。
ScaleAddを以下の通り単体で呼び出した場合は、現在のオブジェクトのScale値+ScaleAddで設定した値の分だけ拡大・縮小アニメーションを行います。

iTween.ScaleAdd(gameObject, iTween.Hash("x", 10f, "time", 5f));

image.gif

Addが付いている通り、ScaleAddは他の拡大・縮小アアニメーション実行中でも利用可能でが、Scale系のアニメーションが再生されている場合は、一度拡大・縮小アニメーションがストップ後、ストップ時点でのオブジェクトのScale値+ScaleAddで設定した値の分だけ拡大・縮小アニメーションを行います。

説明だけだと分かりにくいと思うので、以下のサンプルコードで動作を試します。

iTween.ScaleTo(gameObject, iTween.Hash("x", 10f, "time", 5f));
iTween.ScaleAdd(gameObject, iTween.Hash("y", 10f, "time", 5f, "delay", 0.5f));

image.gif

結果は上記の通り、ScaleToによりXが10fになる前に拡大・縮小アニメーションが止まり、次のScaleAddでY方向にScaleされました。

まとめ

Scale系を一通り試してみました。拡大・縮小アニメーションがこんなにも簡単にできるのはいいですね。
他にPunchScale、ShakeScaleがありますが、これは後日検証して記事に書きます。

次回もiTweenの検証結果を書いていきます!

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


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


株式会社ZOOA(ゾーア)
弊社はフリーランスや、個人事業主に特化したSES案件共有サイト(ZOB)も運営しておりますので給料UPを目指している方は是非こちらもご覧ください!