Version: 2019.3
言語: 日本語
キャッシュサーバー
スクリプトによるソースアセットの変更

Unity Accelerator

概要

The Unity Accelerator is a software agent that allows you to share Unity Editor content faster. An Accelerator coordinates Asset sharing when your team is working on the same local network, so that you don’t need to rebuild portions of your Project. When used with Unity Teams Advanced, the Accelerator also shares source Assets. This significantly reduces download time from the Collaborate service.

When you install an Accelerator on your local network, the Unity Editor (version 2019.3 or higher; see Unity Editor requirements below) communicates with it to retrieve Assets that other team members have changed or built. The Accelerator keeps temporary copies of these Assets on the network to avoid wasting time and bandwidth retrieving or rebuilding them.

項目

要件

ローカルホスティングの要件

チームが定期的に作業する各ネットワークに Accelerator をインストールします。ローカルネットワーク上に、Accelerator をホストすることができるマシンが必要です。ホストを選択する際には、以下の要件を考慮してください。

  • ローカルホストが以下の OS のいずれかを実行している必要があります。
    • Linux version 2.6.23 or higher (64bit)
      For Linux you must install Acccelerator as a root user.
    • Windows Server 2008R2 / Windows 7 以上 (64 ビット)
    • Mac OS X 10.12 以上 (64 ビット)
  • The local host must have sufficient local storage space to host most of your Project’s files, preferably on a solid-state drive separate from the drive that hosts your operating system.
  • ローカルホストがチームと同じネットワークに接続されている必要があります。または、Accelerator の IP アドレスとポート (TCP) へのアクセスを許可する適切なファイアウォールポリシーを持ちローカルのルーティングが可能である必要があります。
  • Anyone with access to the host machine has access to your Project’s files, regardless of permission structures within your Unity Organization. As such, Unity recommends restricting that machine so that only an Organization Owner or Manager can access and interact with the Accelerator.

Unity エディターの要件

Your Unity Project must use version 2019.3 or higher of the Unity Engine.

Accelerator を Unity Teams Advanced と一緒に使う

Accelerator は、Unity Teams Advanced と一緒に使うと、さらに効果を発揮します。

通常の Collaborate ワークフローでは、ユーザーは Cloud からアップロードとダウンロードを行います。高速化された Collaborate ワークフローでは、アップロードは Cloud と Accelerator に保存されますが、ユーザーは Accelerator から直接ダウンロードします。
通常の Collaborate ワークフローでは、ユーザーは Cloud からアップロードとダウンロードを行います。高速化された Collaborate ワークフローでは、アップロードは Cloud と Accelerator に保存されますが、ユーザーは Accelerator から直接ダウンロードします。

設定

Unity Teams Advanced を使用する場合、組織の所有者または管理者のいずれかが、開発者ダッシュボード から以下の手順で Accelerator を作成できます。

  1. From the Develop tab of the dashboard, select the Project you want to create an Accelerator for.
  2. In the Project view, select Collaborate > Accelerator from the left navigation bar.
  3. New Accelerator ボタンをクリックします。
  4. In the New Accelerator prompt, enter an agent name for Unity to use to identify the Accelerator agent. You can also optionally specify a port number.

    Note: The current limit is three Accelerators per Organization.

  5. Click Save to confirm your settings.
  6. On the following screen, copy the registration token, then click the Download Accelerator button in the top-right corner, and select the appropriate operating system.

    Download Accelerator from the developer dashboard.
  7. Launch the downloaded installer, and follow the installation wizard. Use the registration token you copied to register the Accelerator with Unity Collaborate. This will allow you to use the Accelerator for enhanced Collaborate performance.

Source Asset security

When used with Unity Teams Advanced, each Accelerator receives its own security certificate to prove it has permission to access your Organization. Before an Accelerator uploads or downloads any content, the Unity Editor making the request uses SSL/TLS to securely connect to the Accelerator and verifies its authenticity. When Unity Editors discover and connect to an Accelerator, instead of passing a normal Unity user token, they receive a special token from the Unity Identity service. These tokens verify the user’s identity and access to a single Project within your Organization, thereby protecting access to any other Organizations and Projects while using an Accelerator.

Accelerator with Asset Import Pipeline

