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
720
UE5 Pixel Streamingで実現する、 デバイスを選ばない ⾼負荷アプリケーション
egawa
August 01, 2024
Tweet
Share
Featured
See All Featured
Learning to Love Humans: Emotional Interface Design
aarron
274
40k
Building Your Own Lightsaber
phodgson
104
6.1k
How to Think Like a Performance Engineer
csswizardry
22
1.2k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
97
17k
Into the Great Unknown - MozCon
thekraken
34
1.6k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
251
21k
We Have a Design System, Now What?
morganepeng
51
7.3k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
28
9.2k
Product Roadmaps are Hard
iamctodd
PRO
50
11k
The Straight Up "How To Draw Better" Workshop
denniskardys
232
140k
Typedesign – Prime Four
hannesfritz
40
2.4k
Why Our Code Smells
bkeepers
PRO
335
57k
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