アセットストア FAQ
Asset Server のセットアップ

アセットサーバー (チームライセンス のみ)

Unity アセットサーバー 概要

Unity Asset Server はUnityに統合された GUI つきのアセットおよびバージョンの管理システムです。チームのメンバーが共同して別々のコンピュータにより同じロケーション,またはリモートでプロジェクト作業を行えるようにすることが主眼になっています。アセットサーバー は,複数のギガバイトのプロジェクトフォルダを取り扱って,大容量のバイナリアセットをハンドリングするために最適化されています。アセットをアップロードするとき, Import Settings およびその他の各アセットのメタデータもともに アセットサーバー にアップロードされます。ファイルのリネームおよび移動はこのシステムの中心であり,優れた対応が出来ます。

Unity Proでのみ利用可能であり,クライアントごとに追加ライセンスが必要です。アセットサーバー クライアントライセンスを購入するには, http://unity3d.com/store のUnityストアを訪れて下さい。

ソース管理はまだ初心者?

もしソース管理のソフトウェアを以前に使用したことがない場合,どのようなバージョン管理システムであっても最初は少し不親切に感じるかもしれません。ソース管理は全てのアセットのセットを格納することで動作します - メッシュ,テクスチャ,マテリアル,スクリプト,およびその他の全て - を何らかのサーバのデータベースに格納します。そのサーバはUnity実行に使用しているのと同じ,自身のホームコンピュータかもしれません。ローカルネットワーク上の別のコンピュータかもしれません。世界の全く異なる箇所におかれたリモートマシンかもしれません。バーチャルマシンでさえあるかもしれません。オプションはたくさんありますが,サーバの場所はまったく関係がありません。重要なことは何らかネットワーク上でアクセスすることが出来て,ゲームデータを格納してくれるということです。

ある意味において,アセットサーバー はプロジェクトフォルダのバックアップとして機能します。開発している間は,アセットサーバーのコンテンツを直接操作しません。ローカル上でプロジェクトに変更を加え,完了したときにサーバ上のプロジェクトに対して Commit Changes を行います。これによりローカルプロジェクトおよびアセットサーバー プロジェクトは完全に同一になります。

次に,仲間の開発者が変更を行ったとき,アセットサーバーは仲間のプロジェクトと完全に同一になりますが,あなた自身のものとは別になります。ローカルプロジェクトを同期するには Update from Server のリクエストを行います。これで,チームメンバーが行った変更はサーバからあなたのローカルプロジェクトにダウンロードされます。

これがアセットサーバーを使用した基本的なワークフローです。基本的な機能に加えて,アセットサーバーは過去バージョンのアセットへのロールバック,詳細なファイル比較,異なるスクリプトのマージ,コンフリクトの解消,削除されたアセットの回復などの機能が提供されています。

アセットサーバーのセットアップ

アセットサーバーはワンタイムのサーバーセットアップおよび各ユーザのクライアント設定が必要です。これを行う方法については [アセットサーバー セットアップのページ](Setting up the Asset Server) を参照下さい。

このガイドの残りで,アセットサーバー をデプロイ,管理,定期的に使用する方法を説明します。

アセットサーバーの日常的な使用方法

このセクションではアセットサーバーを日常的に使用する上で良くあるタスク,ワークフロー,およびベストプラクティスについて説明します。

はじめに

もしアセットサーバーにすでに大量の作業が格納されているチームに加わる場合,次の手順により開始して作業を正しく始めるのに最も早い方法です。

  1. 新規に空のプロジェクトを,パッケージは全てインポートせずに作成
  2. メニューから Edit->Project Settings->Editor を選択して,Asset Server を version control mode として選択
  3. メニューから Window->Version を選択
  4. Connection ボタンをクリック
  5. ユーザ名とパスワードを入力(アセットサーバー管理者により提供されたもの)
  6. Show Projects をクリックし,希望のプロジェクトを選択
  7. Connect をクリック
  8. Update タブをクリック
  9. Update ボタンをクリック
  10. コンフリクト発生時は,ローカルバージョンを全て破棄
  11. アップデートが完了するのを待機
  12. 準備完了

ワークフローの基礎

アセットサーバーを複数人数のチームで使用するとき,一般的には,作業を始める前にサーバから全てのアセットを更新するのが良く,日の終わりまたは作業終了時に変更をコミットするのが良い習慣です。さらに,何か顕著な進捗があった場合は日の途中であっても変更をコミットすべきです。変更を定期的かつ頻繁に行うことを推奨します。

サーバビューを理解する

Server View はアセットサーバーに接続しているウィンドウです。サーバビューを開くには Window->Version Control を選択します。

The <span class="doc-keyword">Overview</span> タブ
The Overview タブ

