Help us understand the problem. What is going on with this article?

【Unity】VRで立体視360画像を見る

はじめに

こんにちは。UT-virtual Advent Calendar 2019 、19日目担当のwappaboyです。
Insta360Proなどの全天球カメラで撮影した立体視360静止画をVRで見られるようにUnityで実装する方法を紹介します。

2019年4月に、サークルの新歓活動のために開発した「新歓VR」のプロジェクトを掘り起こして説明します。

使用したもの

  • Unity 2018.3.6f1
  • OculusGo
  • Insta360 Pro で撮影した両眼立体視の全天球静止画

こんな感じの、上下で右眼用と左眼用に分かれている1:1の画像が用意できていると良いです。
image.png

撮影時の設定にもよりますが、私が使用したオリジナル画像は 7680x7680 pixel でした。
Unity(OculusGo)で快適に動作するよう、Photoshop等の画像編集ソフトで 2048x1024 のサイズに上下を切り分けました
上半分が右眼、下半分が左眼です。

準備

実装を始めるにあたって、諸々必要な設定を行ってください。
UnityにおけるVR開発や、OculusGoのビルドに際しての設定は省略します。他の記事を参考にしてください。

必要なアセットのダウンロード

両眼用の天球の作成

まず、新しいMaterial Left Right を作ります。
それぞれのShaderを Unlit/Texture に変更し、先ほど作成した全天球立体視の分割画像をそれぞれアタッチします。
image.png

続いて、Sphere100をScene上に配置し、名前を LeftSphere 等にします。
MeshRendererのMaterialに先ほど作成した Left をアタッチします。するとこんな感じ。
image.png

そしてLeftSphereのLayerを Left にします。デフォルトではLeftレイヤーはないと思うので、Add Layer... から追加します。
このレイヤー設定をすることで、後のカメラ設定と合わせて両眼立体視で見られるようになるので、忘れないように!
image.png

RightSphereも同様に作成し、RightMaterialをアタッチ、Rightレイヤーを新しく作成して設定します。
LeftSphereとRightSphereは全く同じ位置に配置してください。
image.png

カメラの設定

続いてカメラの設定です。
まずOculus Integrationから OVRCameraRigをSceneに配置します。その他Oculus開発に関する説明は省略します。
OVRCameraRig > TrackingSpace 配下に Camera_LCamera_R を作成しましょう。
そしてそれぞれについて以下の設定をします。

  • Camera_L

    • Clear Flagsを Depth only
    • Culling Maskを Left のみにチェック
    • Target Eyeを Left
  • Camera_R

    • Clear Flagsを Depth only
    • Culling Maskを Right のみにチェック
    • Target Eyeを Right

image.png
image.png

これで、実際にヘッドマウントディスプレイで見ると右眼と左眼で異なる画像が描画されるので、立体視として全天球画像が見られると思います。
同様の方法で、3Dの全天球動画も実装できます。Unityでの動画再生自体はまた別の設定が必要ですがそこはよしなに...

最後に

今回の仕組みは東大VRサークル UT-virtualの新歓VRのために実装したのですが、完成品では立体視全天球画像を単に置くだけでなく、Shaderをいじってオシャレなフェードインをさせるなど随分と面倒な仕組みを追加していました。
こんな感じのものも作れちゃうUnityすごいですね。

welcomeVR2019.gif

読んでくださりありがとうございました。

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした