Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
サーバレス な マルチユーザVR システム
Search
shinyoshiaki
October 05, 2018
Technology
0
2k
サーバレス な マルチユーザVR システム
歌舞伎座.tech#15
2018/10/5(金) バーチャルキャスト会場
shinyoshiaki
October 05, 2018
Tweet
Share
More Decks by shinyoshiaki
See All by shinyoshiaki
CPaaS「SkyWay」を作るために 必要なスキルの身につけ方
shinyoshiaki
0
1.2k
TypeScriptとNode.jsでWebRTCを実装してみた
shinyoshiaki
1
3.4k
ANYハッカソン 時間差パズルVRゲーム
shinyoshiaki
0
2.1k
P2P分散型SNS “D-Twi”
shinyoshiaki
0
2.1k
Other Decks in Technology
See All in Technology
mruby(PicoRuby)で ファミコン音楽を奏でる
kishima
1
390
Yahoo!広告ビジネス基盤におけるバックエンド開発
lycorptech_jp
PRO
1
310
現場が抱える様々な問題は “組織設計上” の問題によって生じていることがある / Team-oriented Organization Design 20250827
mtx2s
7
63k
Product Management Conference -AI時代に進化するPdM-
kojima111
0
260
イオン店舗一覧ページのパフォーマンスチューニング事例 / Performance tuning example for AEON store list page
aeonpeople
2
370
役割は変わっても、変わらないもの 〜スクラムマスターからEMへの転身で学んだ信頼構築の本質〜 / How to build trust
shinop
0
120
「守る」から「進化させる」セキュリティへ ~AWS re:Inforce 2025参加報告~ / AWS re:Inforce 2025 Participation Report
yuj1osm
1
170
生成AI時代のデータ基盤
shibuiwilliam
0
220
カミナシ社の『ID管理基盤』製品内製 - その意思決定背景と2年間の進化 #AWSUnicornDay / Kaminashi ID - The Big Whys
kaminashi
3
540
Kubernetes における cgroup v2 でのOut-Of-Memory 問題の解決
pfn
PRO
0
350
「AI2027」を紐解く ― AGI・ASI・シンギュラリティ
masayamoriofficial
0
140
AIエージェント就活入門 - MCPが履歴書になる未来
eltociear
0
660
Featured
See All Featured
VelocityConf: Rendering Performance Case Studies
addyosmani
332
24k
Bash Introduction
62gerente
614
210k
Agile that works and the tools we love
rasmusluckow
330
21k
4 Signs Your Business is Dying
shpigford
184
22k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
34
3.1k
Building Adaptive Systems
keathley
43
2.7k
How GitHub (no longer) Works
holman
315
140k
How to Ace a Technical Interview
jacobian
279
23k
The Cost Of JavaScript in 2023
addyosmani
53
8.9k
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
11
1k
How STYLIGHT went responsive
nonsquared
100
5.8k
How to Think Like a Performance Engineer
csswizardry
26
1.8k
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