Version: 5.4
旧トピック
Asset Server のセットアップ

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

Unity アセットサーバー概要

(注)現在では、Asset Server は旧製品となります。Unity プロジェクトのバージョン管理の観点から、Plastic SCMPerforce の使用をお勧めします。

Plastic SCM の統合 Perforce の統合

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

チームライセンスユーザーのみ利用可能です。チームライセンスを購入するには、http://unity3d.com/store の Unity ストアにアクセスしてください。

Asset Server は古い製品で、もうメンテナンスされない事に注意してください。

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

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

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

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

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

Asset Server のセットアップ

アセットサーバーはワンタイムのサーバーセットアップおよび各ユーザーのクライアント設定が必要です。これを行う方法については アセットサーバーセットアップのページ を参照してください。

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

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

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

ご利用の手引き

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

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

ワークフローの基礎

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

サーバービューを理解する

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

Overview タブ
Overview タブ

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

サーバーへの接続

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

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

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

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

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

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

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

Update タブ
Update タブ

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

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

Commit タブ
Commit タブ

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

競合の解決

複数の人が同じデータの集合で作業をする以上、競合は必然的に発生します。あわてる必要はありません。競合が発生したら、Conflict Resolution (競合の解決) ダイアログが、プロジェクト更新時に提示されます。

Conflict Resolution 画面
Conflict Resolution 画面

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

注意 Discard My Changes を選択すると、アセットはサーバーの最新バージョンに更新されます (すなわち、作業をしている間に、他の人が加えた変更が反映されます)。アセットを作業前の状態に戻したい場合は、チェックアウトした時点のバージョンに戻すべきです (後述の、リビジョン履歴の参照とアセットを元に戻す方法を参照してください)。

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

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

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

History ダイアログ
History ダイアログ

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

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

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

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

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

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

削除したアセットの回復

ローカルアセットを削除してサーバーにその削除をコミットしても、実際はアセットは永続的に削除されているわけではありません。アセットの過去バージョンのように、Overview タブの History ウィンドウを通して復元できます。

History ダイアログ
History ダイアログ

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

有効な使用法とよくある問題

Asset Server を使用するにあたって役立つ、有効な使用法とよくある問題を集めてみました。

  1. とにかくバックアップ
    • 常にデータベースのバックアップを行ってください。これは非常に重要な事です。不運な場合は、ハードウェアの問題、ウィルス、ユーザーエラー等の原因で、すべての作業データをすべて失う可能性があります。このためバックアップシステムを用意してください。バックアップシステムを設定に関して、多くのリソースを Web で見つけることができます。
  2. マシンのシャットダウン前にサーバーを停止する
    • これにより PostgreSQL (Asset Server) のログで “fast shutdowns” が生成されることを回避できます。もしこれが発生すると、Asset Server は不適切なシャットダウンに伴うリカバリを行う必要があります。これは大規模プロジェクトでコミットがたくさんある場合、とても長い時間かかる可能性があります。
  3. コンソールからパスワードをリセットする
    • シェル、コンソール、またはコマンドラインから次のコマンドを使って直接パスワードをリセットできます。

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

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

Asset Server のトレーニングはこれで完了

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

旧トピック
Asset Server のセットアップ