html5でサイネージは作れる!!

41
HTML5 でででででででででで !!

Upload: kazuya-hiruma

Post on 24-May-2015

3.121 views

Category:

Technology


3 download

DESCRIPTION

お台場合衆国にてリアルスコープブースに設置したサイネージについて解説しています。

TRANSCRIPT

Page 1: HTML5でサイネージは作れる!!

HTML5 でサイネージは作れる !!

Page 2: HTML5でサイネージは作れる!!

自己紹介

• 面白法人カヤックHTML ファイ部比留間 和也

• 最近は JS ばっかりで、あんまり HTML 書いてません w

Page 3: HTML5でサイネージは作れる!!

事の発端

Page 4: HTML5でサイネージは作れる!!

Web 技術でどこまでやれるか

チャレンジしたい!

Page 5: HTML5でサイネージは作れる!!

今回使った技術

• WebGL

• Video element

• Audio element

• Canvas element

• getUserMedia (Camera)

• base64 encode/decoder

• XMLHttpRequest upload

• Fullscreen API

• CSS Mask

• CSS Animation

• pointer-events

Page 6: HTML5でサイネージは作れる!!

これで IE 対応が必要だったら… ((((;゚Д ゚ ))))

Page 7: HTML5でサイネージは作れる!!

でも

Page 8: HTML5でサイネージは作れる!!

今回はサイネージなのでGoogle Chrome だけで

OK

Page 9: HTML5でサイネージは作れる!!

当初の課題

Page 10: HTML5でサイネージは作れる!!

• クオリティの担保

• 8 時間連続起動

• スケジュール

• そもそもブラウザで大丈夫なのか

Page 11: HTML5でサイネージは作れる!!

できあがったもの

Page 12: HTML5でサイネージは作れる!!
Page 13: HTML5でサイネージは作れる!!

ブースの様子

Page 14: HTML5でサイネージは作れる!!

DEMO

Page 15: HTML5でサイネージは作れる!!

やってみた感想

• Web 技術だけでもサイネージは作れる

• でかいは正義!

• Google Chrome すごい!

• 普段どれだけ「技術的にはできるのに断念しているか」を知ることができた

Page 16: HTML5でサイネージは作れる!!

案件のポイント

• WebGL でリッチ感アップ!

• プラグインなしで動画再生

• カメラで撮影した画像を XHR でサーバに

• UI をほぼ Full Canvas で実装

• タッチパネルによるタッチ操作

Page 17: HTML5でサイネージは作れる!!

すべて Web の技術!

Page 18: HTML5でサイネージは作れる!!

案件秘話

Page 19: HTML5でサイネージは作れる!!

• デザインスタートがローンチ 2 週間前からの、怒涛の追い上げ!

• ローンチ数日前に体験をよりよくするために UI フルリニューアル!

• ローンチ前日にやっとの思いでサーバに画像がアップできない問題を解決!

• ローンチ前日になんとか動画再生が止まる問題を解決!

• ローンチ 2 週間前に Inka3D が Maya2014 に対応!(奇跡!)

Page 20: HTML5でサイネージは作れる!!

閑話休題

Page 21: HTML5でサイネージは作れる!!

工夫した点・苦労した点

Page 22: HTML5でサイネージは作れる!!

WebGLWebGL

Page 23: HTML5でサイネージは作れる!!

レンダリング

Page 24: HTML5でサイネージは作れる!!

• Inka3D で Maya の世界を完全再現!

• 世界観・演出を Maya で構築→ Inka3Dのラッパーでコンテンツと同期

工夫した点

Page 25: HTML5でサイネージは作れる!!

• WebGL の context lost が多発

• 開発時、 WebGL のクラッシュが OS巻き込んで落ちる

• Three.js では実現できなかった

苦労した点

Page 26: HTML5でサイネージは作れる!!

DEMO

http://goo.gl/i0t7naAndroid 版 Chrome でもいちおう動きますよ!

Page 27: HTML5でサイネージは作れる!!

写真撮影

Page 28: HTML5でサイネージは作れる!!

• getUserMedia で取得したストリームを保持し続ける当初の予定ではカメラ許可問題から、コンテンツはリロードしない想定で作成

工夫した点

Page 29: HTML5でサイネージは作れる!!

• https でコンテンツを配信http の配信ではカメラの使用許可がリロードごとに聞かれる

• 画像を別サーバに送信できない送信先はローカルサーバに、実際の送信先はサーバ側でリダイレクト

苦労した点

Page 30: HTML5でサイネージは作れる!!

動画再生

Page 31: HTML5でサイネージは作れる!!

• 動画側に円形のマスクを適用

• 再生が停止した場合の復旧処理

工夫した点

Page 32: HTML5でサイネージは作れる!!

• 動画の再生が止まることがある強制的に load/play を実行して再実行

• Video 、 Canvas 要素には CSS Shaderが適用されない適用を断念

苦労した点

Page 33: HTML5でサイネージは作れる!!

8 時間耐久コンテンツ

Page 34: HTML5でサイネージは作れる!!

• メモリ管理を徹底

• 現場対応をイメージ

• 管理画面とコマンドを用意

工夫した点

Page 35: HTML5でサイネージは作れる!!

• 耐久テスト朝会社にきたら起動→帰るまで再生しっぱなし

• 実機テスト途中、現場設置のため実機がオフィスを離れる

苦労した点

Page 36: HTML5でサイネージは作れる!!

実機セットアップ中の図

Page 37: HTML5でサイネージは作れる!!

案件を終えて思ったこと

Page 38: HTML5でサイネージは作れる!!

• 現場で起きた不具合をその場で修正→反映が迅速に行える

• 遠隔で更新作業を行い、現場担当者側でそれを反映することができる

Page 39: HTML5でサイネージは作れる!!

Web とサイネージの親和性は実は高い!

Page 40: HTML5でサイネージは作れる!!

HTML5 でサイネージは作れ

る !!!

Page 41: HTML5でサイネージは作れる!!

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