Version: 2019.4
言語: 日本語
プロジェクトを別のバージョン管理システムに移行する
Collaborate のトラブルシューティングのヒント

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 (Ubuntu 16.04、Ubuntu 18.04、または CentOS 7)
      Linux の場合、Acccelerator をルートユーザーとしてインストールする必要があります。
    • 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.

ノート: Accelerator を Linux システムにインストールする場合は、Accelerator バージョンの確認 を参照してください。

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 を Linux システムにインストールする場合は、Accelerator バージョンの確認 を参照してください。

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

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

  • --storagedir ファイルや設定を保存する Accelerator のディレクトリを設定します。
  • --registration-token Accelerator の作成後に 開発者ダッシュボード で提供されるトークンを指定します。これは、Accelerator を Collaborate と一緒に使用する際に必要です。
  • 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.

また、Unity エディターの起動時に、コマンドライン引数 を使って、Accelerator Cache Server の設定情報を提供することもできます。

Accelerator Cache Server の使用を指定するには、-EnableCacheServer 引数を使用します。アドレスとポート番号を指定するには、-cacheServerEndpoint Address:Port を使用し、アドレスとポートをキャッシュサーバーの詳細に置き換えます。

ノート: Accelerator Cache Server では、プロジェクトが Asset Database V2 (ADB2) を使用する必要があります。コマンドラインから Unity を起動する際に、-adb2 を使って ADB2へのアップグレードを強制することができます。

詳細は、コマンドライン引数 を参照してください。

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 の使用状況。
Status

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"} キャッシュされていないアイテムのアセットインポートパイプラインから送信されたアイテムを削除するリクエスト数。
uta_agent_protobuf_cache_hits キャッシュから提供されたアセットインポートパイプラインリクエストの数。
uta_agent_protobuf_cache_misses キャッシュから提供できなかったアセットインポートパイプラインリクエストの数。
uta_agent_protobuf_cache_bytes_out キャッシュからアセットインポートパイプラインに提供されたバイト数。
uta_agent_protobuf_cache_bytes_in アセットインポートパイプラインから受け取ったキャッシュに格納されたバイト数。

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.

Accelerator のバージョンを確認

Linux システムに Accelerator をインストールする場合、すべての Linux 実行ファイルには署名ファイルがあり、ダウンロードした Accelerator バージョンが悪意のある団体によって改ざんされていないことを確認することができます。署名ファイルは、GnuPG の信頼できるバージョンで検証することができます。以下のキーは、現在のリリースを署名しています。このキーを含む公開鍵ブロックは、https://collab-accelerator.cloud.unity3d.com/ で入手できます。

pub     rsa4096 2019-12-02
Key fingerprint = 9BC4 B04D F2E8 74E5 64AA 47E7 6D44 3B8B 002C F61F
uid       Unity Technologies ApS (Accelerator signing key) <sst-ops@unity3d.com>

GPG ストアにキーをダウンロードするには、以下のいずれかのコマンドを使用します。

$ gpg --keyserver https://collab-accelerator.cloud.unity3d.com/ --search-key "sst-ops@unity3d.com"

$ gpg --keyserver https://collab-accelerator.cloud.unity3d.com/ --recv-key 9BC4B04DF2E874E564AA47E76D443B8B002CF62F

インストールした Accelerator のバージョンがオリジナルで、変更されていないことを確認するには、ファイルの署名を確認します。

Accelerator のインストールファイルには、https://storage.googleapis.com/unity-accelerator-prd/unity-accelerator-installer.sig で入手できる署名ファイルが付属しています。この署名ファイルを使って、Accelerator のインストーラーを確認してください。

$ gpg --verify unity-accelerator-installer.sig unity-accelerator-linux-x64-installer.run

キーを信頼する前に、フィンガープリントを “偽造されたキーまたは信頼されていないキー” に表示されているものと比較します。 キーを信頼すると、次のように表示されます。

gpg: Signature made Thu Jan 16 12:29:14 2020 PST
gpg:                using RSA key 9BC4B04DF2E874E564AA47E76D443B8B002CF61F
gpg: Good signature from "Unity Technologies ApS (Accelerator signing key) <sst-ops@unity3d.com>" [ultimate]

これは、署名が有効であり、このキーを信頼したことを意味します。

不適切なキー

正しい配布キーを持っていない場合、上記コマンドの出力は以下のようになります。

gpg: Signature made Thu Jan 16 12:29:14 2020 PST
gpg:                using RSA key 9BC4B04DF2E874E564AA47E76D443B8B002CF61F
gpg: Can't check signature: No public key

この場合、前述の手順でキーを取得する必要があります。

偽造されたキーや信頼できないキー

有効な署名付きのキーのコピーを持っていても、そのキーが信頼済みとマークされていなかったり、キーが偽造されていたりすると、出力は以下のようになります。

gpg: Signature made Thu Jan 16 12:29:14 2020 PST
gpg:                using RSA key 9BC4B04DF2E874E564AA47E76D443B8B002CF61F
gpg: Good signature from "Unity Technologies ApS (Accelerator signing key) <sst-ops@unity3d.com>" [unknown]
gpg: WARNING: This key is not certified with a trusted signature!
gpg:          There is no indication that the signature belongs to the owner.
Primary key fingerprint: 9BC4 B04D F2E8 74E5 64AA  47E7 6D44 3B8B 002C F61F

キーが偽造されている場合は、署名ファイルを使ってフィンガープリントを確認する必要があります。 キーが信頼済みとしてマークされていない場合は、キーを編集して信頼済みとしてマークします。詳細については、https://www.gnupg.org/gph/en/manual/x334.html を参照してください。

サポート

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 を参照してください。

プロジェクトを別のバージョン管理システムに移行する
Collaborate のトラブルシューティングのヒント