FoRのブログ

3DCGとかUnityとかのなんやかんや

なんもわからん状態からのUnityキャッシュサーバー導入

Unityでたくさんの画像Asset等含まれるプロジェクトがある。
プラットフォームを切り替えると圧縮し直しがかかってHold on…の時間がすごいかかる。困る。
そんな事情の対策のための機能CacheServerをローカルでいいので導入したい。

docs.unity3d.com

しかしマニュアルも書かれてることが若干古く、ググってもUnity5系時代の記事やUbuntuが絡んできたりって記事ばかりでなんもわからん。
シンプルに纏められてる情報が見つからなかったので、ミニマムな導入を忘備録。

ちなみに環境は

・Windows10

・Unity2018.2.18f1

なんか間違ったこと・無駄なフローやってたらゴメン

 

  • エディター側での設定

Preference>CacheServerのCacheServerModeをRemoteにする
IPAddress欄は localhost:8126

f:id:for13:20190911232852j:plain

この段階ではCheckConnection押しても繋がりません。

Localにすればいいのかと思ったけどサーバーにつながらないってエラーが出て悩まされた。

f:id:for13:20190911232934p:plain

解せぬ。

 

  • キャッシュサーバー のインストール

ドキュメントには「Unityの ダウンロード アーカイブ ページを開きます」…とあるけど最終的にGitHubに行き着く

github.com


ここのインストールの「npm install ~」ってコマンド使うのにNode.jsが要るらしいのでインストール。
終わったらコマンドプロンプト立ち上げて

 npm install unity-cache-server -g

のコマンドをコピペして実行。このコマンドだけでインストール終わるみたいなんだけど、どこから落としてきてるんだろう…

 

  • キャッシュサーバーの起動

C:\Users\〇〇\AppData\Roaming\npm
にインストールされた【unity-cache-server.cmd】をダブルクリックでサーバー起動。

f:id:for13:20190911233407j:plain

ここの4桁がAddress欄にセットしたポート番号
ここの辺もドキュメントに書かれてない。「オペレーティングシステムに合ったコマンドスクリプトを実行します」ってどうすんねんっていう。

Unityに戻ってPreference>CacheServerのCheckConnectionを押すとConnectionSuccessfulになるはず。
(たまに何故か外れるけど普通に機能してたりする。)

  • 実際にやってみた

Assetフォルダが9GB、テクスチャ3000枚近いProjectでテスト
初回SwitchPlatformでキャッシュ作成

iOSAndroid  1時間半
Android>iOS   2時間
iOSWindows  30分

 

もう一度SwitchPlatform
Win>iOS   2分
iOSAndroid 3分
AndroidiOS 2分

切り替え時間にすごい差出た。やったぜ。

  • 疑問とか

このキャッシュ、どこに保存されてるんだろう?

このように書いてみるとなんてことない作業なのだけど、色々調べ回る羽目になったのはキャッシュの場所を任意のディレクトリにしようとしたため。

CacheServerModeをローカルにしてCustomCacheLocation設定したら良いかな?

サーバー側でコマンドをなんやかんやして保存場所を決めるのかな?

とやっててドツボにはまりました。今の自分の知識ではおっつかない。

追々はNASにCacheServer立てれると良さげかも。

そのうちがんばる。