VR、ゲーム制作、プログラミング。Unity とか Oculus Rift とか。

2014年5月21日水曜日

[Unity]iTweenでのパス移動を使う前に知っておいた方がいいこと

Unity で位置や回転などを簡単にアニメーションさせることができるアセット iTween はよく知られています。

iTween ではパスに沿っての移動もできるのですが、ハードに使うにはあまり向いていない面もあるので事前に知っておくといいかもしれません。

良い点
  • そこそこいい感じにポイント間のカーブを描いてくれる
    • ただし接線は編集できないので、完全に意図通りにするのは難しい
  • easing オプションがけっこう豊富
  • 進行方向に向くように回転するオプション orienttopath がある


困った点
  • 速度の調整が非常に困難
    • speed または time パラメータがあるものの、ポイント間の直線距離に依存する=2点間は近いが生成されたカーブは長い場合に意図通りにならない(ただしうろ覚えです)
    • パス移動中に変更できない
  • カーブの接線が変更できないため、一度カーブした後に特に完全な直線を作るのは難しい
    • 前後 2 点までしか影響を受けないようなので、一応点を増やせば直線を作れるが、その前後がふくらんだりする問題の調整に追われる
  • 複数のパスを滑らかに接続するのが非常に困難
    • movetopath オプションを使えば線はつながるが、滑らかなカーブにはならない
  • すでに終了している Tween に対して iTween.Stop() すると例外が発生することがある
    • onComplete を使ってフラグ管理できなくもないが面倒
    • とりあえず try-catch しておけばスクリプトの停止は避けられる
  • iTweenPath でパスはエディタ上で編集できるが、あとで調整はしにくい

上記を知った上でツールの選択をされるのがよいと思います。

0 件のコメント:

コメントを投稿