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
1.1k
UE5 Pixel Streamingで実現する、 デバイスを選ばない ⾼負荷アプリケーション
egawa
August 01, 2024
Tweet
Share
Featured
See All Featured
Music & Morning Musume
bryan
46
6.9k
Gamification - CAS2011
davidbonilla
81
5.5k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
46
7.8k
A designer walks into a library…
pauljervisheath
210
24k
The World Runs on Bad Software
bkeepers
PRO
72
12k
Building Flexible Design Systems
yeseniaperezcruz
329
39k
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
16
1.7k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
33
1.8k
The Illustrated Children's Guide to Kubernetes
chrisshort
51
51k
Writing Fast Ruby
sferik
630
62k
Learning to Love Humans: Emotional Interface Design
aarron
274
41k
Balancing Empowerment & Direction
lara
5
740
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