Universal Windows 10 アプリケーション:はじめに
Asset Server の設定

Asset Server (チームライセンス)

注意: 古いドキュメント
Unity 2017.1 以降、Asset Server のサポートは廃止される予定です。Unity プロジェクトのバージョン管理には Plastic SCM か Perforce の使用を推奨します。2017–06–30

Unity Asset Server 概要

Plastic SCM の統合 Perforce の統合

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

チームライセンスユーザーのみ利用可能です。チームライセンスを購入するには (Unity Pro の一部としての使用以外の場合)、http://unity3d.com/store の Unity ストアにアクセスしてください。

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

ソース管理に不慣れな場合

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

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

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

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

Asset Server の設定

Asset Server は 1 回限りのサーバー設定と各ユーザーのクライアント設定が必要です。これを行う方法については Asset Server の設定 を参照してください。

このページの残りで、Asset Server をデプロイ、管理、日常的に使用する方法を説明します。

Asset Server の日常的な使用方法

このセクションでは Asset Server を日常的に使用する上で良くあるタスク、ワークフロー、上手な使い方について説明します。

準備

Asset Server にすでに大量の作業データが格納されているチームに加わる場合、準備を開始し正しく運用するには、以下がもっとも早い方法です。

  1. パッケージをインポートせずに、新規に空のプロジェクトを作成します。
  2. Go to Edit > Project Settings > Editor and select Asset Server as the version control mode
  3. メニューバーから Window > Asset Management > Version Control を選択します。
  4. Connection ボタンをクリックします。
  5. Username と Password(Asset Server 管理者により提供されたもの) を入力します。
  6. Show Projects をクリックし、希望のプロジェクトを選択します。
  7. Connect をクリックします。
  8. Update タブをクリックします。
  9. Update ボタンをクリックします。
  10. 競合が発生した場合は、ローカルバージョンをすべて破棄します。
  11. 更新が完了するのを待機します。
  12. 準備完了

ワークフローの基礎

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

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

Server (サーバー) ビュー は接続しているアセットサーバーのウィンドウです。 Window >Asset Management > Version Control の順に選択すると、サーバービューを開くことができます。

Overview タブ
Overview タブ

サーバービューは OverviewUpdateCommit の 3 つのタブに分かれています。Overview は自身のローカルプロジェクトとサーバーにある最新版の差分を表示し、ローカルの変更を素早くコミットしたり、最新のアップデートをダウンロードできます。Update は、リモートのサーバー上の最新の変更を表示し、それらをローカルプロジェクトにダウンロードできます。Commit は、他の人がダウンロードできるように Changeset を作成してサーバーにコミットできます。

サーバーへの接続

Asset Server を使用する前にそこに接続する必要があります。このためには Connection ボタンをクリックして、Connection 画面を表示します。

Asset Server Connection 画面
Asset Server Connection 画面

以下は入力する必要があるフィールドです。

  1. Server アドレス
  2. Username
  3. Password

Show Projects をクリックすると Asset Server での利用可能なプロジェクトが表示されます。どのプロジェクトに接続するかを選択し、Connect をクリックします。Username と Password はシステム管理者から入手します。システム管理者が 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

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

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




Universal Windows 10 アプリケーション:はじめに
Asset Server の設定