Unityでキャラにこっちを見てほしい(Head Look Controller編)

2016年04月19日

なぜか五七五タイトル。

Head Look ControllerというUnity公式アセットを使って、キャラクターの頭を上半身ごといろんな方向に振り向かせることができます。

簡単に説明すると、キャラクターにHead Look Controllerコンポーネントをセットアップして、コンポーネントのTargetに座標をセットすると、キャラクターがその方向を向くようになっています。

TargetにVRのカメラの座標を毎フレーム設定すれば、キャラクターがこちらをずっと見てくれるようになります。とりあえず、サンプルシーンを簡単に改造してみましょう。

VR向けのプロジェクトの作成

まずVR向けのプロジェクトを作成します。

(HTC Viveの場合)

  • Unity 5.3.xで新規プロジェクトを作成
  • Asset StoreからSteamVR Pluginをインポート、Accept Allをクリック

詳しくはUnity+HTC Vive開発メモを参照してください。

(Oculus Riftの場合)

Unity+Oculus Rift開発メモを参照してください。

サンプルシーンの改造

Head Look ControllerアセットにHead Look Testというサンプルシーンが含まれています。キャラクターがマウスでポイントした方向を向くようになっていますが、これを、VRでこっちを向いてくれるように改造します。以下の手順に従ってください。

  • Head Look Controllerをインポート
  • Head Look Controller/Head Look Testシーンを開く
  • (HTC Viveの場合)Main Cameraを無効化してSteamVR/Prefabs/[CameraRig]をシーンに配置
  • シーンのTarget Sphereを削除または無効化(マウスで向きを指定するためのオブジェクトです)
  • Target.csという名前で以下のスクリプトを作って、
    (HTC Viveの場合)[CameraRig]/Camera (head)
    (Oculus Riftの場合)Main Camera
    にアタッチ
using UnityEngine;

public class Target : MonoBehaviour
{
    public HeadLookController controller;

    void LateUpdate()
    {
        controller.target = transform.position;
    }
}
  • 最後にTargetコンポーネントのControllerにHumanを割り当て

これでとりあえずこちらを向いてくれるようになったと思います。

キャラクターにHead Look Controllerをセットアップする

φ(..)メモメモ中

なお、Head Look ControllerのパラメータについてはSomeluさんのエントリが詳しいです。

HTC Viveのルームスケールトラッキングだと、キャラクターの周りを歩いて回れたりするので楽しいですね。妄想……もとい夢が膨らみます。

(書いた人: こりん

技術ブログトップへ