【UE5】Pixel Streaming を使ってみる
Unreal Engine 5 の Pixel Streamingの記事を書きます。
Pixel Stremaing とは
前回の記事を参考にしてください。
環境
以下の環境で動かしていきます。
- windows 11
- UE 5.3.2
- Pixel Streaming Infrastructure
- node@22
環境構築
UEでThird Personを作る
UEを起動しThird Personのテンプレートを起動します。
Pixel Streamingプラグインを導入する
左上のメニュバーから 「編集」>「プラグイン」を開き、検索窓に「PixelStreaming」と入力して
- Pixel Streaming
- Pixel Streaming Playerを導入する
UE EditorからPixelStreamingのサーバーを起動する方法
再生ボタンなどがあるバーに、Pixel Streaming Playerのメニューが追加されました。
「シグナリングサーバーを起動」を押下すると、「Pixel Streaming Infrastructure」の中のシグナリングサーバーと同等のものが起動します。
「レベルエディタをストリーミング」を押下するとレベルエディタが配信されます。「Pixel Streaming Infrastructure」の中のシグナリングサーバーと似た環境を用意できます。
フルエディタを配信すると開発環境毎配信できます。
今回は
- 「シグナリングサーバーを起動」
- 「レベルエディタをストリーミング」
をクリックして起動してください。
ブラウザからUEを使う
任意のブラウザから、事前に設定したアドレスへアクセスしてください。特に変更がなければ「http://localhost:80」
上記のような画面がでていれば「シグナリングサーバー」は起動成功です。
UEからアプリを起動
UE側でゲームを再生してください。するとブラウザの画面はUnrealのレベルエディタと同じく再生画面になっており、ブラウザからゲームを体験できます。
ひとまずは完成です。リリースを考えるとこの方法は使えないのでPixel Streaming Infrastructureを使う方法を書きます。
Pixel Streaming InfrastructureでPixelStreamingをする方法
-
GitHubから自分のUEバージョンに合わせたブランチを選択する
-
これをDL、zip解答をする
-
PixelStreamingInfrastructure-UE5.3\PixelStreamingInfrastructure-UE5.3\SignallingWebServer\platform_scripts\cmd
このパスを開く -
Powershellで以下コマンドを実行する
setup.bat
-
Start_SignallingServer.ps1
を実行する
このとき次のようなエラーが出る場合はPS1ファイルの実行権限がない。
.\Start_SignallingServer.ps1 : ファイル C:\Users\username\Documents\UE\PixelStreamingInfrastructure-UE5.3\PixelStreami
ngInfrastructure-UE5.3\SignallingWebServer\platform_scripts\cmd\Start_SignallingServer.ps1 を読み込めません。ファイル C
:\Users\username\Documents\UE\PixelStreamingInfrastructure-UE5.3\PixelStreamingInfrastructure-UE5.3\SignallingWebServe
r\platform_scripts\cmd\Start_SignallingServer.ps1 はデジタル署名されていません。このスクリプトは現在のシステムでは実行
できません。スクリプトの実行および実行ポリシーの設定の詳細については、「about_Execution_Policies」(https://go.microsoft
.com/fwlink/?LinkID=135170) を参照してください。
発生場所 行:1 文字:1
+ .\Start_SignallingServer.ps1
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : セキュリティ エラー: (: ) []、PSSecurityException
+ FullyQualifiedErrorId : UnauthorizedAccess
その場合は以下コマンドで権限ポリシーを変更すること
Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass
再度実行して
09:42:20.429 peerConnectionOptions = {"iceServers":[{"urls":["stun:stun.l.google.com:19302"]}]}
09:42:20.484 Running Cirrus - The Pixel Streaming reference implementation signalling server for Unreal Engine 5.3.
09:42:20.879 WebSocket listening for Streamer connections on :8888
09:42:20.880 WebSocket listening for SFU connections on :8889
09:42:20.881 WebSocket listening for Players connections on :80
09:42:20.882 Http listening on *: 80
このようならログが出れば成功です。
ビルド・パッケージ化したexeとシグナリングサーバーを紐づける
最後の手順です。パッケージ化したUEとシグナリングサーバーを紐づけて起動します。
「プラットフォーム」>「Windows」>「プロジェクトをパッケージ化」を選択し任意の場所を選択し実行します。
exe化が完了したら、exeのショートカットを作成します。
次にプロパティを開きます。リンクに次のコマンドを含めます。-AudioMixer -PixelStreamingIP=localhost -PixelStreamingPort=8888
ここまで完了したらショートカット経由でUEアプリを実行します。
あらためてブラウザから http://localhost を開きます。
上のように表示されれば、exeとシグナリングサーバーの紐づけを完了できました。
最後に
PixelStreamingの環境構築はさほど難しくありません。同じような手順を行えばEC2のWindowsインスタンスや、Linuxインスタンスでも環境構築が可能です。
参考文献
Discussion