2枚の平面画像をパノラマ化してMeta Questで立体視 (その2 Blender編)


前回の記事「2枚の平面画像をパノラマ化してMeta Questで立体視 (その1 概要編)」の続き。右目用・左目用がセットになった画像をMeta Questの標準の画像ビューアで立体視できるように変換する方法を紹介する。

Blenderを使う方法とPythonを使う方法の2通りを紹介するが、今回はBlender編だ。

テンプレートを使う

こちらに、テンプレートとして使えるBlenderデータを用意した。ダウンロードしてすぐ使える。

📦stereo_poster_blender.zip

zipを展開すると、中身はこうなっている。stereo_poster.blendがBlenderファイル本体。

imgディレクトリ内には、右目画像のright.pngと左目画像のleft.pngが入っている。これは私が撮ってきた仮画像なので、実際に使いたい画像にすり替える。

使い方は次の通り。

  1. img/right.pngimg/left.pngを好きな画像にすり替える。とにかく試すだけなら同梱の仮画像でOK。
  2. stereo_poster.blendをBlenderで開く。こんな感じにカメラとポスター、そして光源が置かれた空間が現れる。
  3. “Render > Render Image” を選ぶ。

    レンダリング画面が開き、描画が始まる。
  4. ViewLayerを選ぶプルダウンがあるので、”ViewLayerLeft” を選ぶ。
  5. レンダリングが終わるのを待ち、レンダリング画面で “Image > Save As…” を選び、保存する。
  6. 今度は”ViewLayerRight” を選び、同様に保存する。
  7. 何らかの画像編集ソフトで、保存した2枚の画像を上下に配置した画像を作る。上が左目用、下が右目用。
  8. 鑑賞する。鑑賞方法については、2枚の平面画像をパノラマ化してMeta Questで立体視 (その1 概要編)に書いておいた。

このデータは、水平画角100°のけっこう広角画像に合うように作ってある。それよりも画角が小さい場合は、立体視したときに奥行きが薄く見えたり、歪んで見えたりすることがある。その場合、画像サイズを適宜縮小してほしい。

いちから自分で作成する

  1. まず、左目画像用のPlaneを設置し、ポスターとして使う。縦横比は元画像に合わせ、撮影時の画角と合致するような場所に設置する。サイズや位置を正確にするためには数値入力するといい。
  2. 設置したPlaneに画像を貼りつける。Planeを選択してMaterial設定を開き、Base ColorにImage Textureを指定し、左目画像を参照する。これを複製して画像を変更し、右目用のポスターを作成する。
  3. 左目用と右目用のViewLayerを作り、切り替えられるようにする。
    • ViewLayerを新規作成。それぞれ “ViewLayerLeft”, “ViewLayerRight” などと名付けてわかりやすくしておく。
    • 左目用と右目用とCollectionを作成し、左目用のPlaneは左目用Collectionに、右目用のPlaneは右目用のCollectionに入れる。
    • 左目用ViewLayerを選んだ状態で、右目用Collectionのチェックボックスをオフにする。同様に、右目用ViewLayerを選んだ状態で、左目用Collectionのチェックボックスをオフにする。これで、ViewLayerを切り替えることでポスターの表示・非表示が切り替えられるようになった。
  4. カメラを原点に設置し、ポスターの方に向ける。
  5. パノラマ撮影ができるようにする。
    • Scene > Render Engineを開く。デフォルトではEeveeになっていると思うが、Cyclesに変更する。
    • 解像度を設定。縦横比が2:1になるようにする。4096×2048ピクセル、できれば8192×4096ピクセル欲しい。
    • レンズを設定。
  6. 光源を置く。面が均等に照らされるようにするといい。弱めの太陽光を当てたが、もっといいライティングがあるかもしれない。
  7. あとはレンダリング。