UnityをSubversionで管理し、複数人で編集する

UnityにはAssetServerというバージョン管理システムが搭載されています。

Unity – Unity Manual

しかし、これを利用するにはチームライセンスが別途必要になるので、
無料版でバージョン管理をしようと思った場合は、別の方向で行う必要がでてきます。

僕はSubversionを使っていたので、今回もSubversionで管理を行ってみます。

ググってみたら公式にすでに方法が書いてありました

Unity – Unity Manual

プロジェクト設定をバージョン管理用に変更する

以下、Unity 4.3での設定方法です。

  1. Edit -> Project Settings -> Editor 開き、Inspector に Editor Settings を開く
  2. Version Control -> Mode を Visible Meta Files に変更
  3. Asset Serialization を Force Text にする(任意)

subversion-editor-setting

2.の設定でそれぞれのアセットの管理が個別に保存されるようになるっぽいです。
3.の設定は任意ですが、やっておくとアセットがテキストで保存されるようになるので、
Diffが確認できるようになったり、Mergeしてくれたりするので便利です。

上記の設定が済んだら、一度プロジェクトを保存し、Unityを終了します。

終了したら

  • Assets/
  • ProjectSettings/

の2つをSubversionの管理下に置きます。

他の

  • Library/
  • obj/
  • Temp/
  • 直下のプロジェクトファイル等

はすべてignoreしても大丈夫です。

あとは上記の変更をコミットします。

別のディレクトリにチェックアウトして、Unityで開けたらOK

編集したデータをコミットする

コミットの際の注意点ですが、

PrefabはApplyで変更を適用後すぐにコミットしても
変化が無かったり、空のPrefabがコミットされてしまったりする らしい。

SVN + Unity でやっておくこと | もうなんか色々と断片化していま

ちゃんと正常なデータをコミットするためには、Unityを一度終了してからコミットするのを徹底すればいいらしい。
なるほど、前回のGGJでprefabからいろいろなComponentが剥がれていたことがあったのはこのせいだったのか・・

チームでの同時作業について

チームでの作業で問題になるのは同一シーンの編集です。
オブジェクトの配置情報や、配置オブジェクトのパラメータ設定などはシーンに保存されるので、
そういったことを複数人で同時作業してしまうと衝突してしまいます。

そのため、シーン編集は1人だけで行うように気をつけるか、
作業者ごとにシーンを分けるなどの工夫をする必要があります。
前回のGGJに出たときは後者の作業者ごとにシーンをわける方法で行ったのですが、
衝突はあまり起こらなかったのですが、
各担当部分を組み合わせての動作確認がちょっとやりにくかった印象でした。
なんかいい方法ないかなーと思っていたところ、下記のものを紹介してもらいました。

Unityプロジェクトを複数人で共同開発する方法の一案 – Radium Software

複数シーンに配置したオブジェクトを重ね合わせて、1つのシーンに統合できるという仕組みらしい。
これを用いれば各担当者ごとでシーンを分けて作業し、
組み合わせた動作チェックは統合したシーンを見るだけですぐ確認できそうです。
いやあ・・こんな便利な手法があったんですね。
次の複数人での作業時はこの方法で挑んでみようと思います。


コメントを残す

メールアドレスが公開されることはありません。