Asset Import Pipeline provides an API for accessing Project Assets via script, and uses Accelerators as a caching mechanism. When you or a member of the team imports an Asset, Asset Import Pipeline first checks whether the Asset already exists in an imported state in an Accelerator’s store. If it does, Asset Import Pipeline skips the import step and downloads the Asset from the Accelerator instead. If it doesn’t, Asset Import Pipeline imports the Asset, then uploads the result to the Accelerator.

Using Asset Import Pipeline with an Accelerator reduces initial startup time for large Projects significantly. Instead of doing resource-intensive importing, this combination only downloads the imported results and stores them locally for the Project. Users on the same local network can share each other’s imports, reducing the need for multiple people to do heavy importing work.

設定

Unity Teams Advanced を使用していない場合は、Unity Accelerator を直接ダウンロードしてインストールし、インストール時に登録トークンのチェックを外してください。

“ヘッドレス” マシンへ Accelerator をインストール

各プラットフォームで、コマンドラインからインストーラーを実行できます。インストーラーの引数に --help を指定して実行すると、利用可能なさまざまなオプションが表示されます。プロンプトを表示せずに完全なインストールを実行するには、以下の値を指定する必要があります。

  • --storagedir ファイルや設定を保存する Accelerator のディレクトリを設定します。
  • --registration-token specifies the token provided in the developer dashboard after creating the Accelerator. --have-registration-token false skips registration (if, for example, you do not have Unity Teams Advanced). Important: Use only one of these, not both.
  • Use --mode unattended for automated installations that should not query anything. This uses default values, or values from other option flags provided.
  • On Mac OS X, you need to mount the disk image (DMG) and run the binary located in the installer app’s directory (located at Contents/MacOS/installbuilder.sh).

Accelerator 使用のためのエディター設定

Accelerator をインストールすると、設定ウィザードの最後のステップで、エディターで参照する IP アドレスと Port が以下の形式で表示されます。

[IP]:[Port]

Asset pipeline version 2 Cache Server として Accelerator を使用するようにエディターを設定するには、以下の手順を行います。

  1. In the Unity Editor, select Edit > Preferences (Windows) or Unity > Preferences(Mac OS X).
  2. Select Cache Server from the left menu.
  3. Enable Asset pipeline v2, then enter the Accelerator’s IP address from the setup wizard in the Default IP address field.
Configuring an Editor to use an Accelerator for Asset Import Pipeline.
Configuring an Editor to use an Accelerator for Asset Import Pipeline.

Accelerator の監視

開発者ダッシュボード (Unity Teams Advanced ユーザーのみ)

If you are a Unity Teams Advanced user, you can monitor Accelerator metrics from the developer dashboard. These metrics only apply to source Assets, and do not apply to generated (imported) Assets.

To view a summary of your Project’s Accelerators, select that Project, then select Collaborate > Accelerators from the left navigation bar. In this menu, you can view the following information:

プロパティ 説明 
Name Accelerator を作成したときに指定した名前。
Avg. Efficiency 過去 24 時間の Accelerator の平均 効率
Editors Accelerator に接続されている Unity エディターの数。
Latest Activity 直近の Accelerator の使用状況。
状態

Accelerator は以下のいずれかの状態です。- Available は、Accelerator がインストールされていないか、Collaborate サービスに登録されていないことを示します。
- Ready は、Accelerator が Collaborate サービスに登録されているが、Unity エディターがそれに接続されていないことを示します。
- In use は、Unity エディターが Accelerator に接続されているか、最近接続されたことを示します。
- Idle は、Unity エディターが以前に Accelerator を使用したことがあるが、最近のアクティビティがないことを示しています。
- Not Listening は、Accelerator が設定されたポートに接続できなかったことを示します (他のサービスがすでに使用していることが原因の可能性が高い)。
- Disconnected は、Accelerator が、使用状況の報告や設定変更の受信のためにサービスに接続されなくなったことを示します。
Enabled Unity エディターが Accelerator を検出して使用しようとするかどうかを示します。Unity エディターは、Accelerator が起動しているかどうかに関わらず、無効な Accelerator を使用しません。

Details をクリックすると、Accelerator の使用状況に関する以下の詳細情報が表示されます。このデータは 10 分ごとに更新されます。

Efficiency

これは、過去 24 時間の Accelerator の平均パフォーマンスを示しています。値の範囲は 0 - 100で、Collaborate サービスからの遠隔操作ではなく、Accelerator からローカルに提供されたコンテンツダウンロードの割合を測定します。値が 0 の場合、Accelerator がコンテンツのダウンロードを積極的に支援していないことを示します。100 の値は、Accelerator がすべてのコンテンツダウンロードを提供していることを示します。

