ここまで来た!
2017年 Web VRでできること
VOYAGE GROUP VR室長 伊藤淳
伊藤淳
(@jujunjun110)
VOYAGEGROUP
VR室 室長
スマホアプリ、ウェブアプリの
プロデューサーを4年ほどやる
2016年10月よりVR室立ち上げ
目次
1. Web VRとは
2. Web VR何がすごいの?
3. Web VRの開発フレームワーク
4. Web VRでできることたくさん
Web VRとは
Web VRとは
ウェブブラウザで楽しめるVRコンテンツ
・基本的にはHTML + JavaScript で実装
・WebGLを駆使
・現状、大きく分けて2種類の環境がある
①PCベース ②スマホベース
端末 + HMD
Windows PC / (Mac?)
+
Oculus Rift / HTC Vive
iPhone / Android 端末
+
スマホ向けVRゴーグル
対応ブラウザ
Chromium と
Firefox Nightly のみ
なんでもOK
HMD状態の取得方法 Web VR API 経由
スマホ ジャイロセンサー
HTML5 API経由
ポジショントラッキング ◯ ×
ハンドコントローラー ◯
△ Android Chrome +
Gamepad API のみ
(DayDream Controller含む)
Web VRにおける2種類の環境
今日話す内容は主にこっち!
まぎらわしい用語の整理
Web VR / ブラウザVR
Webブラウザで表示できるVRコンテンツ
Web VR APIの利用は前提ではない
Web VR API
ブラウザからHTC ViveやOculus Rift等のHMDの
位置や状態を取得できるブラウザのAPI
W3Cが仕様策定中
現在Firefox nightlyとChromium でのみ利用可能
Web VR 何がすごいの?
A-Painter (Tilt BrushのA-Frame移植)
描いた作品を リンク ひとつでシェア!
→ さらに描き足すことも可能!
Web VRのすごいところ
圧倒的なアクセスしやすさ・シェアしやすさ
Web VRのメリット・デメリット
メリット
・アプリのインストール不要
・URLでコンテンツを誰にでもすぐ共有
・アプリプラットフォームの審査不要
デメリット
・歴史が浅いのでUnity等のゲームエンジンに比べ
便利ライブラリ・アセットが少ない
・重いアセットを実行時に読み込むのがきつい
Web VRが向いているコンテンツ
・アクセスしやすさ・シェアしやすさが
重要な意味を持つコンテンツ
・(スマホベースの場合)
カーソルによるフューズなど
簡単な操作でストレスなく完結できる
コンテンツ
Web VRが向かないコンテンツ
・重いモデルを扱ったり
レンダリング量が多かったりするコンテンツ
・(スマホベースの場合)
ハンドコントローラーが必要な
複雑な操作のあるコンテンツ
Web VRの
開発フレームワーク
Web VRフレームワークとは
Web VR フレームワーク
VRアプリケーション
Three.js
ブラウザ
スマホ / PC
オブジェクトの表示・アニメーション・シェーディングなど
3Dコンテンツ全般の機能をWebGLを用いて提供
ステレオレンダリング・ジャイロに合わせたカメラの回転など
VRでよく使うThree.jsの機能を使いやすく提供
Web VR APIHTMLの各種API
各種Input (ジャイロセンサーの値など) HMDやハンドコントローラーのInput値
HMD + コントローラー
HTML + javascript でアプリケーションを実装
開発元 特徴
Three.js (生) Three.js Authors
WebGLを使って3次元CGをリアルタイムレンダリング
するJavaScriptライブラリ。大体のフレームワークで使
われている。
A-Frame Mozilla
HTMLを書くようにVRアプリケーションを追加してい
けるのでとっつきやすい。Three.jsのラッパー。
React VR Facebook
React.js ベースなのでReactに慣れている人には使い
やすい。Three.jsのラッパー。
Solufa AMATELUS 実行が高速なのが売り。Three.jsのラッパー。
Web VRの主な開発フレームワーク
どれも Three.js のラッパーなので、できることにそれほど大きな差はない。(個人の感想です。)
コミュニティやライブラリの開発具合はA-Frameが一歩先を行っているように思える。
A-Frameの実装例
「box」や「Sphere」などの基礎的な形状の”Entity”に
見た目(赤い)や機能(クリックされると回転する)を記述した”component”
を付与することで機能を実装していきます。Unity等に似ています。
Web VRでできること
できること① 3Dモデル読み込み
DEMO
解説:例えばA-Frameでは .obj と .collada をサポート。
その他の拡張子のモデルもライブラリをインポートすることで
問題なく読み込み・描画できます。
できること② 物理演算
DEMO
解説:例えばA-Frameでは 物理演算ライブラリ CANNON.js のラッパーとして
aframe-physics-system というライブラリがあり簡単に実装できます。
できること③ リアルタイムコミュニケーション
DEMO
解説:基本的にHTML5 + javascriptでできることはなんでもできるので、
WebRTCを使ったリアルタイムコミュニケーションは簡単に実装できます。
できること④ MMD
参考リンク:a-mmd
解説:なんとMMDも😍 ちなみに主要Web VRフレームワークでは
FBXのボーンアニメーションに対応しているライブラリはまだなさそう。
コミットしてヒーローになるチャンス!
できること⑤ ページ遷移
参考リンク:WikiMuseum
解説:コンテンツにパーマネントリンクを付与し、
HTML5のPushState / PopStateを利用することで、自在に行き来できます。
document.locationを書き換えることで、外部リンクも可能です。
その他できること
全天球動画再生
シェーダーの自作
Normal map
Terrain
パーティクル
Leap Motionによる操作
などなど…
まとめ
・Web VR 思ったよりいろんなことできる!
・ビューワ系アプリケーション用途なら
すでに実用レベルに達しているかも?
・ぜひ触ってみましょう!
VOYAGE GROUPでは
A-Frame / Unityで
VRコンテンツの開発をしたい
エンジニアを探しています

ここまで来た!2017年 Web VRでできること

Editor's Notes

  • #11 ミクさんかわいい → 共有したい → URL一発で共有できる!
  • #12 たとえば不動産の内見アプリの場合… アプリだと: インストール → 閲覧 → AppStoreのURLを共有 → アプリのDL → 家のIDの共有 ウェブだと: いきなりコンテンツを見る → URLを共有 → いきなりコンテンツを見る
  • #14 ヒューマンIKとかも
  • #15 ヒューマンIKとかも
  • #21 PCで見るのでただの3Dコンテンツですがスマホでみたらステレオレンダリングもできますよ
  • #26 ヒューマンIKとかも
  • #27 ヒューマンIKとかも