38
モバイルVR DaydreamVRの世界に ふれてみる GDG神戸 野田 悟志 KOF2016 セミナー

モバイルVR「Daydream」でVRの世界にふれてみる

Embed Size (px)

Citation preview

Page 1: モバイルVR「Daydream」でVRの世界にふれてみる

モバイルVR「Daydream」でVRの世界にふれてみる

GDG神戸 野田 悟志

KOF2016 セミナー

Page 2: モバイルVR「Daydream」でVRの世界にふれてみる

2015年GDG神戸開催イベント

● 扱った言語/技術

Go、Angular、Android、AndroidWear、WebAudioApi、AndroidTV、Cardboard、Polymer、Firebase、TensorFlow

● イベント

I/O Extended、I/O報告会、忘年会

合計15回

Page 3: モバイルVR「Daydream」でVRの世界にふれてみる

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

Page 4: モバイルVR「Daydream」でVRの世界にふれてみる

自己紹介

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が日本に来るのいつ?

Page 5: モバイルVR「Daydream」でVRの世界にふれてみる

Magic The ShouterOculusGameJam(VRGameJam)2015 大阪会場

2015/11/28-29

ディフェンス系ゲーム。迫ってくる

敵を、魔法を唱えて迎え撃つ。

OculusRift用ゲーム。

https://github.com/ShingoKobayashi/M

agicTheShouterProject/releases/tag/0.2

Page 6: モバイルVR「Daydream」でVRの世界にふれてみる

LOOK BACK WESTERNCardboardハッカソン

Unityクリエーターズ/GDG京都 2015/12/12-13

西部劇風早打ちゲーム。西部劇のガンマンのよ

うに、お互いに背を向けあい、3つ数えたら振り

返って撃つ。

Cardboard用ゲーム。

https://github.com/scarviz/WesternHatsGunman/releases

/tag/0.1.0

Page 7: モバイルVR「Daydream」でVRの世界にふれてみる

今日話すこと

● VRについて

● VRコンテンツを作る上で知っておきたいこと

● Daydreamコンテンツの作り方

Page 8: モバイルVR「Daydream」でVRの世界にふれてみる

VRについて

Page 9: モバイルVR「Daydream」でVRの世界にふれてみる

VR(Virtual Reality)日本語では「人工現実感」や「実質的な現実」。

Virtual は「実質的な」、「事実上の」という意味なので、「仮想現実」は誤訳。

HMD(ヘッドマウントディスプレイ)を装着し、目の前の映像の中の世界に入っているよ

うな感覚(没入感)を得ることが出来る。

また、その世界の登場人物(動物)が、実際にそこに存在してるかのような感覚(存在感

:プレゼンス)を得ることが出来る。

2016年はVR元年と呼ばれ、Oculus Rift CV1、HTC Vive、PlaystationVR(PSVR)、Daydreamなど様々なVRのHMDがリリースされた。

Page 10: モバイルVR「Daydream」でVRの世界にふれてみる

Google VR

https://developers.google.com/vr/

Page 11: モバイルVR「Daydream」でVRの世界にふれてみる

Daydream-Ready

● Low Persistence Display

● High Performance SoCs

● Low Latency, High Quality Sensors

Page 12: モバイルVR「Daydream」でVRの世界にふれてみる

ハイスペックな理由

● 人間はヘッドトラッキングのレイテンシーが20msより長くになると、不自然に感じ

る。その状態が続くとVR酔いが発生する。○ Snapdragon 820(以降)が必要。Snapdragon 820は18ms以下のレイテンシーを実現している。

● フレームレートが低いと上記同様VR酔いが発生する。

○ 没入感の観点から、60FPSでも足りない。理想は120FPS以上。