Bytes Removed

Periodically, the Accelerator clears space to store new Assets. When it does, the dashboard reports the number of bytes allocated to older Assets that the Accelerator removed from local storage.

Note: This is a normal operation to help maintain a healthy Accelerator. However, if this value seems to be adversely affecting the Accelerator’s efficiency, you might need to add more storage space to accommodate your team’s usage. Ideally, the file system running the Accelerator should use a solid-state hard drive with enough free disk space to house all files in the most recent version of active Projects, but this is not a requirement. If insufficient storage is available, the overall efficiency of the Accelerator declines.

Bytes Delivered

分散したチームには、Accelerator を使用するローカルのコントリビューターと、Collaborate サービスを使用するリモートのコントリビューターがいる場合があります。このような場合、Accelerator はリモートの公開のイベントをリッスンし、ローカルネットワーク上のユーザーのために、影響を受けるコンテンツを積極的にダウンロードします。

Accelerator を使用する場合、Accelerator は、ローカルネットワークから配信されたバイト数ではなく、リモートの Collaborate サービスに要求してダウンロードした全体のバイト数を報告します。ローカルに配信されたバイト数が多いほど、ネットワークゲートウェイへの負荷が少なくなるため、チームにとっては好ましいと言えます。

Time Saved

The Accelerator tracks bandwidth when it delivers locally stored Assets instead of downloading them from the Collaborate service, and reports the difference in time the Unity Editor would have waited to download Assets remotely as time saved.

Note: The aforementioned metrics apply only to source Assets. They do not apply to generated (imported) Assets.

Accelerator の指標に直接アクセスする

Unity Teams Advanced を使用しない場合、各 Accelerator は Prometheus metric reports/metrics としてホストしており、ローカルネットワークからそれを照会することができます。以下は、アクセス可能な指標の全リストです。

指標 説明 
process_resident_memory_bytes Accelerator が使用するメモリの量です。
uta_agent_sys_cpu_percent システムが使用する CPU の量です。
uta_agent_sys_mem_bytes_used システムによって使用されるメモリ量です。
uta_agent_protobuf_connects Unity エディターがアセットインポートパイプラインのサービスに接続した回数。
uta_agent_protobuf_bytes_in アセットインポートパイプラインから受信したバイト数。
uta_agent_protobuf_bytes_out アセットインポートパイプラインに送信されたバイト数。
uta_agent_protobuf_requests{code="0",method="get"} アセットインポートパイプラインに送られたアイテムの数。
uta_agent_protobuf_requests{code="1",method="get"} アセットインポートパイプラインに送られたアイテムから発生したエラーの数。
uta_agent_protobuf_requests{code="2",method="get"} アセットインポートパイプラインに送られたアイテムから発生した名前空間エラーの数。
uta_agent_protobuf_requests{code="3",method="get"} キャッシュされていないアイテムに対してアセットインポートパイプラインから行われたリクエストの数。
uta_agent_protobuf_requests{code="0",method="put"} アセットインポートパイプラインから受け取ったアイテムの数。
uta_agent_protobuf_requests{code="1",method="put"} アセットインポートパイプラインから受け取ったアイテムから発生したエラー数。
uta_agent_protobuf_requests{code="2",method="put"} アセットインポートパイプラインから受信したアイテムに発生した名前空間エラー数。
uta_agent_protobuf_requests{code="0",method="delete"} アセットインポートパイプラインからのアイテム削除のリクエスト数。
uta_agent_protobuf_requests{code="1",method="delete"} アセットインポートパイプラインがアイテムを削除する際に発生したエラー数。
uta_agent_protobuf_requests{code="2",method="delete"} アセットインポートパイプラインによるアイテム削除リクエストから発生した名前空間エラーの数。
uta_agent_protobuf_requests{code="3",method="delete"} キャッシュされていないアイテムのアセットインポートパイプラインから送信されたアイテムを削除するリクエスト数。

Unity エディターログのデバッグ

Unity エディターのログ は、デバッグ情報を見るのに便利です。Collaborate イベントのログを表示するには、環境変数を enableCollabEventLogs=true に設定して、Unity エディター (またはUnity Hub) を動作させます。[collab-accelerator] とマークされたログは、Accelerator のパフォーマンスを把握するのに役立ちます。

