THETA SからOculus RiftへUSBライブストリーミング with Unity (Sphere編)

Theta SにはUSB接続でウェブカメラのように使える機能があるのですが、これを使って、Oculus Rift DK2でリアルタイム閲覧する方法について書きます。

 

(2015/12/23追記)

  • 本記事では球体にライブ動画を貼り付けていますが、Skyboxに貼り付けることで同様の効果を得る方法がありましたので、以下の記事で紹介しています。

 

何が楽しいの?

  • 見回すと自分がいる、とか
  • 人間という身体ごとは入れない場所に入ったような体験をする、とか
    例:「レゴの家に入ってみたい!」
  • いつもとは異なる視点から外界を眺めてみる、とか
    例:「背の高い人はいつもどういう風景を見ているんだろう?」

といった要は「テレイグジスタンス」ごっこができるツールになります。

参考にさせて頂いたページ

感謝です!

ダウンロード

ソースコード(Unity v5.22プロジェクト): https://bitbucket.org/mhama/thetaoculuslivestreaming

Windows向けexe: 

Theta S+Oculus DK2 でライブストリーミング(2 - BowlRoll

内容 

  • Noraさんのシェーダを使わせて頂きました。 (Assets/ThetaShaderPackディレクトリ以下はNoraさんのzipの構成です)
  • そのままでは標準のSphereに使うと反転してしまうため、シェーダにUVのUだけ左右反転するよう改造を行っています。(Theta/RealtimeEquirectangular)
  • Assets/SphereModel 以下に @warapuri 氏の高精細天球モデルが入っています。
  • そのほかは最低限のものだけ入っています。

自分で作る場合の手順

  1. シーンにSphereまたは@warapuri 氏の高精細天球モデルSherer100(scale=100,100,100 rotation=0,180,180 position=0,0,0)を配置
  2. 上記オブジェクトにNoraさんのシェーダ(改)のついたマテリアル「ThetaRealtimeEquirectanguler (Both)」を適用
  3. 上記オブジェクトにWebCamDrawerスクリプトを追加
  4. カメラをposition=0,0,0に移動
  5. Build SettingsでVirtual Reality SupportedとStereoscopic RenderingをONにする
    (※Unity5.1以降のVRサポートを利用する場合)
  6. 以上。

f:id:hammm:20151206161424p:plain

使い方

・上記zipを任意の場所に解凍します

・Theta SをUSB配信モードで起動します

www.youtube.com

・Theta SをUSBでPCに接続します

Oculus Rift DK2を接続します

・ThetaOculusLiveStreaming.exeを起動します

注意

終了ルーチンを入れていないので、終了するときはAlt+F4とかAlt+Tabとかで適当に終了してください! 入れました

標準のSphereを利用している関係上歪みが目立ちます。より精細な球モデルを利用すればより良い絵になると思います。 @warapuri さんの高精細天球モデルで解消しました!感謝!

・今回はお手軽なUSB接続の手法を紹介しましたが、Theta SのHDMI出力をキャプチャできれば、より高精細のライブビュー画像が取得できます。

 

Enjoy!

 

履歴

2015/12/6 プログラムの修正(@warapuriさんの天球モデルを利用)

2015/12/6 ややわかりにくかったので題名微修正しました。

2015/12/23 Skyboxを利用した方法を別記事で書いたので、この記事はSphere編と改題しました。

2015/12/23 本記事で用いたシェーダ(ThetaRealtimeEquirectangular.shader)では、手前に物体を描画できないという特性になっていましたが、BitBucketに上げたソースコードでは調整してみました。