Git から Unity Version Control への移行

コミットが皆さんのスタジオの対立の原因となっていませんか?アーティストとプログラマーの両方にとって完全に最適化されたワークフローにアップグレードすることで、追加設定なしでサイズの大きなファイルを処理できるようになります。アドオンは不要です。

プロジェクトの途中で Bitbucket から Unity のバージョン管理ソリューションに移行し、コミット数を 300% 増やした Sycoforge の事例をご紹介します。 ケーススタディをダウンロード

Git ユーザーが Unity Version Control に切り替えるべき理由

Git は、オープンソースで柔軟性が高く、無料で使用できることから人気のバージョン管理ソリューション(VCS)ですが、現代テクノロジーに精通していないユーザーにとっては難しく感じることもあります。アーティストが問題に直面すると、その解決にプログラマーが必要になります。アーティストが使っているツールには対応せず、ゲーム開発につきもののサイズの大きなバイナリファイルの重さに負けてしまいます。

『Return to Nangrim』キーアート

Sycoforge 制作『Return to Nangrim』

Git ユーザーが Unity Version Control から得られるメリット

Unity Version Control は、ゲーム開発向けに構築されています。Git からアップグレードすることで得られるものは、次のとおりです。

Plastic SCM 大量のファイル
サイズの大きなリポジトリやバイナリファイルでも高速に処理する

Unity Version Control は、5 TB を超えるリポジトリにも対応し、他のソリューションよりも高速に更新とチェックインを処理します。

Unity エンジンでのアーティストとのコラボレーション
アーティストとのコラボレーションを改善する

アーティストは、ファイルをロックする機能を備えた使いやすいワークフローである Gluon を介して、Unity Version Control を独立して使用できます。プログラマーは、完全なブランチング機能とマージ機能を備えた標準のワークフローを引き続き使用できます。

DevOps
集中型または分散型で作業する

VCS を選択することで、集中型と分散型のどちらで作業するかが決まることがよくあります。Unity Version Control は両方に対応しており、Git スタイルのワークフローのスピードとパワー、Perforce のようなスケーラビリティが得られます。

Unity エディター内のメンテナンス
柔軟性を高めてメンテナンスをシンプルにする

Unity Version Control は追加設定なしで複数のワークフローやサイズの大きなファイルに対応するため、冗長なシステムやアドオンを保持する必要はありません。ツールチェインの無駄を省き、高いパフォーマンスを発揮できるよう維持しましょう。

主な機能

Unity の DevOps ソリューションは、プログラマーにとって幅広い機能が備わっていながらも、アーティストにとって合理的に保たれています。何か足りていないものがある場合は、Unity の DevOps ロードマップでご確認ください。

リファクタリングの分析 - Git ユーザー

時間を節約してタスク切り替えを最小限に抑える

Unity のコードアウェアなマージ技術である SemanticMerge を使用すると、移動されたコードを追跡し、関連する変更にのみ集中できるようになります。構文を解析することで、通常であれば手動でのマージが必要になる 16% から 30% のコードのマージを自動化し、ワークフローの邪魔になるマージの競合を大幅に減らします。

Unity Version Control はリファクタリングを解析し、メソッドなどのコードの一部が(複数のファイル間を含めて)移動されているかどうかを評価します。これにより、最も重要な変更にのみ注目してレビューすることができます。C#、Java、VB.NET などに対応します。

Unity と Git バージョン管理

Unity Version Control を Git クライアントとして使用する

Unity Version Control の GitSync を使用すると、Version Control と Git 間で双方向同期を実行できます。Unity Version Control は Git のネットワークプロトコルと通信して、リモート Git サーバーとの間でパッケージとマージのプッシュ/プルを行います。これにより、Version Control GUI を Git クライアントとして使用できます。Unity Version Control と Git は構造が少し似ているため、その間ですべての変更セット、ブランチ、マージを交換できます。

詳細を見る
Unity での高速インポート/エクスポート

高速なインポートとエクスポート

Unity Version Control には fast-import コマンドと fast-export コマンドが実装されています。各コマンドは、Git 側の対応するコマンドと完全に互換性があります。これらのコマンドは、Git から Unity Version Control にプロジェクトをインポートする際に使用されます。また、Version Control から移行する必要がある場合に、それを安全に行う方法としても使用されます。日常業務においては、GitSync を使用するほうが簡単です。

Plastic SCM DevOps ライフサイクル

Git エコシステムを活用する

Git のエコシステム内の任意のツールを、そのツールのネイティブの Git 機能を使用して、Unity Version Control にすぐに接続できます。これにより、Version Control を使用しているチームが、Git 用に特別に開発されたすべての DevOps、CI、プロジェクト管理の統合のメリットを享受できます。

