Unity Asset Server はUnityに統合された GUI つきのアセットおよびバージョンの管理システムです。チームのメンバーが共同して別々のコンピュータにより同じロケーション,またはリモートでプロジェクト作業を行えるようにすることが主眼になっています。アセットサーバー は,複数のギガバイトのプロジェクトフォルダを取り扱って,大容量のバイナリアセットをハンドリングするために最適化されています。アセットをアップロードするとき, Import Settings およびその他の各アセットのメタデータもともに アセットサーバー にアップロードされます。ファイルのリネームおよび移動はこのシステムの中心であり,優れた対応が出来ます。
Unity Proでのみ利用可能であり,クライアントごとに追加ライセンスが必要です。アセットサーバー クライアントライセンスを購入するには, http://unity3d.com/store のUnityストアを訪れて下さい。
もしソース管理のソフトウェアを以前に使用したことがない場合,どのようなバージョン管理システムであっても最初は少し不親切に感じるかもしれません。ソース管理は全てのアセットのセットを格納することで動作します - メッシュ,テクスチャ,マテリアル,スクリプト,およびその他の全て - を何らかのサーバのデータベースに格納します。そのサーバはUnity実行に使用しているのと同じ,自身のホームコンピュータかもしれません。ローカルネットワーク上の別のコンピュータかもしれません。世界の全く異なる箇所におかれたリモートマシンかもしれません。バーチャルマシンでさえあるかもしれません。オプションはたくさんありますが,サーバの場所はまったく関係がありません。重要なことは何らかネットワーク上でアクセスすることが出来て,ゲームデータを格納してくれるということです。
ある意味において,アセットサーバー はプロジェクトフォルダのバックアップとして機能します。開発している間は,アセットサーバーのコンテンツを直接操作しません。ローカル上でプロジェクトに変更を加え,完了したときにサーバ上のプロジェクトに対して
を行います。これによりローカルプロジェクトおよびアセットサーバー プロジェクトは完全に同一になります。次に,仲間の開発者が変更を行ったとき,アセットサーバーは仲間のプロジェクトと完全に同一になりますが,あなた自身のものとは別になります。ローカルプロジェクトを同期するには
のリクエストを行います。これで,チームメンバーが行った変更はサーバからあなたのローカルプロジェクトにダウンロードされます。これがアセットサーバーを使用した基本的なワークフローです。基本的な機能に加えて,アセットサーバーは過去バージョンのアセットへのロールバック,詳細なファイル比較,異なるスクリプトのマージ,コンフリクトの解消,削除されたアセットの回復などの機能が提供されています。
アセットサーバーはワンタイムのサーバーセットアップおよび各ユーザのクライアント設定が必要です。これを行う方法については [アセットサーバー セットアップのページ](Setting up the Asset Server) を参照下さい。
このガイドの残りで,アセットサーバー をデプロイ,管理,定期的に使用する方法を説明します。
このセクションではアセットサーバーを日常的に使用する上で良くあるタスク,ワークフロー,およびベストプラクティスについて説明します。
もしアセットサーバーにすでに大量の作業が格納されているチームに加わる場合,次の手順により開始して作業を正しく始めるのに最も早い方法です。
アセットサーバーを複数人数のチームで使用するとき,一般的には,作業を始める前にサーバから全てのアセットを更新するのが良く,日の終わりまたは作業終了時に変更をコミットするのが良い習慣です。さらに,何か顕著な進捗があった場合は日の途中であっても変更をコミットすべきです。変更を定期的かつ頻繁に行うことを推奨します。
Server View はアセットサーバーに接続しているウィンドウです。サーバビューを開くには を選択します。
サーバビューは次のタブに分かれています:Overview , Update および Commit 。Overview によりローカルプロジェクトおよびサーバにある最新版の差分を表示し,ローカルの変更をクイックにコミットして,最新のアップデートをダウンロード出来ます。 Update により,リモートのサーバでの最新の変更を表示しローカルプロジェクトにダウンロードできます。Commit により Changeset を作成してサーバにコミットして,他の人がダウンロードできるようにします。
アセットサーバーを使用する前にそこに接続する必要があります。このためには
をクリックして,接続画面を表示します:次に入力する必要があるのは:
をクリックすることで での利用可能なプロジェクトが表示され,どれに接続するか をクリックして選択します。ユーザ名とパスワードはシステム管理者から入手することに留意して下さい。システム管理者が をインストールした際にアカウントを作成しています。
サーバから全てのアップデートをダウンロードするには,
タブから タブを選択しし,最新でコミットされた Changesets の一覧を表示します。これのうちひとつを選択することで,プロジェクトに何が変更されたか,コミットメッセージとともに参照することが出来ます。 をクリックすると,全ての Changeset アップデートのダウンロードが開始されます。ローカルプロジェクトに変更を行っ他後,サーバにその変更を格納する場合,
タブを使用します。これでプロジェクトに対して,前回のアップデート以降に行われた全てのローカルの変更を参照できるようになり,どの変更をサーバにアップロードするかを選択することが出来ます。Changeset に変更を追加するには,Changeset フィールドに手動でドラッグするか,またはコミットメッセージ フィールドの下のボタンを使用するか,いずれかの方法で行います。コミットメッセージを入力することで,バージョン比較を行ったり,後ほど過去バージョンに切り戻す際に,役立つことを忘れないで下さい。両方とも以下で説明します。
複数の人が同じデータの集合で作業をする以上,コンフリクトは必然的に発生します。パニックする必要はまったくないことを頭に入れるべきです。もしコンフリクトが発生している場合, Conflict Resolution (コンフリクト解決)ダイアログがプロジェクト アップデート時に表示されます。
ここで,各々のコンフリクトが通知され,各々のコンフリクトを解決するための異なるオプションが提示されます。どのコンフリクトの場合も,
(サーバからアセットをダウンロードしない), ,または (他の人がアセットに行った変更を無視し,更新を行えばサーバの変更を上書きする形でコミットできる)を個別のコンフリクトで選択できます。さらに, を選択して,スクリプトのような テキスト アセット でローカル バージョン とサーバ バージョンをマージできます。注意: もし変更を破棄することを選択した場合,アセットはサーバの最新版に更新されます(すなわち,自分が作業をしていた際に他の人が行った変更を反映します)。もしアセットを自身の作業前の状態を取得したい場合,チェックアウトしたバージョンに切り戻すべきです。(以下の リビジョン履歴の参照とアセットを切り戻す方法 を参照して下さい。)
もしローカルへの変更をコミットする際にコンフリクトが発生した場合,Unity はコミット変更を拒否してコンフリクトが発生していることを知らせます。コンフリクトを解決するには, Conflict Resolution ダイアログが表示され,前述の段落の説明に従います。
を選択します。ローカルへの変更は自動的には上書きされません。この時点でアセットサーバーはアセットのアップロードされた全てのバージョンをデータベースに保存しているため,いつでもローカルのバージョンを過去のバージョンに切り戻すことが出来ます。プロジェクト全体をリストアするか,単独のファイルをリストアするかいずれかを選択できます。アセットまたはプロジェクトの過去バージョンに切り戻すには,Overview タブを選択して Asset Server Actions の下に表示されている Show History をクリックします。これで全てのコミットの一覧が表示され,いずれかのファイルまたはプロジェクト全体を過去のバージョンにリストアすることが出来ます。
ここでは,バージョン番号および追加されたコメントを各アセットまたはプロジェクトのバージョンとともに参照できます。適切なコメント文が役立つ理由のひとつがこれです。いずれかのアセット選択してその履歴を参照するか
を選択してプロジェクトに対して行われた全ての変更を参照します。必要なリビジョンを探します。リビジョン全体を選択するか,リビジョンの中の特定のアセットを選択出来ます。次に Download Selected File をクリックして,選択したリビジョンのファイルでローカルアセットを置き換えます。 によりプロジェクト全体を選択したリビジョンに切り戻します。切り戻す前に,もしローカル バージョンおよび選択したサーバー バージョンに違いがある場合,それらの変更はローカル バージョンが切り戻しされたときに失われます。
もしローカルのファイルに行われた変更を破棄したいだけの場合,切り戻す必要はありません。Main Asset Serverウィンドウで
を選択することでローカルへの変更を破棄出来ます。これによりサーバにあるプロジェクトの最新バージョンをローカル プロジェクトに即時にダウンロードします。二つの特定のバージョンの違いが気になる場合,それらを明示的に比較することが出来ます。これをするためには
を開き,比較を行いたいリビジョンおよびアセットを選択して, をクリックします。もし二つの異なるアセットのリビジョンを比較する必要がある場合,右クリックしてコンテキストメニューで を選択し,次に比較したいリビジョンを探して選択します。注意: この機能を実行するためにはサポートされている diff/merge ツールがインストールされている必要があります。サポートされているツールは:
ローカル アセットを削除してサーバに削除をコミットしてもアセットは永続的に削除されません。アセットの過去バージョンのいずれであっても
タブの ウィンドウを通してリストア出来ます。アイテムを展開して,アセットを一覧から選択し, を押すと,選択されたセットはダウンロードされ,ローカルプロジェクトに再び追加されます。もし削除が行われたアセットが配置されたフォルダがまだ存在する場合,アセットは元の場所に配置され,そうでない場合はローカルプロジェクトのルートの Assets フォルダに追加されます。
アセットサーバーを使用するにあたって役立つ,ベストプラクティスおよび良くある問題を集めてみました:
psql -U unitysrv -d template1 -c“alter role admin with password ‘MYPASSWORD’”
ProgramFiles\Unity\AssetServer\log
/Library/UnityAssetServer/log
アセットサーバーを効果的に使用するために十分な知識が身についたはずです。自身の作業に取り掛かって,良いワークフローの基本を忘れないで下さい。変更は頻繁にコミットして,何か失うことを怖れる必要はありません。