以下のブロックは、Asset Import Pipeline v2 を使用した Accelerator のログ出力例を示しています。これは Collaborate 用ではないため、enableCollabEventLogs=true を必要としません。

2019-10-07T11:34:51-0700 Using Asset Import Pipeline V2.
  ...
  2019-08-08T09:04:03-0700 Start importing Assets/Scenes/tame-the-unicorn.png guid(07a0d449dcaef4d2ba104e9d9b350de6)
  2019-08-08T09:04:05-0700 Done importing asset: 'Assets/Scenes/tame-the-unicorn.png' (target hash: 'd5fddd470dd9beedcd7261b6455e436a') in 1.082988 seconds
  2019-08-08T09:04:05-0700 RemoteAssetCache::AddArtifactToCacheServer - artifactKey='Guid(07a0d449dcaef4d2ba104e9d9b350de6) Importer(-1,)' Target hash='d5fddd470dd9beedcd7261b6455e436a'

Accelerator サービスの停止と再起動

Accelerator は、各プラットフォームのバックグラウンド処理として動作します。

Windows

Services Panel を開くには、“設定” メニューで “Services” を検索するか、Run ダイアログ (WIN + R) で “services.msc” を実行します。次に、結果のリストの中から “Unity Accelerator” サービスを探します。左側のパネルに Stop the service または Restart the service というオプションが表示されます。

Mac OS X

ターミナルから launchctl コマンドを実行して、LaunchControl ユーティリティから “com.unity.accelerator” サービスを制御することができます。詳細については、https://www.launchd.info/ を参照してください。

Linux

“unity-accelerator” サービスの制御には、 service コンソールユーティリティを使用します。詳細は、http://manpages.ubuntu.com/manpages/bionic/man8/service.8.html 参照してください。

メンテナンス

Accelerator サービスは、メンテナンス期間中に自動的に更新されます。メンテナンス期間は、Accelerator が動作しているマシンの現地時間午前 1 時 - 2 時に設定されています。これは、Accelerator により新しいバージョンが可能な場合にのみ行われます。

Accelerator’s installation and uninstallation logs are saved in the operating system’s standard temp directory as unity-accelerator-*install.log. Accelerator’s logs are saved in the storage directory as unity-accelerator.log.

トラブルシュート

Accelerator をインストールしたにもかかわらず、一部の Unity エディターがそれを使用していない場合、いくつかの要因が考えられます。以下のトラブルシュートを参考にしてください。

使用しているUnity エディターのバージョンの確認

Each Project contributor must be using an Editor version 2019.3 or higher to use an Accelerator.

ユーザーが Accelerator のローカルネットワーク上にいることを確認

Make sure the Accelerator is running on the same local area network as the Project contributors experiencing issues. Accelerator does not affect contributors who are working remotely.

Accelerator の接続をテスト

問題が発生しているマシンが Accelerator にアクセスできるかどうかを確認します。Unity Teams Advanced を使用している場合は、以下の手順でブラウザーから Accelerator のヘルスページにアクセスします。

  1. 開発ダッシュボード で、Collaborate > Accelerator を選択します。
  2. テストしたい Accelerator の Details** をクリックします。
  3. Accelerator の IP アドレスの横にある info アイコンをクリックすると、ヘルスページの URL が表示されます。

Unity Teams Advanced を使用していない場合は、以下の URL パスに Accelerator のホスト IP アドレスを入力すると、ヘルスページが表示されます。

[AcceleratorIP]:[AcceleratorPort]/api/agent-health

テストに失敗した場合は、すべてのホストとネットワークのファイアウォールが Accelerator のリッスン IP アドレスとポート (TCP) へのアクセスを許可していることを確認してください。このポートへのアクセスを許可するために、ネットワーク管理者に連絡する必要があるかもしれません。

Check the Accelerator’s Project configuration

If you use Unity Teams Advanced, verify that the Accelerator is configured for the Project in question. Navigate to the Project in the developer dashboard, and select Collaborate > Accelerator from the left navigation bar. You should see the Accelerator listed for that Project.

サポート

For help regarding Accelerator with Unity Teams, email support or submit a help ticket from the developer dashboard. To submit a ticket for a Unity Teams Advanced Project, select your Project, then select Collaborate > Support from the left navigation bar.

アセットインポートパイプラインを使用した Accelerator に関するお問い合わせは、Accelerator forums を参照してください。

キャッシュサーバー
スクリプトによるソースアセットの変更