今回は、UnityのスタンダードアセットのUtilityにあるFollowTargetとSmoothFollowを使ってみたいと思います。
どちらのスクリプトも、スクリプトを設定したゲームオブジェクトがTargetに指定したゲームオブジェクトを追従するようになります。
FollowTargetはTargetから指定した距離を離れてすぐに付いていきます。
SmoothFollowは徐々に位置と回転をTargetの位置に近づけていきます。
両方ともゲームオブジェクトに取り付けてTargetを追従させますが、基本的にはカメラに取り付けてキャラクターを追従させる用途になると思います。
FollowTargetの取り付け
Assets→StandardAssets→UtilityにあるFollowTargetをMainCameraに取り付けます。
カメラに取りつけたらTargetに移動するキャラクター、OffsetにX:0、Y:1.5、Z:-3を設定し追従させてみます。
↑のようにキャラクターの移動先にカメラが付いていきます。
FollowTargetはシンプルにキャラクターを追いかけさせる時に便利ですが、カメラは向きを変えたりキャラクターの後ろに回りこんだりしない為、
真・三国無双とかそういった三人称のアクションゲーム等で活躍しますね。
SmoothFollowの取り付け
SmoothFollowスクリプトは追いかける対象の後ろに回り込むように移動するのでラジコン操作キャラクターを写すカメラとして最適かもしれません。
Assets→StandardAssets→UtilityにあるSmoothFollowをMainCameraに取り付けます。
Targetは追従するゲームオブジェクトを指定します。
DistanceはTargetからの距離を指定します。
HeightはTargetからの高さを指定します。
Rotation Dampingは回転するスピードを指定します。
Height Dampingは高さを合わせるスピードを指定します。
キャラクターの基点は足元にしている事が多いので、DistanceとHeightを変更するだけだとうまくキャラクターを写せない事があります。
そこでキャラクターの子要素に空のゲームオブジェクトを作成し、そこをTargetに指定する事で追従するポイントを変更します。
TargetにLookAtPoint、Distanceは3、Heightは0、Rotation Dampingは2、Height Dampingは2に設定して実行してみます。
↑のようになりました。
FollowTargetと違う徐々にキャラクターの後ろ側に回り込んでいます。
ラジコン操作キャラクターを、徐々に追従するカメラ用のスクリプトを自作したんですが、
わざわざ作る必要なかったですね・・・・(-.-)
まぁ自作出来たしいいか・・・・(ーー;)