Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
サーバレス な マルチユーザVR システム
Search
shinyoshiaki
October 05, 2018
Technology
2k
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
サーバレス な マルチユーザVR システム
歌舞伎座.tech#15
2018/10/5(金) バーチャルキャスト会場
shinyoshiaki
October 05, 2018
More Decks by shinyoshiaki
See All by shinyoshiaki
CPaaS「SkyWay」を作るために 必要なスキルの身につけ方
shinyoshiaki
0
1.2k
TypeScriptとNode.jsでWebRTCを実装してみた
shinyoshiaki
1
3.7k
ANYハッカソン 時間差パズルVRゲーム
shinyoshiaki
0
2.1k
P2P分散型SNS “D-Twi”
shinyoshiaki
0
2.1k
Other Decks in Technology
See All in Technology
DevelopersIO 2026 知識の地図を描く ─ オントロジーとは何か?
ishikawa_satoru
1
270
ミイダス株式会社 テックチームのご紹介 / MIIDAS Tech Team
miidas
0
170
AI駆動開発の時代になったのでトヨタ生産方式から見直す
terurou
3
4.7k
FOSS4Gを活用した自治体業務DXの試み
470715
0
120
IoTデバイスを繋げるプロトコルMatterをAndroidで使用する方法
harutiro
0
120
自作バイナリを動かす「入口」8選
puhitaku
1
550
SREでアラート疲れを 解決しよう!
kairim0
1
210
Snapshot Testing in Practice: Predictable and Reliable SwiftUI Views
fespinoza
0
150
メルペイ 会計システム概要と歴史
mewuto
0
190
Google Cloud Next Tokyo 26登壇時のスクリプト
recruitengineers
PRO
0
210
DWH の限界突破! AI エージェント向け爆速リアルタイムデータ基盤 ClickHouse
jozono
1
260
データ品質を壊しながらSnowflakeのAIに分析させてみた
kawanago
0
540
Featured
See All Featured
Designing for Performance
lara
612
70k
What the history of the web can teach us about the future of AI
inesmontani
PRO
2
730
Redefining SEO in the New Era of Traffic Generation
szymonslowik
1
460
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
46
3k
Facilitating Awesome Meetings
lara
57
7.2k
The SEO Collaboration Effect
kristinabergwall1
1
590
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
38
3k
How to Talk to Developers About Accessibility
jct
2
560
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
194
17k
A Tale of Four Properties
chriscoyier
163
24k
Paper Plane (Part 1)
katiecoart
PRO
2
11k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
666
130k
Transcript
大学3年生 Shin 歌舞伎座.tech#15 2018/10/5(金) バーチャルキャスト会場 サーバレス な マルチユーザVR システム
バーチャルキャストの基本的な機能を サーバレスで実現可能なのか? サーバレスでリアルタイム通信をするために WebRTCを用いて実験的な開発
WebRTC •本来は、ブラウザ同士をP2Pでつなぐための技術 •P2Pで異なるネットワーク間で接続。NAT越え •Streamで映像と音を、DataChannelで任意のデータを送受信 •Unity用のサンプルプラグインが存在 •低遅延
低遅延
低遅延
Unity Unity シグナリングサーバ •シグナリングサーバでお互いの情報を交換する シグナリング
Unity Unity P2P •シグナリング完了後は完全なP2P, サーバレスな通信を実現 シグナリング
DataChannelをうまく使う •文字列しか使えないので送受信のルールを決めておく •RPC風の実装を行う •関数名+引数(配列)なJsonを文字列にして相手に送る
• 3Dモデルをサーバに保管するのではなく、P2Pで交換する → ストレージサーバ不要、モデル所有者の心理的安心感 3Dモデルの共有 VRM VRM
None
• VRMファイル ①wwwでバイト配列として読み込む ②deflateで圧縮 ③10kbごとに分割 ④チャンクをBase64で文字列に ⑤VRMの受信関数名 + チャンク をDataChannelで送る DataChannelでVRMを送る
•モーションの同期 positionとrotateを文字列にして「受信関数名 + モーション」を DataChannelで送る •オブジェクトの同期 オブジェクトの座標、回転、今誰が影響を与えてる(動かしている)か、 をDataChannelで共有 •リップシンクの同期
OVRlipSyncのVisemesをDataChannelで送る
方法 結果 UnityのWebRTCプラグイン標準 繋がったり、繋がらなかったり、不安 定。 ドキュメントがない。 UnityOpus + DataChannel 自環境では音質が悪い。
ドキュメントがない。 UnityからブラウザのWebRTCを使う 当然、普通につながる。 高音質。 立体音響は無理。 現時点ではこれを採用。 ボイス
スクリーンキャプチャの共有 Electron内にシグナリングサーバを建てて Unityとローカルでシグナリング 相手側のUnityとは外部のシグナリング サーバでシグナリング Electronでスクリーンキャプチャをしてスト リームをUnityに送る ② Unity Electron
① StreamingAsset から起動 Unity ➂ 映像 ➂ 映像 自分側 相手側
None
まとめ •バーチャルキャストにある機能はある程度、WebRTCでも 再現可能と思われる
今後 • ミドルウェア化 • メッシュ型、ツリー型、SFUで3人以上の接続対応? ソーシャルVR?(Max 5~6人) 音楽ライブ? (N人) 大規模低遅延配信
(最近だとIRIAM みたいなことができる?) SFU
↓パワポのファイル ↓質問はTwitterで @ShinYoshiaki