Pixel StreamingをAzure Virtual Machinesで動かしてみよう。

2020年5月19日

はじめに

Pixel StreamingはリモートのUnreal Engineの画面をPCやサーバーから配信し、デスクトップやモバイルブラウザで見ることができる技術(プラグイン)です。

本来はAzureでは対応していませんが配信できるようにしたいと思います。

Unreal Engineは事前にインストールは完了していることが前提です。

Visual Studioとnode.jsのインストールが必要となります。

Visual Studioのインストール

C++の開発ツールを必要とするためVisual Studioにインストールが必要となります。
Communityバージョンをインストールします。


Game Development with C++を選択し、Unreal Engine installerにチェックを入れてインストールします。

まぁ一回ぐらい起動しておきましょう。
これでVisual Studioの準備は完了です。

node.jsをインストール

node.jsも必要です。

Pixel Streamingのインストールと設定

Pixel StreamingはUnreal Engineのプラグインとして実行されます。

インストール、設定は下記を参考に進めていきます。

EditからPluginsを開きPixel Streaming にEnabledにチェックを入れます。ベータである確認画面が出ますが進めます。そして有効にするためUnreal Engineを再起動します。

EditからProject Settingsを開きます。
項目EnginのInputを引きます。Always Show Touch Interface にチェックを入れます。
チェック入れるだけで反映されます。保存ボタンはありません。

EditからEditor Preferencesを開きます。
項目 Level EditorのPlayでAdditional Launch Parameters に下記の値を入力します。

以上で設定は完了です。

Pixel Streamingを起動する準備をする

先ず最初にパッケージ化します。Visual Studioがインストールされていないとエラーになります。

起動するためのショートカットを作成します。
オプションに -AudioMixer -PixelStreamingIP=localhost -PixelStreamingPort=8888 を追加します。
(-RenderOffScreenを追加するとバックグラウンドで動作するようになります)

起動スクリプトの編集をします。

通常は下記のフォルダ(インストール場所による)

AWSように用意されているスクリプト
Start_AWS_TURNServer.ps1
を編集します(編集前に読み込み専用を外します)。

$LocalIp = Invoke-WebRequest -Uri “http://169.254.169.254/latest/meta-data/local-ipv4" をコメントアウトしてプライベートIPを直接指定します。
$LocalIp “プライベート IP アドレス"

通常は下記のフォルダ(インストール場所による)
(編集前に読み込み専用を外します)

$PublicIp = Invoke-WebRequest -Uri “http://169.254.169.254/latest/meta-data/public-ipv4" をコメントアウトして直接パブリック IP アドレスを入力します。
$PublicIp = “パブリック IP アドレス"

以上で編集は完了です。

Pixel Streamingを起動する

事前にAzure側で80のポートをNSGで開けておきます。
Windows Firewallも設定しておきましょう。

フォルダ

Start_AWS_TURNServer.bat
Start_STUNServer.bat
2つ起動します。

フォルダ

runAWS_WithTURN.bat
を起動します。

起動を確認したらパッケージを編集したショートカットから起動します。

これでAzure側の準備は完了です。

動作確認

ブラウザからパブリックIPにアクセスします。
クリックすると開始します。

ブラウザがわでマウス、キーボードで操作するとAzure側が連動することが分かります。

まとめ

AzureでもPixel Streamingで配信することができました。まだ、ベータ版ですがなんか面白ので遊んでみてください。