LoginSignup
23
17

More than 1 year has passed since last update.

【Unity】PICO4 VRアプリ開発 パススルーアプリを作る

Last updated at Posted at 2022-10-16

はじめに

PICO4のカラーパススルーはARコンテンツにも使えます。
本記事では、パススルー用カメラ映像をUnityで利用する方法を説明します。
PICO4でのアプリ開発についてはこちらを参照してください。

Camera設定

MainCameraのClear FlagsをSolid Color
Backgroundを000000(Alpha値0)にする。
image.png

パススルーAPIを呼び出す

Pico SDKのPXR_Boundary.EnableSeeThroughManual(true) を呼び出すことで背景をパススルーカメラの映像に出来ます。
なお、このAPIはスリープからの復帰時にも呼ぶ必要があります。

サンプルコード

PassThroughSetter.csファイルを作成し、空のGameObject PassThroughSetterにアタッチします。

using Unity.XR.PXR;
using UnityEngine;

public class PassThroughSetter : MonoBehaviour
{
    void Start()
    {
        // シースルー設定
        PXR_Boundary.EnableSeeThroughManual(true);   
    }
    
    private void OnApplicationPause(bool pauseStatus)
    {
        // Pauseからの復帰時、再度シースルーにする
        if (!pauseStatus)
        {
            PXR_Boundary.EnableSeeThroughManual(true);
        }
    }
}

image.png

以上で設定は終わりです。ビルドしてPICO4で動かせば背景がパススルー映像になります。

パススルーカメラの映像をUnityで取得できるか?

以前はパススルー映像をRawImageとして取得するAPI PXR_PassThrough が存在していたのですが、最新のSDK(v2.1.1)にはないようです。
空間にCameraを配置しRenderTextureへ書き出す方法も試してみましたが、Backgroudのカラーが映るのみでパススルー映像は映りませんでした。

作例

PICO4のパススルーは単眼カメラですが、立体的に映像を歪ませ補正されています。
例えばこのような椅子の上に置いたオブジェクトもきちんと椅子に乗っているように見ることが出来ます。

ただし、近くの物体は補正による歪みの影響が強いので注意が必要です(例えば手を顔に近づけるなど)

おわりに

カラーパススルーができる一般向けのスタンドアローンVRデバイスの登場により、現実とVRを混ぜた新しい表現が生まれる可能性を感じます。

参考

公式ドキュメント
https://developer-global.pico-interactive.com/docs/en/12058/seethrough_camera_related/

23
17
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
23
17