サーバビューは次のタブに分かれています:Overview , Update および CommitOverview によりローカルプロジェクトおよびサーバにある最新版の差分を表示し,ローカルの変更をクイックにコミットして,最新のアップデートをダウンロード出来ます。 Update により,リモートのサーバでの最新の変更を表示しローカルプロジェクトにダウンロードできます。Commit により Changeset を作成してサーバにコミットして,他の人がダウンロードできるようにします。

サーバへの接続

アセットサーバーを使用する前にそこに接続する必要があります。このためには Connection をクリックして,接続画面を表示します:

アセットサーバー接続画面
アセットサーバー接続画面

次に入力する必要があるのは:

  1. サーバアドレス
  2. ユーザ名
  3. パスワード

Show projects をクリックすることで Asset Server での利用可能なプロジェクトが表示され,どれに接続するか Connect をクリックして選択します。ユーザ名とパスワードはシステム管理者から入手することに留意して下さい。システム管理者が Asset Server をインストールした際にアカウントを作成しています。

サーバからのアップデート

サーバから全てのアップデートをダウンロードするには,Overview タブから Update タブを選択しし,最新でコミットされた Changesets の一覧を表示します。これのうちひとつを選択することで,プロジェクトに何が変更されたか,コミットメッセージとともに参照することが出来ます。 Update をクリックすると,全ての Changeset アップデートのダウンロードが開始されます。

The <span class="doc-keyword">Update</span> タブ
The Update タブ

サーバに変更をコミットする

ローカルプロジェクトに変更を行っ他後,サーバにその変更を格納する場合, Commit タブを使用します。

The <span class="doc-keyword">Commit</span> タブ
The Commit タブ

これでプロジェクトに対して,前回のアップデート以降に行われた全てのローカルの変更を参照できるようになり,どの変更をサーバにアップロードするかを選択することが出来ます。Changeset に変更を追加するには,Changeset フィールドに手動でドラッグするか,またはコミットメッセージ フィールドの下のボタンを使用するか,いずれかの方法で行います。コミットメッセージを入力することで,バージョン比較を行ったり,後ほど過去バージョンに切り戻す際に,役立つことを忘れないで下さい。両方とも以下で説明します。

コンフリクトの解決

複数の人が同じデータの集合で作業をする以上,コンフリクトは必然的に発生します。パニックする必要はまったくないことを頭に入れるべきです。もしコンフリクトが発生している場合, Conflict Resolution (コンフリクト解決)ダイアログがプロジェクト アップデート時に表示されます。

The <span class="doc-keyword">Conflict Resolution</span> 画面
The Conflict Resolution 画面

ここで,各々のコンフリクトが通知され,各々のコンフリクトを解決するための異なるオプションが提示されます。どのコンフリクトの場合も,Skip Asset (サーバからアセットをダウンロードしない),Discard My Changes (アセットのローカルバージョンを完全に上書きする),または Ignore Server Changes(他の人がアセットに行った変更を無視し,更新を行えばサーバの変更を上書きする形でコミットできる)を個別のコンフリクトで選択できます。さらに, Merge を選択して,スクリプトのような テキスト アセット でローカル バージョン とサーバ バージョンをマージできます。

注意: もし変更を破棄することを選択した場合,アセットはサーバの最新版に更新されます(すなわち,自分が作業をしていた際に他の人が行った変更を反映します)。もしアセットを自身の作業前の状態を取得したい場合,チェックアウトしたバージョンに切り戻すべきです。(以下の リビジョン履歴の参照とアセットを切り戻す方法 を参照して下さい。)

もしローカルへの変更をコミットする際にコンフリクトが発生した場合,Unity はコミット変更を拒否してコンフリクトが発生していることを知らせます。コンフリクトを解決するには, Update を選択します。ローカルへの変更は自動的には上書きされません。この時点で Conflict Resolution ダイアログが表示され,前述の段落の説明に従います。

リビジョン履歴の参照とアセットを切り戻す方法

アセットサーバーはアセットのアップロードされた全てのバージョンをデータベースに保存しているため,いつでもローカルのバージョンを過去のバージョンに切り戻すことが出来ます。プロジェクト全体をリストアするか,単独のファイルをリストアするかいずれかを選択できます。アセットまたはプロジェクトの過去バージョンに切り戻すには,Overview タブを選択して Asset Server Actions の下に表示されている Show History をクリックします。これで全てのコミットの一覧が表示され,いずれかのファイルまたはプロジェクト全体を過去のバージョンにリストアすることが出来ます。

<span class="doc-keyword">History</span> ダイアログ
History ダイアログ

