はじめに
iPhoneでのゲームプレイを配信しようと思い、iPhoneの画面をPC上に表示する方法はないか調べてみました。画面の表示さえできればいいのですが、UxPlayというAirPlayサーバーになれるOSSがあるようでしたので、試してみました。
この記事の動作環境
- OS: Gentoo Linux
UxPlayとは
AirPlay2のサーバーになれるLinux向けソフトウェアです。
UxPlayの利用
ビルド
私が使っているGentoo Linuxには、UxPlayのパッケージはありませんでした。どこかのOverlayには存在するのかもしれないのですが、今回は自前でビルドしました。
ビルドする方法はUxPlayのREADMEに記載されていますが、Debian/Ubuntu向けの方法(どのパッケージをインストールするか、など)が記載されています。Gentoo Linuxでは同じライブラリが入るようにしてビルド環境を用意しました。
Gitリポジトリのクローン。
$ git clone https://github.com/FDH2/UxPlay .
ここでとりあえずcmakeを実行してみると、不足するライブラリがなにかわかります。
$ mkdir build
$ cd build
$ cmake ..
私の場合、「avahi-compat-libdns_sd」というライブラリのチェックで引っかかりました。これはどうやら、USEフラグに「mdnsresponder-compat」を指定して「net-dns/avahi」を再ビルドすればインストールされるようです。
なので、 /etc/portage/package.use に
net-dns/avahi mdnsresponder-compat
こんな感じで追記して、「net-dns/avahi」を再ビルドしました。
$ sudo emerge net-dns/avahi
自分の環境では、これ以外には特に不足するライブラリはありませんでした。インストールされているライブラリの状況によりけりだと思うので、他の環境では何か別に入れる必要があるかもしれません。
cmakeの成功後、
$ make
すると、実行ファイル「uxplay」が生成されます。これをシステムにインストールしてもいいのですが、まずはここにある状態で利用してみます。
実行
こんな感じで実行します。オプションがいくつかありますが、「-s」でウィンドウサイズ、「-fps」でフレームレートを設定できます。フレームレートはデフォルトで30のようなので、ゲーム配信のようなスムーズな動画が必要な場合、60を指定しておくと良いと思います。
./uxplay -s 1280x720 -fps 60
実行後、iPhoneでコントロールセンターを見ると、画面ミラーリングのところに「UxPlay」が出てくるので、そちらを選択します。
そうすると、ウィンドウが起動し、その中にiPhoneの画面が表示されます。また音声はUxPlayを動かしているPCから鳴るようになります。
※画像は「プロジェクトセカイ カラフルステージ! feat.初音ミク」(プロセカ)のゲーム画面です。
あとはOBS Studioなどを利用して、このウィンドウ内の画面を配信することができます。
ゲームはできるか?
UxPlayを利用してPCに画面を出すと、音声もiPhoneではなくPCから鳴ります。ここでプロセカのような音ゲーの場合、音の遅延が気になるところです。私の環境では、ほとんど違和感なくプレイできました。他のゲームでは試してないので、状況は違うかもしれません。