LoginSignup
33
35

More than 3 years have passed since last update.

UnityでOpneCVを利用したハコスコVR体験

Last updated at Posted at 2015-08-01

全天球カメラ動画でVRアプリ

前回の記事「UnityでOpneCVを利用した動画再生をしてみた」の続編です。

今回は全天球カメラ動画を使ったVRアプリの作成+簡易HMD(ハコスコ)体験をしたいと思います。

下準備

投影用3Dモデルの配置

360度カメラTHETAで撮った写真・動画をUnityで使う」を参考に、全天球動画を貼りつけるための球状の3Dモデルをシーンに配置します。
面方向が内側に向くように面を反転させた球状のオブジェクトを作成する必要があります。
ありがたいことに参考サイト内でプロジェクトファイルが公開されているので、その中の3Dモデル「Sphere_for_360Camera」をそのまま使用させていただきました。

全天球動画の変換

前回の記事と同じようにffmpegを使ってMJPEG形式の動画に変換します。
(とりあえず以下の設定で変換しました)
ffmpeg -i ThetaMovie.MP4 -vcodec mjpeg -an -qscale 2 -s 640x320 ThetaMovie.avi

マテリアル設定とテクスチャの表示

  • 投影用3Dモデル用に新しいmaterialを作成して、shaderは「Unlit/Texture」を使用します。(照明の影響を受けないようにするため)
  • 前回の記事で作成した動画再生スクリプトを3Dモデルにアタッチします。

QiitaOpenCV_VR_screenshot.jpg

ヘッドトラッキング機能のAsset追加

簡易HMDを使ったVRハンズオンセミナー」を参考にして、ヘッドトラッキング機能のAssetをシーンにインポートします。
今回は、上の記事でもオススメされている「Durovis Dive SDK」を使用しました。

  • DurovisのサイトからDLした「Dive_Plugin_2.1.5.unitypackage」をインポートします。
  • 「Dive/Prefabs」フォルダ内にあるDive_CameraプレハブをHierarchyにドラッグして読み込みます。読み込んだカメラを含んだオブジェクトは投影用3Dモデルの中心に移動しておきます。
  • BuildSettingの[Scenes of Build]の一番上に「Dive/Scenes/Dive-Splashscreen」を追加するのを忘れずに。

これだけでiPhone/Android端末の傾きに対応してカメラ角度が変化するヘッドトラッキング機能が追加できました。

ハコスコで体験

さっそく「ハコスコ タタミ2眼」を購入してVRアプリを試してみました。

QiitaOpenCV_VR_hakosuko.jpg

ヘッドトラッキングの追従性も良好で、思った以上に没入感があります。

参考サイトの内容をほぼそのまま組み合わせただけで簡単にVRアプリが作成できました。

※この記事では、前回記事からの流れでの動画再生に「OpenCV for Unity」を使用していますが、動画再生機能だけならモバイルプラットフォーム対応の動画再生AssetをAssetStoreで購入して利用することをオススメします。(そっちのほうが安上がりで対応動画形式が豊富です)

関連記事

UnityでOpenCVを利用した顔検出・画像処理アプリ事始め
UnityでOpenCVを利用した顔検出・画像処理アプリ事始め2 サンプルコード詳解
「OpenCV for Unity」Assetのインポートサイズを削減する方法
UnityでOpneCVを利用した動画再生をしてみた
UnityでOpneCVを利用したハコスコVR体験

33
35
0

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
33
35