THETA SからOculus RiftへUSBライブストリーミング with Unity (Sphere編)
Theta SにはUSB接続でウェブカメラのように使える機能があるのですが、これを使って、Oculus Rift DK2でリアルタイム閲覧する方法について書きます。
(2015/12/23追記)
- 本記事では球体にライブ動画を貼り付けていますが、Skyboxに貼り付けることで同様の効果を得る方法がありましたので、以下の記事で紹介しています。
何が楽しいの?
- 見回すと自分がいる、とか
- 人間という身体ごとは入れない場所に入ったような体験をする、とか
例:「レゴの家に入ってみたい!」 - いつもとは異なる視点から外界を眺めてみる、とか
例:「背の高い人はいつもどういう風景を見ているんだろう?」
といった要は「テレイグジスタンス」ごっこができるツールになります。
参考にさせて頂いたページ
-
Stereoarts Homepage (Noraさん)
- @warapuri さんの高精細天球モデル
内側を向いた細かいポリゴンの天球モデルを公開します。 https://t.co/Wd6Osuqm6X Unityで全天動画等を作りたい場合、これを使ってくださいね〜
— 伊藤周 (@warapuri) 2014, 6月 23
感謝です!
ダウンロード
ソースコード(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 氏の高精細天球モデルが入っています。
- そのほかは最低限のものだけ入っています。
自分で作る場合の手順
- シーンにSphereまたは@warapuri 氏の高精細天球モデルSherer100(scale=100,100,100 rotation=0,180,180 position=0,0,0)を配置
- 上記オブジェクトにNoraさんのシェーダ(改)のついたマテリアル「ThetaRealtimeEquirectanguler (Both)」を適用
- 上記オブジェクトにWebCamDrawerスクリプトを追加
- カメラをposition=0,0,0に移動
- Build SettingsでVirtual Reality SupportedとStereoscopic RenderingをONにする
(※Unity5.1以降のVRサポートを利用する場合) - 以上。
使い方
・上記zipを任意の場所に解凍します
・Theta SをUSB配信モードで起動します
・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に上げたソースコードでは調整してみました。