2019年4月9日
Pixel Streaming:高品質の UE4 コンテンツをどのデバイスにも、どこにいても
Pixel Streaming は Unreal Engine 4.21 のリリース時にベータ版として利用が開始されました。Unreal Engine 4.22 では、そのための新たなサンプル プロジェクトが登場したため、すぐに使用できるようになりました。Pixel Streaming は、高品質のコンテンツをあらゆるプラットフォーム (モバイル デバイスであっても) のほぼすべてのウェブブラウザにストリーミングすることができます。しかも、ダウンロードやインストールは一切不要です。参加者にとっても複雑な操作は不要で、YouTube の動画にアクセスする程度の簡単な操作しか必要ありません。しかも、YouTube の場合とは違って、キーボードやマウス、タッチイベント、カスタムの HTML5 の UI を使って、コンテンツとインタラクトすることが可能になり、参加者の反応がエンジンに送信されることになります。
Pixel Streaming によって、アプリケーションの実行は、モダン ウェブブラウザがあればどこででも可能になります。たとえば、製品コンフィギュレーターや出張先での建築デザインのレビュー、インタラクティブな訓練などが実行できるようになるのです。リンクを共有するだけで複数のビューアを単一のセッションでコラボレートさせることができます。あるいは、接続しているビューアをそれぞれの個別のセッションに送信することも可能です。
Pixel Streaming はどのように機能するのか?
これまでなら、エンドユーザーがリアルタイムのコンテンツを利用するデバイスは (それがデスクトップ PC であれ、コンソールやタブレット、スマートフォンであれ)、通常、ゲームプレイのロジックを実行しその結果を画面に描画するデバイスと同じものでした。そのため、コンテンツのパフォーマンスとクオリティは、そのデバイスの性能に制約を受けていました。ところが、Pixel Streaming があれば、Unreal Engine によるアプリケーションを強力なリモート コンピュータ (クラウド内のコンピュータまたはローカルサーバーとしてのコンピュータ) で実行できるようになります。つまり、その CPU や GPU、メモリなどのリソースを利用することによって、リアルタイムに毎フレームゲームロジックを実行し描画することが可能になるのです。するとエンドユーザー側は自分のコンピュータやタブレット、スマートフォン上にある標準的なウェブブラウザと軽量のウェブサービスを利用して、これらのゲーム アプリケーションに接続することができるようになります。
内部の構成は?
そのパワーにもかかわらず、通常の Pixel Streaming の構成はいたってシンプルです。視聴のためのプラットフォームと Unreal Engine を接続するコンポーネントが 3 つあるだけです。だれでもかなり簡単にローカル ネットワーク内でセットアップすることができます。ただし、非常に強力な機能であるため、ウェブサービスを配備したことがあるチームがカスタムのクラウドホスト型プラットフォームを構築するための基礎として使用することができるほどです。ビューアと Unreal Engine によるアプリケーション間のレイテンシーをできるだけ抑えるために、このシステムでは WebRTC ピアツーピア通信フレームワークが利用されています。
- Pixel Streaming プラグイン - このプラグインは Unreal Engine 内で動作します。レンダリングされた各フレームの最終結果を H.264 動画圧縮規格を使用してエンコードし、ゲームのオーディオとともにそれらの動画のフレームをメディア ストリームに圧縮し、WebRTC プロキシサーバーに送信します。
- WebRTC プロキシサーバー - WebRTC プロキシサーバーは、Pixel Streaming プラグインによって作成されたメディアストリームを直接的なピアツーピア通信を介して複数のビューアに中継します。
- シグナリングおよびウェブサーバー - シグナリングおよびウェブサーバーは、ビューアと WebRTC プロキシサーバーの間で接続のネゴシエートを行うとともに、メディアストリームを再生するための HTML および JavaScript 環境を提供します。
Pixel Streaming の基本的なテクノロジーについては、Unreal Engine のドキュメンテーション Pixel Streaming (Pixel Streaming = 日本語版) に詳しく解説されています。
なぜ凄いのか?
このようなシステムの利点は次のように多数あります。- モバイルデバイスと軽量のウェブブラウザによって、ワークステーション級の 3D グラフィックスを表示できるようになります。つまり、他の方法によるよりも遥かに高品質なものが得られます。また、強力な GPU を背景にした描画機能を使うことができるため、複雑なシーンを高フレームレートで表示することが可能になります。
- ウェブページを読み込んでからインタラクティブな経験を得るまでに要する時間は 1 秒未満です (WebGL によるアプローチと非アックしてみてください)。ウェブページを開くことを諦めるのは、遅れによるところが大きいというのはよく知られていることです (Kissmetrics による)。経過時間が 3 秒を超えると 40% の人たちがそのページを放棄します。 (
- ユーザーの体験が予測ができます。コンテンツを利用するためにユーザーが使っているデバイスがどのようなものであっても、彼らはあなたと同じものを見ています。表示上の問題を引き起こすグラフィックス ドライバーや GPU による制約については心配する必要がなくなります。
- Pixel Streaming は「ゼロインストール」のソリューションです。したがって、エンドユーザーは、プラグインや巨大な実行ファイル、コンテンツのファイルを事前にダウンロードしたり、何かをインストールする必要はありません。ビューアが使うものは、他のビデオストリーム同様、ビデオストリームだけなのです。また、WebGL とは異なり、あなたの 3D データが他の人のハードディスクの中に保存されることもありません。このことはセキュリティ問題を心配する会社にとっては好都合です。
- デベロッパー視点から見ると、Pixel Streaming は際立ってサポートが容易なソリューションです。考えられる限りのすべてのモバイルとブラウザの構成にこのエクスペリエンスを移植することを想像してみると、遥かに簡単にサポートできることがわかります。たとえば、一つの変更が必要だとします。どうすればいいでしょうか?一箇所で変更するだけで、全ユーザーが即座に新たなエクスペリエンスを手にすることができます。Windows に向けて一度アプリケーションをパッケージングすると、ユーザーは好きなプラットフォームの好きなモダン ブラウザでコンテンツを体験することができるのです。(ただし、ブラウザは WebRTC 接続モデルをサポートしている必要があります。このモデルは デスクトップおよび iOS、Android の Google Chrome と Mozilla Firefox に含まれています。)
Pixel Streaming を試してみるには? ― まだ使ったことがない方は、まず Epic Games Launcher から Unreal Engine 4.22 をダウンロードしてから、Pixel Streaming プラグインを有効化してください。理解を速めるためには、新たなに制作された Pixel Streaming Demo のダウンロードをおすすめします。このデモは Epic Games Launcher の [ラーニング] タブを開くと、Engine Feature Samples のセクションに入っています (下の画像をご覧ください)。また、Pixel Streaming の詳しい内容を知るためには、getting started with Pixel Streaming (Pixel Streaming 入門) のドキュメンテーションをご覧ください。
Unreal Engine がまったく初めての場合は、こちらからアカウントを作成してください。Pixel Streaming が皆様のお役に立ち、快適な使用感をもたらせばと願っています。