誰だって待つのは好きではありません ― それがコーヒーメーカーで朝一番に飲むおいしいコーヒーを作る時間(これは正直、かなり重要)でも、ローカルのプロジェクトに最新のソースコードの変更をダウンロードするときでも、Unity エディターに初めてソースコードの新しい変更をロードするときでも。私たちは、一杯のコーヒー作りをお手伝いすることはできませんが、Unity Accelerator を使っていただくことで、すべての Unity 開発者のワークフローにとって重要な要素である、ソースコードの変更によって発生するダウンロードや読み込み時間を大幅に短縮することができます。
Unity Accelerator は、ローカルネットワークプロキシおよび Collaborate を用いたアセットパイプラインを通じたインポートとソースコードのダウンロードの 2 つの主要なシナリオのイテレーション時間を高速化するキャッシュサービスです。この改良されたワークフローにより、定期的なブロッカーの待ち時間を大幅に短縮し、あなたとあなたのチームが重要なこと、すなわち開発ができるような状況に戻すことを可能にしました!
ローカルプロジェクトでアセットが自動的に変更されたことを Unity が検出すると、アセットは Unity で読み取り可能にして自動的に変換されます。このプロセスはアセットパイプラインによるインポートとして知られています。これは、より多くの変更が検出されると指数関数的に増加する時間のかかるプロセスになる場合があります。Unity 2019.3 では、新しいアセットをインポートをするパイプラインのバージョンが導入され、インポートプロセス全体の性能、拡張性および信頼性が向上しました。さらに、Unity 2019.3 では、オンデマンドでプラットフォームの切り替えを高速化する機能やバックグラウンドプロセスとしてインポートする機能など、他の実験的な機能も利用可能です。詳細については、こちらをご覧ください。
Unity Accelerator は、変換されたアセットのローカルネットワークキャッシュをチーム全体に提供することにより、新しいアセットのインポートパイプラインを増やします。つまり、実際インポートを実行する必要があるのは 1 人だけで、結果は自動的に Unity Accelerator にキャッシュされます。次に、チームメンバーが同じバージョンのアセットをインポートするときに、ローカルマシンでインポートプロセスを開始する前にキャッシュが最初にチェックされます。
ソース管理の重要な課題の 1 つは、アセットを迅速に共有することです。多くの場合、ファイルサイズが大きいか、インターネットの帯域不足のために問題が発生します。Unity Accelerator によって、Collaborate のローカルプロジェクトを最新のリビジョンに更新するとき、アセットのダウンロード待ちのブロックされている時間が短縮されます。また、サービスダッシュボードで性能をモニターすることもできます。これにより、全体的な効率(過去 24 時間)、配信バイト数、節約された時間など、重要なメトリクスが表示されます。
弊社の内部テストでは、プロジェクト更新の待機時間を最大 90% 短縮できたことが示されています!以下は弊社で行ったテストのメトリクスの一例です。
ダウンロードサイズ | ファイル数 | Accelerator にキャッシュされているファイルがない場合 | すべてのファイルが Accelerator にキャッシュされている場合 |
100 MB | ~12,000 | 6 分 | 30 秒 |
Unity Accelerator は、Collaborate サービスのプロキシおよびキャッシュです。ローカルネットワークで設定すると、新しいファイルは Collaborate クラウドサービスにアップロードされる途中で(つまり、パブリッシュするたびに)キャッシュされます。同じローカルネットワーク上にいるチームメンバーが次にプロジェクトを更新すると、Unity Accelerator は最初にファイルのコピーをキャッシュでチェックしてから、ダウンロードするサービスに接続します。
Unity Accelerator には、リモートチームメンバーによってパブリッシュされているソースを事前読み込みする機能もあります。たとえば、3 人のゲーム開発者(Alice、Sam、Joe)が同じプロジェクトに参加しているとします。彼らは以下のような分散チームです。
Sam は Unity 内でパブリッシュするたびに Collaborate サービスと直接話します。Alice と Joe が使用する Accelerator は、Sam が行った新しいパブリッシュに関して Collaborate のサービスを自動的にモニターし、パブリッシュが行われるとダウンロードします。次に、Alice と Joe がローカルプロジェクトにそれらを更新する準備ができたら、Collaborate のサービスを使わずに、Accelerator から直接取り込みます。
Unity Accelerator は、 OSX、Windows、および Linuxでダウンロード可能なスタンドアロンのツールです。Collaborate の 2019.3 Beta 1 以降のバージョンと互換性があり、Asset Pipeline Import プロセスのサポートは、今後の 2019.3 ベータ版リリースでご利用できます。ベータフォーラム、Acceleratorフォーラム、およびエディターリリースノートを常に注目していただき、Accelerator の Asset Pipeline Import 機能がいつ利用可能になるかを確認しましょう。Asset Pipeline Import 機能は完全に無料でご利用できますが、Collaborate のソース管理機能については、Unity Teams Advanced サブスクリプションが必要です。
さらに、Asset Pipeline Import 機能は完全に無料でご利用いただけますが、Collaborate のソース管理機能は Unity Teams Advanced のサブスクリプションが必要です。 作業の開始方法に関しては、こちらをご覧ください。
コメント欄およびフォーラムにフィードバックをお寄せいただきありがとうございます!ご質問への回答に役立つ短い Q&A をまとめました。
Unity Accelerator とキャッシュサーバーとの違いは何ですか?
最も重要な違いは、元のキャッシュサーバーが Asset Pipeline v1 のみをサポートしていることです。Unity Accelerator は、Asset Pipeline v2(近日公開予定)と Collaborate のサービス(現在利用可能)を用いたソースコードの両方に対応するキャッシングを追加します。
Unity Accelerator のもう 1 つの大きな利点は、Asset Pipeline v2 および/または Collaborate のサービスで使用する場合、自動ディスクストレージ管理を備えていることです。つまり、不要なアセットやソースを定期的にクリーンアップするということです。元のキャッシュサーバーでは、チームは追加のツールを使用してディスク領域を管理する必要がありました。
3 つめの違いとしては、Unity Accelerator は転送されたバイト数、接続されたエディターなどの有用な情報を提供するメトリクスも公開することです。これらは、Prometheus の取得している測定値としてホストされ、ローカルネットワークから /metrics を呼び出すことでクエリできます。
Unity Accelerator のインストールウィザードでキャッシュサーバーをインストールできることに気が付きました。 これは新しい機能なのでしょうか?
キャッシュサーバーに新しい機能を追加していません。 Unity Accelerator のインストールウィザードにその機能が含まれたので、チームはインストールを管理するのに一箇所に移動するだけで済みました。
キャッシュサーバーには、各エディターのリリースで常に新しいバージョンがリリースされています。Unity Accelerator のインストーラーで使用されるのはキャッシュサーバーのどのバージョンですか?
2019.3 で使用されている Asset Pipeline v1 と最も互換性のあるバージョンをバンドルしています。古いバージョンを実行していて、それらをサポートするキャッシュサーバーが既にある場合は、Unity Accelerator に付属しているものをインストールする必要はありません。
Unity Accelerator の各インスタンスは、特定の Unity バージョンのみをサポートしますか、それとも複数の同時にインストールされた Unity や、Unity バージョンの異なるプロジェクトで動作しますか?
Unity Accelerator は、下位互換性を維持し、2019.3 以降の Asset Pipeline v2 および Collaborate サービスの全バージョンをサポートします。これをシームレスに行えるように、必要に応じて自動的にアップグレードします。
ソース管理のキャッシュは Collaborate でのみ動作しますか?
現在サポートされているソース管理は、Collaborate のみです。今後は、他のソース管理をサポートする可能性を検討しております。