SONY

検出した顔の位置を取得してみよう

このページでは、UnityでSpatial Reality Displayが検出している顔の位置を利用してコンテンツを作成する方法を説明します。Pluginに含まれているサンプルで試すこともできます。

  1. Spatial Reality Displayのセットアップ, 完了していない場合はSetup Spatial Reality DisplaySetup Spatial Reality Display Settingsを参照してください
  2. SRDisplay UnityPluginがインストールされたUnity Projectがあること, 準備していない場合Setup for Unityを参照してください
  1. こちらを参考にSRDisplayManager Prefabを配置します。 また、ここではAssets / SRDisplayUnityPlugin / Runtime / PrefabsにあるSRDisplayBox Prefabについても配置しています。

  2. SRDisplayManager Prefab内に収まるように調整しながら、3Dオブジェクトを使い、キャラクターを作成します。

  3. C# Scriptを追加します。
    追加したスクリプトを開き、以下のように編集します。追加したスクリプトのファイル名とクラス名は同じ名前にするようにしてください。

    
                    using UnityEngine;
                    public class LookAtYou : MonoBehaviour
                    {
                        public GameObject LookAtTarget;
                        void Update()
                        {
                            if (LookAtTarget == null)
                            {
                                return;
                            }
                            var forwardVec = this.transform.position - LookAtTarget.transform.position;
                            this.transform.rotation = Quaternion.LookRotation(forwardVec, Vector3.up);
                        }
                    }
                  
  4. 作成したC#スクリプトを顔の部分のオブジェクトにアタッチします。
    SRDisplayManagerの子オブジェクトになっているWatcherAnchorをLook At Targetに指定します。WatcherAnchorは実行時の顔の位置を表します。(詳しくは、こちら)

  5. アプリを実行してみましょう。あなたの顔の位置に合わせて、キャラクターが顔を向けます。