Upload
satoshi-noda
View
245
Download
0
Embed Size (px)
Citation preview
モバイルVR「Daydream」でVRの世界にふれてみる
GDG神戸 野田 悟志
KOF2016 セミナー
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 Kobe05/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
自己紹介
GDG神戸 オーガナイザー (Manager)
VR歴2015年6月頃にCardboard、7月にOculusRift DK2を入手
Unity 5使って個人開発
2016年はVR勉強会いっぱいやってる
6/11にCV1来た!
10/13にPSVR来た!
OculusTouchとFOVE予約した!
OculusTouchは12/6~15(に来るらしい)、来年1月のFOVEが待ち遠しい。
Daydreamが日本に来るのいつ?
Magic The ShouterOculusGameJam(VRGameJam)2015 大阪会場
2015/11/28-29
ディフェンス系ゲーム。迫ってくる
敵を、魔法を唱えて迎え撃つ。
OculusRift用ゲーム。
https://github.com/ShingoKobayashi/M
agicTheShouterProject/releases/tag/0.2
LOOK BACK WESTERNCardboardハッカソン
Unityクリエーターズ/GDG京都 2015/12/12-13
西部劇風早打ちゲーム。西部劇のガンマンのよ
うに、お互いに背を向けあい、3つ数えたら振り
返って撃つ。
Cardboard用ゲーム。
https://github.com/scarviz/WesternHatsGunman/releases
/tag/0.1.0
今日話すこと
● VRについて
● VRコンテンツを作る上で知っておきたいこと
● Daydreamコンテンツの作り方
VRについて
VR(Virtual Reality)日本語では「人工現実感」や「実質的な現実」。
Virtual は「実質的な」、「事実上の」という意味なので、「仮想現実」は誤訳。
HMD(ヘッドマウントディスプレイ)を装着し、目の前の映像の中の世界に入っているよ
うな感覚(没入感)を得ることが出来る。
また、その世界の登場人物(動物)が、実際にそこに存在してるかのような感覚(存在感
:プレゼンス)を得ることが出来る。
2016年はVR元年と呼ばれ、Oculus Rift CV1、HTC Vive、PlaystationVR(PSVR)、Daydreamなど様々なVRのHMDがリリースされた。
Google VR
https://developers.google.com/vr/
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)
他のVRとの違い
● Daydreamの良い点○ OculusRiftやViveはハイスペックなPCが必要になる。
■ GPUが必須で、それなりに計算能力が高いものを求める。
■ 最低スペックで、3万円程度のグラフィックボードでも動くようになっているが、 HMDとPCで10
万円は超える。
■ Daydream-Readyな端末でも高くて7万円くらい(一般的なスマートフォンの一番いいクラスの
値段)。HMDは8千円くらい。
○ PSVRはPS4がなければならなく、ゲーム機なので、用途がかなり限定される。
■ スマートフォンは誰でも持っている、生活必需品となっている。汎用的。
● Daydreamの悪い点○ OculusRiftやVive、PSVRはポジショントラッキングがあるが、 Daydreamはない。
○ 十分質の良いVR体験ができるとは言い難い
■ モバイルVRとしては良いが、ハイエンド、ミドルレンジに比べ、はるかに劣る
● コンテンツ作成に一工夫入れる必要がある
VRコンテンツを作る上で知っておきたいこと
対象年齢
必ず13歳以上を対象とする。
13歳未満の場合、視覚の未発達により、障害が残る可能性がある。
● VRでは2つのディスプレイを使い、物を立体的に見ることができるようになっている。
● 自然な立体視と異なるため、斜視になる可能性がある。● 立体的にものを見るには、立体視細胞が必要になる。斜視になると立体視細胞の
成長の妨げとなり、立体的にものを見ることができなくなる可能性がある。
MoguraVR「なぜ13歳未満の子供は、Oculus Riftを使用してはいけないのか?医学的な見地からの警鐘」http://www.moguravr.com/13yearsold-limitation/
VR酔い
視覚情報は自分が動いているように見えてい
る(感じている)が、実際に体は動いていないた
めに、情報の不一致から起こる不快な現象。
特に移動時の加減速で発生しやすい。
車酔いに似ている。
一度酔うと、そのコンテンツや最悪VRは二度
としたくなくなる
VR酔い対策
対策として、移動手段をワープ移動(加減速が0)にしたり、
視点を3人称視点にしたりする。
下記記事が参考になる。
MoguraVR「VR酔い防止に向けて。これまで登場したVRでの酔わな
い移動方法のアイデアまとめ。」
http://www.moguravr.com/against-vr-nausea/
Crystal Rift1人称視点(FPS)の3DダンジョンRPGhttp://www.crystalrift.com/
酔わないのはどっち?
A. 自然にスムーズに進む方法 B. 従来のゲームと同じように
1マス毎に進む方法
プレゼンス(存在感)
プレゼンス(存在感)● プレゼンスとは
○ キャラクターが「そこにいる」としか思えない
○ 自分が「ここにいる」と自然に思っている状態
● どういう状況で感じるか○ 自分のことをキャラクターが認知していると感じやすい
■ キャラクターが自分の方を見る
■ 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
Daydreamコンテンツの作り方
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/1)では、Preview版のみで、Unity5.6から対応予定。
Unity Daydream Preview (11/1時点で5.4.2f2-GVR11)https://unity3d.com/jp/partners/google/daydream
https://github.com/scarviz/GDGKobeGoogleVRApp
Compile● IL2CPP
○ C#からC++にコンバート
○ 処理の高速化
○ NDK r10e■ UE4だとNDK r11c
○ Edit > Project Settings > Player の Other Settings > Configuration
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
ご清聴ありがとうございました