GitServer は、サーバー側の GitSync に対応するものです。Git のプロトコル(Git と HTTP に対応)を使用して、Unity Version Control がリポジトリに対応できるようにすることで、Git との相互運用性ループを閉じます。

詳細を見る

さまざまなゲームでの活用事例

Goodbye Volcano High

作業者自身がオーナーである協同組合型のスタジオがどのようにして制作プロセスにてアーティストとエンジニアの足並みを揃えさせているのでしょうか?Plastic SCM(現在の Unity Version Control)を活用してコラボレーションを強化した KO_OP の事例をご覧ください。

Return to Nangrim

Sycoforge が Unity のツールをどのように活用して拡大するプロジェクトのスコープを管理し、ゲーム開発のスピードアップとイテレーションにプレイヤーのフィードバックを生かしているかをご覧ください。

Subnautica

Unknown Worlds が、『Subnautica』を制作するために Unity と Plastic SCM(現在の Unity Version Control)を選択した理由をご紹介します。

プロジェクトに Unity Version Control を設定する

すぐにでも使用を始めたい方はこちらの手順をお役立てください。わずか数分でプロジェクトに Unity Version Control を設定できます。

よくあるご質問

Unity Version Control を使用して分散型で作業することはできますか?

Unity Version Control は DVCS でもあります。そのため、まずコミット(チェックイン)を行ってから、変更をリモートリポジトリにプッシュするという、同じワークフローを使用します。Version Control では、必要に応じて集中型で作業することもできます。SVN のように、中間クローンなしで直接チェックインを実行することも可能です。

プログラマーにとってのお気に入りは DVCS でしょうが、アーティストやデザイナーにはおそらく集中型が好まれます。

 

機能ブランチを作成し、ブランチを切り替えることはできますか?

はい。Unity Version Control でのあらゆる操作は、GUI から視覚的に実行できます。ブランチングやマージに関わるすべての操作は、ブランチエクスプローラーを使用して行います。

リモートリポジトリに対してブランチをプルおよびプッシュすることはできますか?

はい。部分レプリカを作成することもできます。つまり、あるブランチをその親やマージ元なしでプルし、変更を加えてプッシュバックできるということです。

リポジトリのクローンを作成する必要はありますか?

Unity Version Control で複製されたリポジトリで作業を開始する際に、完全なリポジトリの「クローンを作成する」必要はありません。部分レプリカと呼ばれるものを実行し、そのリポジトリで作業を行い、新しい変更を加え、戻すだけです。このほうがはるかに高速です。

これは、深度が制限されているものの、プッシュバック可能なシャロークローンに相当します。

マージ処理は Git と比較してどのような感じですか?

Unity Version Control のマージ機能の方がはるかに優れています。Version Control のマージエンジンは、Git では対応できない移動や名前の変更も処理できます。Unity Version Control には、独自の差分ツールやマージツールも用意されています。

Unity Version Control はサイズの大きなファイルをどのように処理できますか?

Unity Version Control は膨大なサイズのファイルも処理できます。RAM に収まるサイズが上限ではありません。Version Control は膨大なサイズのリポジトリにも対応します。

Unity のバージョン管理に「リモート」はありますか?

「リモート」は Unity Version Control には存在しません。必要なブランチを必要なリポジトリに対してプッシュおよびプルするだけです。最初にリモートを定義する必要はありません。

Unity のバージョン管理にサブモジュールはありますか?

Unity Version Control のサブモジュールは Xlink と呼ばれます。これは、サブモジュールの大幅に強化かつ簡略化されたバージョンです。Xlink を作成するのは簡単で、GUI に完全に対応しており、サブモジュールには更新という手間のかかるプロセスがありますが、Xlink にはありません。参照を手動で管理できます。Xlink が設定されたディレクトリの下のブランチは自動的に作成されるため、複数のリポジトリが存在するシナリオでの機能ブランチの作成が非常に簡単になります。

Unity Version Control は Git よりも優れていますか?

Git ベースのバージョン管理は幅広い機能を備えており、コミュニティのサポートを受けることができます。一方、Unity Version Control はさまざまなワークフローに柔軟に対応し、追加設定なしでサイズの大きなファイルを処理できます。ある組織で機能するものが別の組織でも機能するとは限りません。自分の組織にとって何がベストかを評価するヒントについては、こちらのブログで確認してください。

Unity Version Control は Git ベースですか?

Unity Version Control は Git ではありませんが、Git ベースのシステムと同様に分散型バージョン管理(DVCS)が可能です。Unity Version Control には Git のすべての強みに加え、サイズの大きなファイルのサポート、一貫性のある GUI、ACL ベースのパーミッション、膨大なサイズのリポジトリの処理、強力なマージ機能、部分レプリカ、セマンティック差分などが備わっています。

弊社のウェブサイトは最善のユーザー体験をお届けするためにクッキーを使用しています。詳細については、クッキーポリシーのページをご覧ください。

OK