バージョン管理システムPlastic SCMを使ってみた

ゲーム開発に適したバージョン管理システムであるPlastic SCMを利用してみました
2022.05.26

今回はゲーム開発に適したバージョン管理システムであるPlastic SCMを使ってみました。Plastic SCMを利用することで、手軽にバージョン管理の仕組みをプロジェクトに導入できます。

今回はPlastic SCMのプロジェクトへの導入からUnrealEngine4(以降、UE4と表記)向けプロジェクトでバージョン管理まで行ってみました。

Plastic SCMとは

Plastic SCMはゲームのプロジェクト管理に特化したバージョン管理システムです。2020年にUnity社に買収されたため、Unityでは標準的に利用できるSCMとなっています。また、UnrealEngineもサポート対象であり4.11以降とUnrealEngine5をサポートしています(プラグインもgithubにて配布されています)。そのため、いずれのゲームエンジンでも利用できるSCMとなります。

Plastic SCMの特徴としては、次の点があります。

ユーザに応じたGUIツールをサポート

Plastic SCMは、ユーザが開発者もしくはアーティストによって表示するUIが切り替えられます。

Plastic SCMは、アーティスト向けのシンプルなUIを提供、開発者には開発に必要な様々な機能を表示といったように、利用者に応じてUIを切り替えられるので、よりわかりやすいUIとなっています。

同じリポジトリを開発者向けの設定とアーティスト向けの設定で、それぞれで表示してみました。

まず、開発者向けのUIです。

そしてUIはアーティスト向けです。開発者向けUIに比べて表示されている機能がシンプルとなってます。

柔軟なファイル管理手法をサポート

バージョン管理対象となっているファイル管理手法がCentralized(一元型)、Distributed(分散型)のいずれの方法が選べるようになっています。

Centralized(一元型)とはSubversionのように中央のサーバにあるファイルに対してバージョン管理を行う仕組みを指します。Distributed(分散型)は、gitのようにバージョン管理しているリポジトリが分散して管理できる仕組みです。

PlasticSCMは目的などに応じて一元型、分散型を使い分けて運用できる仕組みとなっています。

小規模開発~大規模開発までサポート

Plastic SCMには、CloudバージョンとEnterpriseバージョンの二つがあります。Cloudバージョンは、Plastic SCMサーバ(PlasticCloudと呼ばれる)は既に用意されているものを使用するため、UnrealEngineなどのエディタやプロジェクトに対してPlastic SCMのクライアントを導入するだけで利用できるようになります。主に小~中規模のプロジェクトに向いているでしょう。

もう一方、Enterpriseバージョンもあります。こちらはPlastic SCMのサーバを自分たちで構築、運用していく仕組みです。もちろん、Plastic SCMのクライアントもプロジェクトに導入しなければなりません。運用の手間はかかりますが、その分柔軟な対応が可能となります。こちらは大規模なプロジェクトに向いているでしょう。

利用環境

Plastic SCMでファイルのバージョン管理を行うにあたり、以下の環境で利用しました。

  • Windows 10
  • UnrealEngine 4.27.2
  • PlasticSCM Cloudバージョン

ユーザ登録

最初にユーザー登録を行います。 Unityアカウントがあればすぐにログイン可能です。無い場合はあらかじめ作っておくとよいでしょう。

Cloudバージョンは3名のユーザー、ストレージ容量5GBまでを無償で利用できます。お試しで利用する分には問題ないでしょう。ユーザーやファイル容量の追加をする場合は追加料金が発生します。

ユーザ登録を進めていくとPlastic Cloud(サーバ)の設定が必要な箇所があります。データセンターは世界にありますがJapanも選択肢にありますのでそれを選びます。またファイルを管理するためのOrganization nameも定義します。これでサーバの設定が完了しました。

Plastic SCMクライアントをインストール

次にWindowsPCにPlastic SCMクライアントをインストールします。Plastic SCMはUnrealEditorにて標準でサポートされてますが、実際に使用する際はcmというPlastic SCMのクライアントのコマンドが利用できることが必須となります。そのため事前にPlastic SCMのクライアントをインストールする必要があります。