ここでは,バージョン番号および追加されたコメントを各アセットまたはプロジェクトのバージョンとともに参照できます。適切なコメント文が役立つ理由のひとつがこれです。いずれかのアセット選択してその履歴を参照するか Entire Project を選択してプロジェクトに対して行われた全ての変更を参照します。必要なリビジョンを探します。リビジョン全体を選択するか,リビジョンの中の特定のアセットを選択出来ます。次に Download Selected File をクリックして,選択したリビジョンのファイルでローカルアセットを置き換えます。 Revert All Project によりプロジェクト全体を選択したリビジョンに切り戻します。

切り戻す前に,もしローカル バージョンおよび選択したサーバー バージョンに違いがある場合,それらの変更はローカル バージョンが切り戻しされたときに失われます。

もしローカルのファイルに行われた変更を破棄したいだけの場合,切り戻す必要はありません。Main Asset Serverウィンドウで Discard Changes を選択することでローカルへの変更を破棄出来ます。これによりサーバにあるプロジェクトの最新バージョンをローカル プロジェクトに即時にダウンロードします。

アセット バージョンの比較

二つの特定のバージョンの違いが気になる場合,それらを明示的に比較することが出来ます。これをするためには History を開き,比較を行いたいリビジョンおよびアセットを選択して, Compare to Local Version をクリックします。もし二つの異なるアセットのリビジョンを比較する必要がある場合,右クリックしてコンテキストメニューで Compare to Another Revision を選択し,次に比較したいリビジョンを探して選択します。

注意: この機能を実行するためにはサポートされている diff/merge ツールがインストールされている必要があります。サポートされているツールは:

削除したアセットの回復

ローカル アセットを削除してサーバに削除をコミットしてもアセットは永続的に削除されません。アセットの過去バージョンのいずれであっても Overview タブの History ウィンドウを通してリストア出来ます。

The <span class="doc-keyword">History</span> ダイアログ
The History ダイアログ

Deleted Assets アイテムを展開して,アセットを一覧から選択し, Recover を押すと,選択されたセットはダウンロードされ,ローカルプロジェクトに再び追加されます。もし削除が行われたアセットが配置されたフォルダがまだ存在する場合,アセットは元の場所に配置され,そうでない場合はローカルプロジェクトのルートの Assets フォルダに追加されます。

ベストプラクティスおよび良くある問題

アセットサーバーを使用するにあたって役立つ,ベストプラクティスおよび良くある問題を集めてみました:

  1. とにかくバックアップ
    • データベースのバックアップを保持して下さい。これを行うことは非常に重要です。残念なケースでハードウェアの問題,ウィルス,ユーザエラー,等々といった場合に作業を全て失う可能性があります。このためバックアップシステムを用意して下さい。バックアップシステムをセットするためのウェブ上の情報はたくさんあります。
  2. マシンのシャットダウン前にサーバを停止する
    • これにより PostgreSQL (アセットサーバー) のログで “早いシャットダウン” が生成されることを回避できます。もしこれが発生した場合,アセットサーバーは不適切なシャットダウンに伴うリカバリを行う必要があります。これは大規模プロジェクトでコミットがたくさんある場合,長い時間かかる可能性があります。
  3. コンソールからパスワードをリセットする
    • シェル,コンソール,またはコマンドラインから次のコマンドにより直接パスワードをリセット出来ます:

    psql -U unitysrv -d template1 -c“alter role admin with password ‘MYPASSWORD’”

  4. アセットサーバーに接続できない
    • パスワードの有効期限が切れたかもしれません。パスワードをリセットしてみて下さい。
    • さらにユーザ名は大文字小文字を区別します: “Admin” != “admin” 。大文字または小文字が正しいことを確認して下さい。
    • サーバが実行中であることを確認して下さい:
      • OS X または Linux ではターミナル上で次のように入力出来ます: ps -aux
      • Windows ではタスクマネージャを使用出来ます。
    • アセットサーバーがネットワーク上でひとつ以上のコンピュータないかを確認します。間違った方に接続している可能性があります。
  5. アセットサーバーが 64ビット Linux で動作しない
    • アセットサーバーは必要パッケージの 32 ビット版をインストールすれば 64 ビット Linux が正しく動作します。これを行うには “dpkg -i –force-architecture” を使用します。
  6. アセットサーバーログを使用してより多くの情報を取得します
    • Windows:
      • ProgramFiles\Unity\AssetServer\log
    • OS X:
      • /Library/UnityAssetServer/log
  7. Windows XPで「アプリケーションを正しく初期化できませんでした (0xc0000135)」
    • この場合はWindos XP SP2が必須で,.NET 2.0をインストールする必要があります。

アセットサーバーのトレーニングはこれで完了

アセットサーバーを効果的に使用するために十分な知識が身についたはずです。自身の作業に取り掛かって,良いワークフローの基本を忘れないで下さい。変更は頻繁にコミットして,何か失うことを怖れる必要はありません。

アセットストア FAQ
Asset Server のセットアップ