はじめに
Unity Accelerator は Unity 2019.3 以降で使用できる新しいキャッシュサーバです
Unity プロジェクトでアセットをインポートした時のキャッシュを保存しておくことができます
通常、Unity をそのまま使用している場合、アセットをインポートした時のキャッシュは
Unity プロジェクトのフォルダに存在する「Library」フォルダに保存されます
個人で開発している場合はこれでも問題はないのですが
複数人で開発している場合は、各開発者の PC で Unity プロジェクトの Library フォルダに
同じようにアセットのキャッシュが保存されていることになります
Unity Accelerator を使用する場合、1台の PC にキャッシュサーバを立てることになるため、
誰か1人でもアセットをインポートすれば、そのキャッシュがサーバに保存され、
他の開発者はすでにその人がサーバにキャッシュしたデータを使用できるようになり、
Unity で作業する際のアセットのインポート時間を短縮できるようになります
この記事では Unity Accelerator の基本的な使い方を紹介していきます
目次
- はじめに
- 目次
- 検証環境
- インストール方法
- ダッシュボードの確認
- Unity エディタの設定
- 動作確認
- すべてのアセットのキャッシュのアップロード
- Unity Accelerator の停止と開始
- すべてのキャッシュの削除
- まとめ
- 参考サイト様
検証環境
- Windows 10
- macOS Catalina 10.15.5
- Unity 2020.1.3f1
- Unity Collaborate は使用しない
インストール方法
まずはキャッシュサーバとして運用したい PC に
Unity Accelerator をインストールしていきます
https://docs.unity3d.com/Manual/UnityAccelerator.html
上記のページにアクセスして
ご使用の PC に合わせてインストーラをダウンロードします
そして、ダウンロードしたインストーラを実行します
セットアップウィザードが表示されたら「Next >」を押します
ライセンス契約について表示されたら
「I accept the agreement」をチェックして「Next >」を押します
jj
インストール先のフォルダの設定画面が表示されたらそのまま「Next >」を押します
Unity Accelerator のデータの保存先の設定画面が表示されたらそのまま「Next >」を押します
構成の設定画面が表示されたら
「Accelerate Unity Collaborate」のチェックを外して「Next >」を押します
(Unity Collaborate を使用する場合はチェックが必要ですが、
今回は Unity Collaborate の使用は想定しておりません)
セキュリティの設定画面が表示されたら
「Allow insecure access with NO encryption」を選択して「Next >」を押します
(暗号化なしで安全ではないアクセスを許可しています。
必要であればセキュリティ情報は適宜設定してください)
資格情報の設定画面が表示されたら
管理者のユーザー名とパスワードを自由に設定して「Next >」を押します
ここで設定したユーザー名とパスワードは、
Accelerator のダッシュボードの設定変更画面やログ画面にアクセスする時に使用します
確認画面が表示されたら「Next >」を押します
するとインストールが始まるのでしばらく待ちます
インストールが完了すると Unity Accelerator にアクセスするための
IP アドレスとポート番号が表示されるのでメモしてから「Finish」を押します
これで Unity Accelerator のインストールは完了です
ダッシュボードの確認
Unity Accelerator のインストールが完了すると自動でダッシュボードが開きます
このダッシュボードでキャッシュの容量の確認や設定変更などができます
http://【IP アドレス】/dashboard/
ダッシュボードの URL はこのようになります
Unity エディタの設定
前項までで Unity Accelerator を使用する準備ができたので
Unity エディタを開いて Unity Accelerator を使用するための設定をしていきます
Unity エディタで Unity Accelerator を設定する方法は2種類あります
- Unity プロジェクトごとに Unity Accelerator を設定する方法
- 特定の Unity プロジェクトでのみ Unity Accelerator を使用する場合
- プロジェクトごとに違う Unity Accelerator を使用する場合
- PC 単位で Unity Accelerator を設定する方法
- どのプロジェクトでも同じ Unity Accelerator を使用する場合
1. Unity プロジェクトごとに Unity Accelerator を設定する
Unity プロジェクトごとに Unity Accelerator を設定する場合は
Unity メニューの「Edit > Project Settings...」を選択して
サイドメニューの「Editor」を選択します
そして、「Cache Server (project specific)」の欄の下記の項目を設定します
- Mode:Enabled
- IP address:先ほどメモした IP アドレスとポート番号を入力
- 例:
192.168.0.114:10080
- 例:
そして「Check Connection」を押して「Connection successful」と表示されれば
正常に Unity Accelerator に接続できています
2. PC 単位で Unity Accelerator を設定する方法
PC 単位で Unity Accelerator を設定する場合は
Unity メニューの「Edit > Preferences...」を選択して
サイドメニューの「Cache Server (global)」を選択します
そして下記の項目を設定します
- Cache Server Default Mode:Enabled
- Default IP address:先ほどメモした IP アドレスとポート番号を入力
- 例:
192.168.0.114:10080
- 例:
そして「Check Connection」を押して「Connection successful」と表示されれば
正常に Unity Accelerator に接続できています
これで、Unity エディタで Unity Accelerator を使用する設定が完了しました
あとは普段どおりに Unity を使用すれば、アセットをインポートした時に
Unity Accelerator にキャッシュが自動で保存されるようになります
Unity 2020.1 以降ではステータスバーで接続状況を確認可能
Unity 2020.1 以降ではステータスバーで Unity Accelerator に
正常に接続できているかどうかを確認できます
動作確認
Unity エディタの設定を変更して Unity Accelerator が使用できるようになったので
本当に動作しているかどうかを確認してみます
ダッシュボードで確認
Unity Accelerator が正常に動作しているかどうかはダッシュボードで確認できます
適当な Unity プロジェクトの Project ビューで「+ > Material」を選択して
マテリアルを作成します
そして、Unity Accelerator のダッシュボードを開いて
「Internet Data Downloaded into cache」の容量が増えていれば
正常にアセットのキャッシュが Unity Accelerator に保存されています
もしも容量が 0.0 B のままの場合は F5 を押すか「Refresh」ボタンを押して
画面の表示を更新してみてください
それでも 0.0 B のままであれば、Unity エディタの設定を見直してみてください
Editor.log で確認
Unity Accelerator が正常に動作しているかどうかは Editor.log でも確認できます
Console ウィンドウのタブを右クリックして「Open Editor Log」を選択して
ログファイルが開いたら
AcceleratorClientConnectionCallback - connected - 【IPアドレス】:【ポート番号】
「AcceleratorClientConnectionCallback」で検索してみて上記のログが見つかったら
正常に Unity Accelerator に接続できています
Querying for cacheable assets in Cache Server: 88623c161abdd134f9898dcf1e72571b:Assets/New Material.mat RemoteAssetCache - Download - Metadata - success:false, namespace:81e94844d19a16919208533e08183531, key:ebf7c5c6f3168858d2f27f0583db4b01 Start importing Assets/New Material.mat using Guid(88623c161abdd134f9898dcf1e72571b) Importer(-1,00000000000000000000000000000000) -> (target hash: '59550b084b643182a4aa7f0cdf16c278') in 0.025727 seconds RemoteAssetCache::AddArtifactToCacheServer - artifactKey='Guid(88623c161abdd134f9898dcf1e72571b) Importer(-1,00000000000000000000000000000000)' Target hash='59550b084b643182a4aa7f0cdf16c278' Key (and library path)='Library/Artifacts/62/62f3cb60ecf9ba5020f8cf42d160d9c5' RemoteAssetCache - Upload - Artifact - success:true, namespace:81e94844d19a16919208533e08183531, key:62f3cb60ecf9ba5020f8cf42d160d9c5 RemoteAssetCache::AddArtifactToCacheServer - artifactKey='Guid(88623c161abdd134f9898dcf1e72571b) Importer(-1,00000000000000000000000000000000)' Target hash='59550b084b643182a4aa7f0cdf16c278' Key (and library path)='Library/Artifacts/d2/d2d6c30e75fdbc02255a14464b7e62ab' RemoteAssetCache - Upload - Artifact - success:true, namespace:81e94844d19a16919208533e08183531, key:d2d6c30e75fdbc02255a14464b7e62ab RemoteAssetCache - Download - Metadata - success:false, namespace:81e94844d19a16919208533e08183531, key:f7ecf005217e43feb9f56d1fb611c2b9 RemoteAssetCache - Upload - Metadata - success:true, namespace:81e94844d19a16919208533e08183531, key:f7ecf005217e43feb9f56d1fb611c2b9
「RemoteAssetCache」で検索してみて、アセットの作成時やインポート時に
キャッシュのアップロードやダウンロードのログが記載されていれば
Unity Accelerator が正常に動作しています
すべてのアセットのキャッシュのアップロード
Unity プロジェクトのすべてのアセットのキャッシュを
Unity Accelerator に保存しておきたい場合は
Unity プロジェクトのすべてのアセットを再インポートします
Unity エディタの Project ビューを右クリックして「Reimport All」ボタンを押します
これで、Unity プロジェクトのすべてのアセットの再インポートが開始するので
完了するまで待ちます
再インポートが完了したら Unity Accelerator のダッシュボードを開きます
そして「Internet Data Downloaded into cache」の容量が増えていれば
正常に Unity プロジェクトのすべてのアセットのキャッシュが
Unity Accelerator に保存されています
Unity Accelerator の停止と開始
Windows の場合
Windows キー + R を押して「ファイル名を指定して実行」ダイアログを開き、
services.msc
と入力して「OK」を押します
「サービス」ウィンドウが表示されたら一覧から「Unity Accelerator」を探し、
見つかったら選択した状態で「サービスの停止」を押します
これで Unity Accelerator のダッシュボードに接続できなくなれば正常に停止できています
Unity Accelerator を開始したい場合は「サービスの開始」を押します
これで Unity Accelerator のダッシュボードに接続できれば正常に開始できています
Mac OS X の場合
launchctl stop com.unity3d.accelerator
Unity Accelerator を停止したい場合はターミナルで上記のコマンドを実行します
実行後に Unity Accelerator のダッシュボードに接続できなければ正常に停止できています
launchctl start com.unity3d.accelerator
Unity Accelerator を開始したい場合はターミナルで上記のコマンドを実行します
実行後に Unity Accelerator のダッシュボードに接続できれば正常に開始できています
Mac OS X におけるサービス名の補足
https://docs.unity3d.com/Manual/UnityAccelerator.html
公式ドキュメントには Unity Accelerator の停止や開始をする時のサービス名は
com.unity.accelerator
だと記載されていたので
launchctl stop com.unity.accelerator
最初は上記のコマンドで停止しようとしたのですが、停止できなかったため
launchctl list
でサービス名の一覧を表示してみたところ
com.unity3d.accelerator
Unity Accelerator のサービス名がこちらになっていました
launchctl で Unity Accelerator の停止や開始がうまく行かない場合は
サービス名をご確認いただければと思います
すべてのキャッシュの削除
Unity Accelerator に保存されているすべてのキャッシュを削除したい場合は
Unity Accelerator を停止してから
- Windows:
C:\Users\【ユーザー名】\AppData\Local\UnityAccelerator
- Mac OS X:
/Users/【ユーザー名】/Library/Unity/accelerator
上記のフォルダ内の
- cachedb
- cachedbpending
これらのフォルダを削除してから Unity Accelerator を開始します
これですべてのキャッシュの削除ができます
キャッシュ削除してもダッシュボードの表示は更新されない?
すべてのキャッシュを削除してからダッシュボードを確認したところ
「Internet Data Downloaded into cache」の容量が 0B になっていませんでした
この項目は「現在のキャッシュの容量」ではなく
「これまでにキャッシュに保存されたデータの総サイズ」かもしれません(未確認)
まとめ
以上が Unity Accelerator の基本的な使い方になります
他にも
- キャッシュのアップロード・ダウンロードの ON / OFF を設定する
- コマンドラインを使用して特定のキャッシュを削除する
- Unity プロジェクト起動時にコマンドラインで Unity Accelerator の設定を上書きする
などがありますが、機会があればまた別の記事で紹介いたします
参考サイト様
https://macwiki.osdn.jp/wiki/index.php/%E3%82%B3%E3%83%9E%E3%83%B3%E3%83%89/launchctl