44
DaydreamはじめるVR GDG神戸 野田 悟志 Android Nougat(7.0) 勉強会

DaydreamではじめるVR

Embed Size (px)

Citation preview

Page 1: DaydreamではじめるVR

DaydreamではじめるVR

GDG神戸 野田 悟志

Android Nougat(7.0)勉強会

Page 2: DaydreamではじめるVR

2015年GDG神戸開催イベント

● 扱った言語/技術

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

● イベント

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

合計15回

Page 3: 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/27 Devfest Kansai 2016

Page 4: DaydreamではじめるVR

自己紹介

GDG神戸 オーガナイザー (Co-Manager)

VR歴2015年6月頃にCardboard、7月にOculusRift DK2を入手

Unity 5使って個人開発

2016年はVR勉強会いっぱいやってる

6/11にCV1来た!

10/4(Daydreamリリース発表?)と10/13(PSVR発売!)が待ち遠しい

→ここ最近、VR廃人一歩手前に来てる気がするけど、まだいける

Page 5: DaydreamではじめるVR

Magic The ShouterOculusGameJam(VRGameJam)2015 大阪会場

2015/11/28-29

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

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

OculusRift用ゲーム。

https://github.com/ShingoKobayashi/M

agicTheShouterProject/releases/tag/0.2

Page 6: 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: DaydreamではじめるVR

今日話すこと

● VR酔いについて

● Daydreamの必要性について考える

● VRコンテンツ用にステレオカメラ化する

● VRコンテンツにコントローラを使ってみる

Page 8: DaydreamではじめるVR

VR酔いについて

Page 9: DaydreamではじめるVR

VR酔いとは

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

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

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

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

車酔いに似ている。

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

としたくなくなる

Page 10: DaydreamではじめるVR

VR酔い対策

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

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

下記記事が参考になる。

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

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

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

Page 11: DaydreamではじめるVR

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

Page 12: DaydreamではじめるVR

酔わないのはどっち?

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

1マス毎に進む方法

Page 13: DaydreamではじめるVR

Daydreamの必要性について考える

Page 14: DaydreamではじめるVR

Google VR

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

Page 15: DaydreamではじめるVR

Daydream-Ready

● Low Persistence Display

● High Performance SoCs

● Low Latency, High Quality Sensors

Page 16: DaydreamではじめるVR

なぜ?

● こんなにハイスペックな必要がある?

● スマートフォンである必要がある?

● VRの機能を(OS単位で)搭載する必要がある?

Page 17: DaydreamではじめるVR

こんなにハイスペックな必要がある?

● 人間はヘッドトラッキングのレイテンシーが20msより長くに

なると、不自然に感じる。その状態が続くとVR酔いが発生

する。

○ Snapdragon 820(以降)が必要。Snapdragon 820は18ms以下のレイ

テンシーを実現している。

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

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

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

http://www.moguravr.com/palmer-kusokora/

Page 18: DaydreamではじめるVR

スマートフォンである必要がある?

● OculusRiftやViveはハイスペックなPCが必要になる。

● スマートフォンは誰でも持っている、生活必需品となっている。○ PSVRは一般普及しそうだが、 PS4がなければならなく、スマートフォンよりも限定的。

● 誰に対しても高品質なVRコンテンツを体験してもらうのに、Daydreamは最適。○ Cardboardの時は、端末によって性能が低く、まともに動かないものもあった。

Page 19: DaydreamではじめるVR

VRの機能を(OS単位で)搭載する必要がある?

● 既にスマートフォンで必要な機能、便利な機能は一通り出尽くしている。○ いまどき防水機能やFelica機能がついてることがセールスポイントになるわけがない。

● 新たな体験としての機能を求めるのは自然の流れで、VRまたはARはその流れの

上にある。○ スマートフォンでできるくらい安価になった。一般普及する準備ができた。

○ TVで取り上げられたり、PSVRの登場で、一般的にVRが知られるようになった。

Page 20: DaydreamではじめるVR

VRコンテンツ用にステレオカメラ化する

Page 21: DaydreamではじめるVR

https://developers.google.com/vr/concepts/dev-kit-setup

Dev Kit● Viewer

○ Cardboard

● Viewer Phone○ Nexus6P (Android

Nougat DP4 or higher)

● Controller Emulator○ Android(API19 or

higher)

Viewer PhoneAndroid NougatDP4 or higher

Dev Kit

Page 22: DaydreamではじめるVR

Controller Emulator● Connect

○ Bluetooth

Bluetooth

Page 26: DaydreamではじめるVR

Software Design 2016/09

http://gihyo.jp/magazine/SD/archive/2016/201609

Page 27: DaydreamではじめるVR

Compile● IL2CPP

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

○ 処理の高速化

○ NDK r10e■ UE4だとNDK r11c

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

Page 28: DaydreamではじめるVR

VRコンテンツにコントローラを使ってみる

Page 29: DaydreamではじめるVR

Google VR SDK for Unity

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

Page 30: 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 31: DaydreamではじめるVR

Google VR SDK for Unity● GvrControllerState

○ Disconnected○ Scanning○ Connecting○ Connected○ Error

Page 32: DaydreamではじめるVR

Google VR SDK for Unity● GvrController

○ Orientation

Page 33: DaydreamではじめるVR

Google VR SDK for Unity● GvrController

○ Gyro○ Accel

Page 35: DaydreamではじめるVR

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

Page 36: DaydreamではじめるVR

おまけDev Kit Headset Settings

Page 37: DaydreamではじめるVR
Page 38: DaydreamではじめるVR
Page 39: DaydreamではじめるVR
Page 40: DaydreamではじめるVR
Page 41: DaydreamではじめるVR

Bluetoothを有効にし、コントローラとペアリングしておく位置情報が必要な場合は、Locationを有効にし、高精度に設定する

Page 42: DaydreamではじめるVR
Page 43: DaydreamではじめるVR
Page 44: DaydreamではじめるVR

7回タップする