Upload
satoshi-noda
View
154
Download
1
Embed Size (px)
Citation preview
モバイルVR「Daydream」について
GDG神戸 野田 悟志
DevFest Kansai 2016
2015年GDG神戸開催イベント
● 扱った言語/技術
Go、Angular、Android、AndroidWear、WebAudioApi、AndroidTV、Cardboard、Polymer、Firebase、TensorFlow
● イベント
I/O Extended、I/O報告会、忘年会
合計15回
2016年開催/開催予定02/28 GDG神戸 機械学習勉強会 [AlphaGoの論文を読む会 ]
03/12 Unity入門勉強会(PG向け)
04/16 Angular 2ハンズオン勉強会
04/24 VRに興味ある人のための Unity入門講座【関西】
04/30 Cloud Vision Api & Tensorflow勉強会
05/18-19 Google I/O Extended 2016 ライブストリーミング in Kobe
05/28 Cardboard勉強会
06/11 Google I/O Extended 報告会 2016 in 関西
06/25-26 VRアプリ開発勉強会
07/30 Progressive Web Appsハンズオン勉強会
09/10 Android Nougat(7.0)勉強会
11/12 KOF2016 セミナー 『モバイルVR「Daydream」でVRの世界にふれてみる』
11/27 Devfest Kansai 2016
12/10 Angular2勉強会
12/29 GDG神戸 2016年忘年会
Doorkeeper GDG神戸コミュニティページ https://gdgkobe.doorkeeper.jp/
自己紹介
GDG神戸 オーガナイザー (Manager)
VR歴2015年6月頃にCardboard、7月にOculusRift DK2を入手
Unity 5使って個人開発
2016年はVR勉強会いっぱいやってる(5回+一部セッション2回)6/11にCV1来た!
10/13にPSVR来た!
OculusTouchとFOVE予約した!
OculusTouchは12/6~15(に来るらしい)、来年1月のFOVEが待ち遠しい。
Daydreamが日本に来るのいつ?
→Japan VR Summit 2 (11/16)で言及あり http://vrinside.jp/news/jvrs2-sec1/
今日話すこと
● Daydreamとは
● Unityでの導入方法
● VRコンテンツを作る上で知っておきたいこと
Daydreamとは
Google VR
https://developers.google.com/vr/
VR(Virtual Reality)日本語では「人工現実感」や「実質的な現実」。
Virtual は「実質的な」、「事実上の」という意味なので、「仮想現実」は誤訳。
HMD(ヘッドマウントディスプレイ)を装着し、目の前の映像の中の世界に入っているよ
うな感覚(没入感)を得ることが出来る。
また、その世界の登場人物(動物)が、実際にそこに存在してるかのような感覚(存在感
:プレゼンス)を得ることが出来る。
2016年はVR元年と呼ばれ、Oculus Rift CV1、HTC Vive、PlaystationVR(PSVR)、Daydreamなど様々なVRのHMDがリリースされた。
Daydream-Ready
● Low Persistence Display
● High Performance SoCs
● Low Latency, High Quality Sensors
ハイスペックな理由
● 人間はヘッドトラッキングのレイテンシーが20msより長くになると、不自然に感じ
る。その状態が続くとVR酔いが発生する。○ Snapdragon 820(以降)が必要。Snapdragon 820は18ms以下のレイテンシーを実現している。
● フレームレートが低いと上記同様VR酔いが発生する。
○ 没入感の観点から、60FPSでも足りない。理想は120FPS以上。
(http://gamesonytablet.blogspot.jp/2014/03/blog-post.html)
対応機種(11/25現在)● Google Pixel (HTC) ※国内未発売
○ Snapdragon 821
● Google Pixel XL (HTC) ※国内未発売
○ Snapdragon 821
● Moto Z (Lenovo) ※Android 7.0アップグレード必要
○ Snapdragon 820
● Moto Z Force (Lenovo) ※Android 7.0アップグレード必要。国内未発売 (Verizon)
○ Snapdragon 820
● ZTE Axon 7 (ZTE) ※2017年1月頃にAndroid7.0アップグレード予定
○ Snapdragon 820
CCD(Compatibility Definition Document)「7.9. Virtual Reality 」https://static.googleusercontent.com/media/source.android.com/ja//compatibility/7.0/android-7.0-cdd.pdf
以下のようなことが書いてある(一例)● ディスプレイ
○ 画像解像度:1080p以上。1440p以上を強く推奨
○ サイズ:4.7インチ~6インチ
● コア○ 最低2つの物理コアが必要
○ VRアプリケーション用に専用のコアを割り当て、ほかのプロセスが実行しないようにする
GPU性能
GPU : Adreno 530● Snapdragon 820、820A (MSM8996)
○ 407.4~498.5 GFLOPS
● Snapdragon 821 (MSM8996PRO)○ 519.2 GFLOPS
Oculus Ready GPU (Asynchronous Spacewarp) :● NVIDIA GeForce GTX 960
○ 2.30 TFLOPS
PS4 GPU : ● AMD Radeon based graphics engine
○ 1.84 TFLOPS
他のVRとの違い
● Daydreamの良い点○ 価格が比較的安い
■ Daydream-Readyな端末は6~7万円くらいで入手可能。 HMDは8千円くらい。
■ OculusRift CV1やHTC ViveはハイスペックなPCが必要になる。
● GPUが必須で、それなりに計算能力が高いものを求める。
● 最低スペックで、3万円程度のグラフィックボードでも動くようになっているが、 HMDと
PCで15万以上。だいたい20万近くなる。 (OculusRift CV1は約9万、HTC Viveは約10
万。OculusReady PCで$499も)
■ PSVRは約5万+PS4(Slimなら3万くらい、Proなら4万5千くらい)で8万~9万くらい。
○ 用途が汎用的
■ PSVRはPS4専用なので、用途がゲームに限定される。
■ スマートフォンは生活必需品。汎用的。
○ 持ち運びが楽
■ 出先でVRする人はかなり特殊な気もするが、新幹線とか飛行機とか長時間狭いところにいな
いといけない場合は快適になるらしい
他のVRとの違い
● Daydreamの悪い点○ ポジショントラッキングがない
■ OculusRift CV1やHTC Vive、PSVRはポジショントラッキングがあるが、 Daydreamはない。
■ 同様にDaydreamのコントローラもポジショントラッキングできない
○ 十分質の良いVR体験ができるとは言い難い
■ モバイルVRとしては良いが、ハイエンド、ミドルレンジに比べ、はるかに劣る
● コンテンツ作成に一工夫入れる必要がある
○ バッテリー持ち、発熱問題
■ バッテリーが激しく消費されたり、発熱の問題がある
Unityでの導入方法
https://developers.google.com/vr/concepts/dev-kit-setup
Dev Kit● Viewer
○ Cardboard
● Viewer Phone○ Nexus6P (Android
Nougat)
● Controller Emulator○ Android(API19 or
higher)
Viewer PhoneAndroid NougatDev Kit
Controller Emulator● Connect
○ Bluetooth
Bluetooth
https://github.com/googlevr/gvr-android-sdk/blob/master/apks/controller_emulator.apk?raw=truehttps://developers.google.com/vr/concepts/dev-kit-setup#set_up_the_controller_phone
Controller Emulator App
Google VR SDK for Unity● Google VR SDK for Unity
○ https://github.com/googlevr/gvr-unity-sdk/raw/master/GoogleVRForUnity.unitypackage
■ http://www.slideshare.net/satoshinoda792/c
ardboard-62501002
● Unity○ 5.2.1 or later
● Debug (Controller)○ USB○ WiFi Hotspot
Unity Daydreamネイティブ対応
UnityのDaydreamネイティブ対応版を使用すると、チェックボックスにチェックを入れる
だけでステレオカメラ化される。
コントローラを使用するには、SDKが必要になる。
現在(11/25)では、Preview版のみで、Unity5.6から対応予定。
Unity Daydream Preview (11/25時点で5.4.2F2-GVR12)https://unity3d.com/jp/partners/google/daydream
https://github.com/scarviz/DaydreamSample-GVR1.0.3※Readmeに実装方法あり
Google VR SDK for Unity
https://developers.google.com/vr/unity/controller-basics
Google VR SDK for Unityvoid Update() {
if(GvrController.IsTouching) { /* タッチしている状態かどうか */ }if(GvrController.TouchDown) { /* タッチしたかどうか(1フレーム後) */ }if(GvrController.TouchUp) { /* タッチをやめたかどうか(1フレーム後) */ }Vector2 pos = GvrController.TouchPos; // タッチパッド上のタッチ位置
if(GvrController.ClickButton) { /* クリックしている状態かどうか */ }if(GvrController.ClickButtonDown) { /* クリックしたかどうか(1フレーム後) */ }if(GvrController.ClickButtonUp) { /* クリックをやめたかどうか(1フレーム後) */ }
if(GvrController.AppButton) { /* Appボタンを押下している状態かどうか */ }if(GvrController.AppButtonDown) { /* Appボタンを押下したかどうか(1フレーム後) */ }if(GvrController.AppButtonUp) { /* Appボタンの押下をやめたかどうか(1フレーム後) */ }
}
Google VR SDK for Unity● GvrControllerState
○ Disconnected○ Scanning○ Connecting○ Connected○ Error
Google VR SDK for Unity● GvrController
○ Orientation
Google VR SDK for Unity● GvrController
○ Gyro○ Accel
https://github.com/scarviz/D-Cleaver/releases/tag/v0.2.0
Compile● IL2CPP
○ C#からC++にコンバート
○ 処理の高速化
○ NDK r10e■ UE4だとNDK r11c
○ Edit > Project Settings > Player の Other Settings > Configuration
VRコンテンツを作る上で知っておきたいこと
対象年齢
必ず13歳以上を対象とする。
13歳未満の場合、視覚の未発達により、障害が残る可能性がある。
● VRでは2つのディスプレイを使い、物を立体的に見ることができるようになっている。
● 自然な立体視と異なるため、斜視になる可能性がある。● 立体的にものを見るには、立体視細胞が必要になる。斜視になると立体視細胞の
成長の妨げとなり、立体的にものを見ることができなくなる可能性がある。
MoguraVR「なぜ13歳未満の子供は、Oculus Riftを使用してはいけないのか?医学的な見地からの警鐘」http://www.moguravr.com/13yearsold-limitation/
VR酔い
視覚情報は自分が動いているように見えてい
る(感じている)が、実際に体は動いていないた
めに、情報の不一致から起こる不快な現象。
特に移動時の加減速で発生しやすい。
車酔いに似ている。
一度酔うと、そのコンテンツや最悪VRは二度
としたくなくなる
プレゼンス(存在感)
プレゼンス(存在感)● プレゼンスとは
○ キャラクターが「そこにいる」としか思えない
○ 自分が「ここにいる」と自然に思っている状態
● どういう状況で感じるか○ 自分のことをキャラクターが認知していると感じやすい
■ キャラクターが自分の方を見る
■ Oculus Riftの「Lucky's Tale」や「Mikulus」、PSVRの「サマーレッスン」
○ 冒頭で、自分がどういう状況にいるのか、どういう役なのか、を教えておく。その世界に誘導する
■ Oculus Riftの「Henry」や「Damaged Core」
● 「Henry」では、Henryがどういう状況にいるか説明がある
● 「Damaged Core」では、チュートリアルを通して、自分がどういう役なのか説明がある
○ 自分の手があるとよりそれらしく感じる
■ Oculus Riftの「Bullet Train」
■ アバターでなくていい。もし女性が男性のアバターやその逆だと違和感でしかなく、プレゼン
スを破壊してしまう
プレゼンス(存在感)GOROmanさん
「VR におけるプレゼンスの維持と破壊」
http://qiita.com/GOROman/items/41f620957120d2b52ac3
Oculusベストプラクティス
VR酔いをはじめ、どうやればより良いVRコンテンツを作れるかについて、Oculus がベス
トプラクティスを公表している。
Oculusベストプラクティス
http://static.oculus.com/documentation/pdfs/ja-jp/intro-vr/latest/bp.pdf
ご清聴ありがとうございました