(http://gamesonytablet.blogspot.jp/2014/03/blog-post.html)

Page 13: モバイルVR「Daydream」でVRの世界にふれてみる

他のVRとの違い

● Daydreamの良い点○ OculusRiftやViveはハイスペックなPCが必要になる。

■ GPUが必須で、それなりに計算能力が高いものを求める。

■ 最低スペックで、3万円程度のグラフィックボードでも動くようになっているが、 HMDとPCで10

万円は超える。

■ Daydream-Readyな端末でも高くて7万円くらい(一般的なスマートフォンの一番いいクラスの

値段)。HMDは8千円くらい。

○ PSVRはPS4がなければならなく、ゲーム機なので、用途がかなり限定される。

■ スマートフォンは誰でも持っている、生活必需品となっている。汎用的。

● Daydreamの悪い点○ OculusRiftやVive、PSVRはポジショントラッキングがあるが、 Daydreamはない。

○ 十分質の良いVR体験ができるとは言い難い

■ モバイルVRとしては良いが、ハイエンド、ミドルレンジに比べ、はるかに劣る

● コンテンツ作成に一工夫入れる必要がある

Page 14: モバイルVR「Daydream」でVRの世界にふれてみる

VRコンテンツを作る上で知っておきたいこと

Page 15: モバイルVR「Daydream」でVRの世界にふれてみる

対象年齢

必ず13歳以上を対象とする。

13歳未満の場合、視覚の未発達により、障害が残る可能性がある。

● VRでは2つのディスプレイを使い、物を立体的に見ることができるようになっている。

● 自然な立体視と異なるため、斜視になる可能性がある。● 立体的にものを見るには、立体視細胞が必要になる。斜視になると立体視細胞の

成長の妨げとなり、立体的にものを見ることができなくなる可能性がある。

MoguraVR「なぜ13歳未満の子供は、Oculus Riftを使用してはいけないのか?医学的な見地からの警鐘」http://www.moguravr.com/13yearsold-limitation/

Page 16: モバイルVR「Daydream」でVRの世界にふれてみる

VR酔い

視覚情報は自分が動いているように見えてい

る(感じている)が、実際に体は動いていないた

めに、情報の不一致から起こる不快な現象。

特に移動時の加減速で発生しやすい。

車酔いに似ている。

一度酔うと、そのコンテンツや最悪VRは二度

としたくなくなる

Page 17: モバイルVR「Daydream」でVRの世界にふれてみる

VR酔い対策

対策として、移動手段をワープ移動(加減速が0)にしたり、

視点を3人称視点にしたりする。

下記記事が参考になる。

MoguraVR「VR酔い防止に向けて。これまで登場したVRでの酔わな

い移動方法のアイデアまとめ。」

http://www.moguravr.com/against-vr-nausea/

Page 18: モバイルVR「Daydream」でVRの世界にふれてみる

Crystal Rift1人称視点(FPS)の3DダンジョンRPGhttp://www.crystalrift.com/

Page 19: モバイルVR「Daydream」でVRの世界にふれてみる

酔わないのはどっち?

A. 自然にスムーズに進む方法 B. 従来のゲームと同じように

1マス毎に進む方法

Page 20: モバイルVR「Daydream」でVRの世界にふれてみる

プレゼンス(存在感)

Page 21: モバイルVR「Daydream」でVRの世界にふれてみる

プレゼンス(存在感)● プレゼンスとは

○ キャラクターが「そこにいる」としか思えない

○ 自分が「ここにいる」と自然に思っている状態

● どういう状況で感じるか○ 自分のことをキャラクターが認知していると感じやすい

■ キャラクターが自分の方を見る

■ Oculus Riftの「Lucky's Tale」や「Mikulus」、PSVRの「サマーレッスン」

○ 冒頭で、自分がどういう状況にいるのか、どういう役なのか、を教えておく。その世界に誘導する

■ Oculus Riftの「Henry」や「Damaged Core」

● 「Henry」では、Henryがどういう状況にいるか説明がある

● 「Damaged Core」では、チュートリアルを通して、自分がどういう役なのか説明がある

○ 自分の手があるとよりそれらしく感じる

■ Oculus Riftの「Bullet Train」

■ アバターでなくていい。もし女性が男性のアバターやその逆だと違和感でしかなく、プレゼン

スを破壊してしまう

Page 22: モバイルVR「Daydream」でVRの世界にふれてみる

プレゼンス(存在感)GOROmanさん

「VR におけるプレゼンスの維持と破壊」

http://qiita.com/GOROman/items/41f620957120d2b52ac3

Page 23: モバイルVR「Daydream」でVRの世界にふれてみる

Oculusベストプラクティス

VR酔いをはじめ、どうやればより良いVRコンテンツを作れるかについて、Oculus がベス

トプラクティスを公表している。

Oculusベストプラクティス

http://static.oculus.com/documentation/pdfs/ja-jp/intro-vr/latest/bp.pdf

Page 24: モバイルVR「Daydream」でVRの世界にふれてみる

Daydreamコンテンツの作り方

Page 25: モバイルVR「Daydream」でVRの世界にふれてみる

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

Page 26: モバイルVR「Daydream」でVRの世界にふれてみる

Controller Emulator● Connect

○ Bluetooth

Bluetooth

Page 29: モバイルVR「Daydream」でVRの世界にふれてみる

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

Page 31: モバイルVR「Daydream」でVRの世界にふれてみる

Compile● IL2CPP

○ C#からC++にコンバート

○ 処理の高速化

○ NDK r10e■ UE4だとNDK r11c

○ Edit > Project Settings > Player の Other Settings > Configuration

Page 32: モバイルVR「Daydream」でVRの世界にふれてみる

Google VR SDK for Unity

https://developers.google.com/vr/unity/controller-basics

Page 33: モバイルVR「Daydream」でVRの世界にふれてみる

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フレーム後) */ }

}

Page 34: モバイルVR「Daydream」でVRの世界にふれてみる

Google VR SDK for Unity● GvrControllerState

○ Disconnected○ Scanning○ Connecting○ Connected○ Error

Page 35: モバイルVR「Daydream」でVRの世界にふれてみる

Google VR SDK for Unity● GvrController

○ Orientation

Page 36: モバイルVR「Daydream」でVRの世界にふれてみる

Google VR SDK for Unity● GvrController

○ Gyro○ Accel

Page 38: モバイルVR「Daydream」でVRの世界にふれてみる

ご清聴ありがとうございました