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
UE5 Pixel Streamingで実現する、 デバイスを選ばない ⾼負荷アプリケーション
Search
egawa
August 01, 2024
0
650
UE5 Pixel Streamingで実現する、 デバイスを選ばない ⾼負荷アプリケーション
egawa
August 01, 2024
Tweet
Share
Featured
See All Featured
We Have a Design System, Now What?
morganepeng
50
7.2k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
33
1.9k
A designer walks into a library…
pauljervisheath
204
24k
The Straight Up "How To Draw Better" Workshop
denniskardys
232
140k
Into the Great Unknown - MozCon
thekraken
32
1.5k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
26
1.4k
Raft: Consensus for Rubyists
vanstee
136
6.6k
VelocityConf: Rendering Performance Case Studies
addyosmani
325
24k
GraphQLの誤解/rethinking-graphql
sonatard
67
10k
Art, The Web, and Tiny UX
lynnandtonic
297
20k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
126
18k
Navigating Team Friction
lara
183
14k
Transcript
UE5 Pixel Streamingで実現する、 デバイスを選ばない ⾼負荷アプリケーション 2024.7.31 ゲームソリューション部 えがわ
Xへの投稿の際は、 ハッシュタグ #cm_odyssey でお願いいたします。 2 お願い
⾃⼰紹介 えがわ(頴川 武⽣) 3 ゲームソリューション部 ソリューションアーキテクト 好きなもの • データベース(RDB, NewSQL)
• AI/ML • パン屋
本⽇の内容 話さないこと • UE5の操作⽅法 • ゲームの作り⽅ • AWSの細かい設定周り ◦ EC2の作成やIAMなど
• Pixel Streamingの細かい実装⽅法 • Pixel Streamingの最適化 4
今⽇の内容 5 話すこと • Pixel Streamingとは!
本題の前に (UEってなに?) 6
UEとは? UE(Unreal Engine)は、Epic Games社が開発した⾼度な ゲームエンジン。リアルタイム3Dグラフィックスの 作成に使⽤され、ゲーム開発だけでなく、映画、建 築、シミュレーションなど多岐にわたる分野で利⽤ されています。 7
本題の前に (⼀般のアプリケーションはどうなってる?) 8
⼀般的なアプリケーション 量販店でソフトを購⼊ ソフトにあったハードでゲームをプレイ 9 帰ったら遊ぼー! ゲーム売ってるでー
⼀般的なアプリケーション ユーザーの端末にアプリをインストール 端末の性能を使いアプリをプレイ 10 遊びたいから インストールしよー ゲーム配布してるでー ダウンロード
⼀般的なアプリケーション インストールしたはいいが、 スペックが⾜らず、動かないことも... 11 せっかくインストール したのに... もうやらん!
Pixel Streamingとは? 12
Pixel Streamingとは? UE5アプリケーションをサーバー上で実⾏し、 ウェブブラウザでストリーミングすることが可能 13 ゲーム遊ぶよー レンダリングするでー WebRTC(P2P) 動画、⾳声データ ⼊⼒
Pixel Streamingとは? サーバーのGPUでフレームの計算を⾏うため、 ユーザーの端末は送られてきたフレームを描画するだけ 14 古いPCでも動く! サイコー ワイが頑張るで...! WebRTC(P2P) 動画、⾳声データ
⼊⼒
デモ動画 (再⽣できたら) 15
デモ動画 16
デモ画像 (動画が再⽣できなかったら) 17
デモ画像 18
Pixel Streamingの特徴まとめ 19 • 低遅延のストリーミング • ⾼品質なグラフィックス • クロスプラットフォーム対応 UnrealEngineのアプリケーションで使⽤可能な
クラウドレンダリングの仕組み
低遅延のストリーミング WebRTC(Web Real-Time Communication)を使⽤したP2P接続 クライアントとアプリサーバー間で通信 20 WebRTC(P2P) 動画、⾳声データ ⼊⼒ あんま違和感ないな
ワイが頑張ってるからや!
⾼品質なグラフィック UE5の⾼度なレンダリング技術を使⽤することにより フォトリアルな画質を実現 21 • Naniteによる⾼詳細なジオメトリ (LOD) • Lumenによるグローバルイルミネーション
クロスプラットフォーム対応 ユーザーの端末に依存せずブラウザで起動するため、 クラスプラットフォーム開発が容易 22 http://hogehoge
なんかよさそう 23
やってみる 24
まえに 25
構築のための⽤語集 26
WebRTCの登場⼈物 • シグナリングサーバー ◦ 接続情報を交換する仲介サーバー • STUNサーバー ◦ ⾃⾝のIPアドレスを確認するためのサーバー •
TURNサーバー(必要ならば) ◦ データを中継するためのサーバー 27 WebRTCを⾏うための登場⼈物
シグナリングサーバー 28 オファーアンサーモデルでSDP(Session Description Protocol )や ICE(Interactive Connectivity Establishment )候補を交換
動画や⾳声はこんな感じで! 接続先の候補も送るね! 承知したやで! ワイも送るで! SDP、ICE候補 オファー アンサー
N A T STUNサーバー 29 外から⾒た時のパブリックIPを取得可能 NATを超えた接続で必要 N A T
IP:192.168.aaa.aaa IP:10.0.ccc.ccc STUNサーバー 俺ってどう? お前はIP: 200.bbb.bbb.bbbだ IP: 200.bbb.bbb.bbb IP: 500.ddd.ddd.ddd
N A T TURNサーバー 30 直接P2P接続が確⽴できない場合、 TURNサーバーを中継してデータを送信 N A T
IP:192.168.aaa.aaa IP:10.0.ccc.ccc TURNサーバー 代わりに接続 おねがーい しゃあなしやで IP: 200.bbb.bbb.bbb IP: 500.ddd.ddd.ddd
やってみる (ローカル編) 31
UE5のアプリケーションを作成 UnrealEngineのサンプルプロジェクトを使⽤します 32 ※80GB以上あるので、容量には注意
PixelStreamingに対応 アプリケーションをPixelStreamingに対応させるには プラグインを追加するだけです 33 ※これにチェックいれるだけ!
サーバー構築(ローカル編) GitHubにフロントエンド、バックエンドが⽤意されて います 34
サーバー構築(ローカル編) ⼿順に従い実⾏するだけでサーバーが起動します 35
サーバー構築(ローカル編) UE5アプリケーションを起動します。 アプリケーションがサーバーに接続すると、 コンソール「Streamer connected」と表⽰されます 36
サーバー構築(ローカル編) 37 アプリケーションがサーバーに接続できたので、 ブラウザで確認します
やってみる (⼩規模AWS編) 38
AWSで試してみる 39 EC2(Windows)で試してみます。 可⽤性は考えず1台のEC2で試してみます。
サーバー構築(AWS) UE5アプリケーションをS3に配置 40
サーバー構築(AWS) EC2インスタンス(GPUが必要)に接続 以下をPowerShellで実⾏することでAWS CLIが使⽤できます msiexec.exe /i https://awscli.amazonaws.com/AWSCLIV2.msi 41 そしてUE5アプリケーションをダウンロード
サーバー構築(AWS) Nvidia ドライバーのインストール 42
サーバー構築(AWS) Firewallの80, 8888ポートを開けておきます 43
サーバー構築(AWS) サーバーを起動します 44
サーバー構築(AWS) アプリのショートカットに以下の内容をTargetに追加します -PixelStreamingURL=ws://127.0.0.1:8888 -RenderOffscreen -AllowPixelStreamingCommands 45 ※オフスクリーンでレンダリングすることで不要な リソースを使わずに済みます。
サーバー構築(AWS) ブラウザで仮想マシンのIPアドレスにアクセス すると! 46 ※軽いサンプルプロジェクトに変更してます
なんか⼤変そう 47
AWS MarketPalace で簡単に構築できます! 48
AWS MarketPlace Pixel Streaming⽤の製品が登録されてます 使⽤料はAWS費⽤だけ! 49
AWS MarketPlace CloudFormationのパラメータを⼊⼒するだけ! 50
AWS MarketPlace いかしたアーキテクチャを簡単に作れます! 51
簡単に構築できそうだし デメリットは...? 52
⾼い! 53
(費⽤が) めっちゃ⾼い! 54
費⽤について クラウドでGPUを使⽤することになるので、 数千⼈がプレイするようなアプリケーションになると とても⾼額になります 55
アプリケーションと マッチするタイミングで 使⽤しましょう! 56
どんなアプリが適している? 57
どんなアプリが適している? デバッグ会社のテスト環境 58 バグみつけてやるんだから!
どんなアプリが適している? アイドルのコンサートでの3D合成やメタバースなど 59
None
None