はじめに

前回の続きです。
今回はVRMの一人称視点対応を行ってみます。そんなに長い内容ではないのですぐに終わります。参考になれば幸いです。アドバイスや間違っている箇所ご指摘等いただけれると励みになります。

一人称視点時の対応

普通にカメラを設定してしまうと頭のモデルに被るようになってしまいます。
キャプチャ2.PNG

まずはこの対応です。

タグとレイヤーの設定

一人称視点時のマスクはレイヤーで設定しているようなので、レイヤーの9と10に以下の値を設定します。

レイヤーのNo 設定する値
User Layer 9 FIRSTPERSON_ONLY_LAYER
User Layer10 THIRDPERSON_ONLY_LAYER

キャプチャ3.PNG

カメラのマスクを設定

キャラの目線に設定しているカメラのマスクを変更します。今回はMainCameraがそのまま視点なのでMainCameraの値を変更。

キャプチャ4.png

一人称視点のセットアップ用スクリプトを作成する

以下のスクリプトを用意し、Scene上のVRMモデルにアタッチします。

VRMFirstPersonSetting.cs
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using VRM;

[RequireComponent(typeof(VRMFirstPerson))]
public class VRMFirstPersonSetting : MonoBehaviour {

    [SerializeField] bool isFirtPerson;

    VRMFirstPerson vrmFirstPerson;

    void Start () {

        vrmFirstPerson = GetComponent<VRMFirstPerson>();

        if(isFirtPerson)
            vrmFirstPerson.Setup();

    }

    void Update () {

    }
}

キャプチャ5.PNG

これで実行すれば一人視点でうまく頭部が除外されるはずです。
キャプチャ6.png

うまく行かない場合・・・

モデルによってはVRMのVRMFirstPersonの値を調整する必要があるかもしれません。
キャプチャ7.PNG

次回

さんざん色々な場所に記事ありますが、SteamVRでの設定を簡単にまとめます。
というかSteamVRでやった方が精度が良い感じだった・・・

Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account log in.