この記事でのバージョン
Unity 2017.4.4f1
はじめに
今回はキャラクターが常に特定の位置を見るように出来る
Head Look Controllerというアセットの紹介です!
Head Look Controller - Asset Store |
もちろんキャラクターがアニメーションした状態でも使えます。
Unity公式のアセットで、しかも無料です!
ただ、残念ながらiOSとAndroidは非対応らしいです。(未確認)
なお、本記事に出てくる女の子や家のアセットは以下のものを使っています。
導入
導入の仕方は他のアセットと同じく、Asset Storeからインポートするだけ。
なお、Head Look Testというサンプルシーンもあります。
使い方
次に使い方の説明です。
まず、HeadLookControllerというスクリプトをモデルにAddします。
次に、HeadLookControllerに以下の画像のように(サンプルと同じ)
各Transformをアタッチ、パラメータ設定します。
なお、モデルによって微妙に名前や場所が違うかもしれません。
最後にHeadLookControllerのtargetにLateUpdateで向いて欲しい位置を設定するだけです。
サンプルだとCursorHitがこれに該当するのですが、
余計なコードがあるので簡潔にまとめると以下のような感じ。
/// <summary> /// HeadLookControllerのTargetに自分の位置を設定るクラス /// </summary> public class HeadLookControllerTarget : MonoBehaviour { //自分の位置を設定するHeadLookController [SerializeField] private List<HeadLookController> _headLookControllerList = new List<HeadLookController>(); //Updateでアニメーションするので、その後に設定するように private void LateUpdate() { foreach (HeadLookController headLookController in _headLookControllerList) { //HeadLookControllerのtargetに自分の位置を設定 headLookController.target = transform.position; } } }
上記のHeadLookControllerTargetを作成し、向いて欲しいオブジェクト(今回はカメラ)にAddし、
HeadLookControllerをアタッチすれば準備完了。
これでだけでそのオブジェクトを追うようになります。
また、HeadLookControllerをListで設定出来るようにしてるので、
複数のキャラを同時に同じ方向に向かせる事も可能です。
なお、各パラメータについては以下の記事が参考になります。
おわりに
今回紹介したHead Look Controllerは、この前の合宿で作った札束風呂VRでも使ってたりします。
PS VRのねこあつめVRが話題ですが、ここで僕が開発合宿で作ったOculus Goの札束風呂VRを見てみましょう。 pic.twitter.com/77tcnqg0Nt
— カン@Game Creator(Unity/VR/Switch/Steam) (@Kan_Kikuchi) 2018年5月31日
キャラクターがカメラの方向、つまり自分の事を追うようにすると、
リアリティが増して、特にVRでは効果抜群な気がします……!