ではクライアントのインストールを行っていきます。Plastic SCMのダウンロードへアクセスします。その後、Cloud EditionのDownloadボタンを押します。

PlasticSCM-11.xxx.xxx.xxx-windows-cloud-installer.exeといったファイルがダウンロードされるので、インストーラを起動しインストールを進めます。

インストーラ中、Plastic SCMへのサインインが要求されます。そのため、先ほど作成したPlastic SCMのアカウントでログインします。ログインを行うことでPlasticCloudの設定とクライアントの設定が紐付けされます。

Plastic SCMクライアントのパス設定を行う

次にインストールしたPlastic SCMがターミナルからも利用できるようにPathに設定追加を行います。環境変数Pathに対して、c:\Program Files\PlasticSCM5\clientを追加します。これでターミナルからもPlastic SCMが利用できるようになります。

ターミナルからcmコマンドを入力するとhelpが表示されます。

UE4のプロジェクトにPlastic SCMプラグインをコピー

次にUE4のプロジェクトにPlastic SCMを導入します。あらかじめUE4のプロジェクトを作成しておきます。

UnrealEditorでは標準でサポートされてますが、せっかくなので最新版プラグインを導入します。Plastic SCMのUnrealEngine4およびUnrealEngine5向けのプラグインの最新版は、githubにて配布されています。今回は、UE4PlasticPlugin-1.5.0.zipを導入しました。

ダウンロードしたzipファイルを展開するとplugins/UE4PlasticPluginフォルダが生成されます。ので、このPluginsフォルダごとUE4プロジェクトのルートフォルダ(.uprojectファイルがあるフォルダ)にコピーします。

Plastic SCMを利用するための初期設定

UE4プロジェクトに対してPlastic SCMで管理できるよう初期設定します。初期設定を実施するには、Plastic SCMのアプリケーションの1つであるClient configuration wizardを利用します。スタートメニューから起動します。

最初にPlastic SCMのログインを行います。ログインするとそのユーザが所属しているオーガナイゼーションが表示されます。

所属するオーガナイゼーションをJoinした後に、Plastic SCMをdeveloper(開発者)として利用するか、Artist(アーティスト)として利用するかを選択します。この選択によって先ほど紹介したようにUIが違ってきます。今回はdeveloperとして登録します。

次に、リポジトリをCentralized(中央的)と、Distributed(分散的)のどちらでリポジトリ管理するかを選択します。CentralizedはSubversionに近い管理方法ですし、Distributedはgitに近い管理方法となります。

今回はCentralizedとして管理していきます。

あとはRepository、Workspace name、Path on diskをそれぞれ設定します。あとは、OKボタンを押すことでリポジトリの初期化が完了します。

UE4プロジェクトでの設定

次にUnrealEditorでのPlastic SCMを使用するよう設定します。まず、バージョン管理のメニューからPlasticSCM2を選択します。

これでPlastic SCMのリポジトリに登録できる準備ができました。ignore.confファイルが存在していませんので、ignore.confファイルを追加しますのボタンをクリックしておきます。

あとは”設定を承認”をクリックすると設定完了となります。

UnrealEditorでバージョン管理を行う

ではUnrealEditorでファイル管理を行ってみます。何かしらの変更を行った後、ソースコントロールにサブミットを選択します。

すると、更新対象となるファイルの一覧が表示されますので、更新内容を記述した上でサブミットをクリックします。

あとは、サーバとの同期を取る時には「ワークスペースを同期/更新」を選択します。

最後に

Plastic SCMは、一元型、分散型でのファイル管理や、職種に応じたUIを用意するなど、これまでになかった様々な機能を提供したバージョン管理システムとなっています。

UnityやUnrealEngineなどの主要なゲームエンジンにも対応しているなど使い勝手も良いです。試しに使ってみてはいかがでしょうか。