AWS EC2 インスタンスで PixelStreaming を(なるべく簡単に)ホスティングする方法を紹介します
この記事はUnreal Engine (UE) Advent Calendar 2021のカレンダー 3 の 11 日目の記事です
まだ空きがあったのでねじ込みました
前置き #
実は以前にも PixelStreaming の記事をいくつか書いたことがあります
UE4.27 で正式リリースされ、以前の情報もだいぶ古くなってしまっているので、ここらで新しい記事を書いておこうかと
UE4 PixelStreaming の手引き(ホスティング編)
UE4 PixelStreaming の手引き(AWS ホスティング RTA 編)
なるべくかんたんに… #
(この記事では AWS の使い方の説明はしません)
AWS 上に PixelStreaming をホスティングする際、手動でやるといくつか面倒なハードルが存在します
- EC2 のセキュリティグループの設定
- Windows ファイアウォールの設定
- ドライバー、前提ソフトウェアのインストール
いちいち手動でやりたくなーい…というわけで、自動で構築構築してみましょう
AWS が CloudFormation を使った PixelStreaming の自動構築サンプルを提供しています
https://github.com/aws-samples/deploying-unreal-engine-pixel-streaming-server-on-ec2
ですがこのサンプル、UE4.26 時のものなので、微妙にフォルダ構成等が違ったりします
なので、ちょいと fork しておきました
UE4.26.2、UE4.27.0(~ UE4.27.1)、UE4.27.2 向けに修正しています
https://github.com/t-sumisaki/deploying-unreal-engine-pixel-streaming-server-on-ec2
ただし、UnrealEngine 側でサイレントかつドラスティックに変更が入る可能性があるため
バージョンが大きく変わって動かない場合は各々調査してください
(問い合わせいただければ調べますけど…)
使い方 #
パッケージング #
PixelStreaming のプラグインを ON にして、パッケージングしたものを用意しておきましょう
パッケージングで生成された WindowsNoEditor
フォルダを丸ごと zip で固めてください
Bootstrap の修正 #
UE4-Pixel-Streamer-Bootstrap.ps1
をメモ帳等で開き、 $buildExecutable
を自分のパッケージの exe 名に書き換えます
# buildExecutableをパッケージに合わせて書き換える
$buildExecutable = "ProjectBuild.exe"
$basePath = "C:\PixelStreamer\Downloads"
Write-Output "Starting UE4-Pixel-Streamer-Bootstrap.ps1 from:", $basePath
パッケージと Bootstrap のアップロード #
書き換えた UE4-Pixel-Streamer-Bootstrap.ps1
と UE4-Pixel-Streamer.json
、zip で固めたパッケージを、S3 にアップロードしておきましょう
CloudFormation の実行 #
CloudFormation のコンソールから、スタックの作成をします
新しいリソースを使用
を選択しましょう
テンプレートの選択 #
先にアップロードした UE4-Pixel-Streamer.json
がテンプレートです
https://
から始まるオブジェクト URL を入力し、次へ行きましょう
パラメータの入力 #
各種パラメータを入力します
テンプレート側に説明がありますが、重要なものだけ解説しておきます
- Instance Type
インスタンスタイプです。お試しであれば一番安いg4dn.xlarge
あたりを指定しておきましょう - DiskSize
パッケージが大きい場合は増やしておきましょう - Key pair name
EC2 を開始するときに必要なキーペアです - Password
リモートデスクトップや NICEDCV で接続する際に使う Administrator のパスワードです - Pixel Streamer Bootstrap Location
アップロードしたUE4-Pixel-Streamer-Bootstrap.ps1
のオブジェクト URL を指定します - Pixel Streamer Build Location
アップロードしたパッケージのオブジェクト URL を指定します - Pixel Streaming Access CIDR
PixelStreaming サーバにアクセス制限を付ける場合に指定します - NICE DCV Access CIDR
NICE DCV のアクセス制限を付ける場合に指定します
実行 #
スタックオプションの設定等を確認し、レビューをしたら、スタックの作成を実行しましょう
自動的に EC2 インスタンスが起動し、20 分ほどで PixelStreaming のアクセスが可能になります
後片付け #
片付ける際は、CloudFormation のコンソールから、作ったスタックの削除を行ってください
EC2 インスタンス、SecurityGroup など、起動時に作成されたリソースがまとめて削除されます