読者です 読者をやめる 読者になる 読者になる

渋谷ほととぎす通信

完全趣味でやってるUnityメモ。説明できないところを説明できるようにするための個人ブログ。昨日の自分より少しでも大きく慣れるように。。。 ※所属団体とは一切関係がありません

DOTween SetLookAt設定が面白い話


f:id:esakun:20161220002358p:plain

環境

  • Unity 5.5.0p2
  • DOTween 1.1.310

あまりDOPathDOLocalPathを使ってこなかったので気づきませんでしたが、この2つを使用する際は、SetLookAt関数が使用できます。

Tween中のオブジェクトの向きを指定可

SetLookAtを使用すると、トゥイーン中のオブジェクトの向きを動的に更新してくれます。

  • Vectro3 向くポジション
  • Transform 向くターゲット
  • float lookAhead

このように3種の型をサポートしています。

Vector3, Transformはイメージしやすいですが、float型のlookAheadとはなんぞや?となりました。
公式にlookAheadと説明されております。
※SetLookAt関数第2引数はオブジェクトが向く方向、第3引数はオブジェクトの上方向を指定します。

実際にトゥイーンさせてみる

transform.DOLocalPath (new Vector3[]{ new Vector3 (2.6f, 0, -2f), Vector3.zero }, 4f, PathType.CatmullRom)
    .SetLookAt (0.001f, Vector3.forward)
    .SetEase (Ease.Linear);

0.001fを指定

f:id:esakun:20161220001553g:plain

transform.DOLocalPath (new Vector3[]{ new Vector3 (2.6f, 0, -2f), Vector3.zero }, 4f, PathType.CatmullRom)
    .SetLookAt (0.3f, Vector3.forward)
    .SetEase (Ease.Linear);

0.3fを指定

f:id:esakun:20161220001522g:plain

よ〜〜〜く見比べないと分かりませんが、後者Unity-chanの方がカーブを曲がる際にカーブを先読みした形で身体を傾けていることが分かります。

どうやらlookAheadで指定した秒数先の方向をセットしてくれているようです。
値が小さければ小さいほど、カーブの方向を向いてくれます。
ソースコードを読むと最小値は0.0001とのことです。それ以下を指定してもClampされます。

まとめ

今回SD Unity-chanを走らせてみましたが、2つのアニメーションを見比べると前者はいかにも調整前感がにじみ出ています。一方後者のUnity-chanはゴールを地点を見ながら走ってる印象を与えるのでよりリアルな走行に見えてきます。

SetLookAtの引数float型(lookAhead)はとても便利だと思いました。

あわせてどうぞ

www.shibuya24.info

www.shibuya24.info

www.shibuya24.info

www.shibuya24.info