メインコンテンツへスキップ
  1. 記事/

PixelStreamingをAWS上で動かす(自動構築編)

UnrealEngine UE4.27.2 PixelStreaming

AWS EC2 インスタンスで PixelStreaming を(なるべく簡単に)ホスティングする方法を紹介します

この記事は Unreal Engine (UE) Advent Calendar 2021のカレンダー 3 の 11 日目の記事です
まだ空きがあったのでねじ込みました

前置き #

実は以前にも PixelStreaming の記事をいくつか書いたことがあります
UE4.27 で正式リリースされ、以前の情報もだいぶ古くなってしまっているので、ここらで新しい記事を書いておこうかと

UE4 PixelStreaming の手引き(導入編)

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.ps1UE4-Pixel-Streamer.json、zip で固めたパッケージを、S3 にアップロードしておきましょう

Figure1

CloudFormation の実行 #

CloudFormation のコンソールから、スタックの作成をします
新しいリソースを使用 を選択しましょう

Figure2

テンプレートの選択 #

先にアップロードした UE4-Pixel-Streamer.json がテンプレートです
https:// から始まるオブジェクト URL を入力し、次へ行きましょう

Figure3

パラメータの入力 #

各種パラメータを入力します
テンプレート側に説明がありますが、重要なものだけ解説しておきます

  • 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 など、起動時に作成されたリソースがまとめて削除されます

Figure4

Related

[UE4] NavLinkProxyを使って、分かれたNavMeshの間を移動する
UnrealEngine UE4.26 NavMesh AI
ドット絵を生かしたゲーム向けのグラフィック設定例
UnrealEngine PixelArt UE5EA
UnrealEngineにおけるSkeletalMeshのUV作成時の注意点
UnrealEngine SkeletalMesh UE4.26