うどんてっくメモ

技術的なメモをまったりと

Plastic SCM+Unity入門 -Plastic SCM概要と導入とUnity用プラグイン-

はじめに

文中で説明、および検証しているツールやパッケージのバージョンは以下の通りです。バージョンによっては説明に差異がある場合もありますのでご注意ください。

  • Plastic SCM 10.0.16.5397
  • Unity2021.1.0f1
  • Plastic SCM Plugin for Unity (beta) 1.4.1

Plastic SCMとUnity

Plasctic SCMはCodice Softwareが提供するバージョン管理ツールです。

f:id:myudon:20210502201034p:plain www.plasticscm.com

2020年にUnityがこのCodice Softwareの買収およびUnityとPlastic SCMの連携を公式のブログで発表しました。

blogs.unity3d.com

バージョン管理ツールといえばGitやSVNといった有名なものがありますが、他の著名なツールとの比較は公式サイトで公開されています。Plastic SCMが最強そうな比較になっていますが、特徴の雰囲気は掴めると思います。

Plastic SCM - Comparisons

公式の比較の中でも言及されていますが、Plastic SCMの特徴には大きく以下のようなものが挙げられます。

  • 集中型か分散型か選択可能
  • 巨大なバイナリを扱える
  • ゲームクリエイターをターゲットにしたサポート

集中型か分散型か選択可能

バージョン管理ツールにはSVNのように使用者が単一のリポジトリに対して操作を行う集中型と、Gitのように使用者それぞれのローカル環境にリポジトリのクローンを用意して操作を行う分散型が存在します。Plastic SCMは両方に対応し、用途に合わせて切り替えが可能になっています。

巨大なバイナリを扱える

巨大なバイナリというのは100MBを超えるようなファイルを指します。ゲーム開発でいえば2Dおよび3Dのクリエイティブコンテンツが大きくなりがちですが、それを取り扱えるのはゲーム開発にとって都合のいいポイントのひとつです。また、データの送受信が高速だったり、処理が高速だったりするのもPlastic SCMは売りとして掲げています。こちらは自分は検証していないのでゲーム開発のケースでどれほど効率化が見込めるかは言い切れませんが、公式で説明があるので興味のある方は参照してみてください。

Plastic SCM - Performance - Optimized network channel for high latency Plastic SCM - Performance - Performance results of Plastic SCM

ゲームクリエイターをターゲットにしたサポート

Plastic SCMはゲーム開発のサポートを大きく意識しており、公式サイトでもゲーム開発者に向けた案内が存在します。

Plastic SCM - The version control for game developers

たとえば現状であれば次のようなサポートが提供されています。

クリエイター向けのGUIツールは「Gluon」という名前でエンジニア用のGUIツールとは別に用意されています。クリエイターには不要だったり過度に高度だったりする機能を排除してシンプルな操作性を実現し、クリエイティブのプレビュー確認を可能にしてくれます。ゲーム開発ではクリエイターがバージョン管理ツールを触ることも多く技術的なハードルが課題に上がりがちですが、そこをしっかりフォローしてくれているのはありがたいです。公式のドキュメントはこちらになります。

Plastic SCM version control · Plastic Gluon guide

Unity用のプラグインについては後述しますので、詳しくはそちらを参照してください。Unity上でPlastic SCMの操作を行うためのプラグインとなっています。

Plastic SCMの導入

Plastic SCMにはCloudとEnterpriseの2つのプランが存在します。基本的に有償ですが、Cloudは使用形態やストレージの使用量によって無料になります。

f:id:myudon:20210425190443p:plain:w640

本記事ではこのCloudの導入について説明します。Cloudの申し込みは公式サイトより可能です。

Plastic SCM - Licensing and pricing options

フォームに必要な情報を入力し、正常に完了するとメールが届きます。

f:id:myudon:20210502205725p:plain:w640

次にツールをインストールします。公式サイトからインストーラーをダウンロードし、実行します。 必要な設定を入力してインストールしてください。(特別な設定などもないため詳細な説明は省略します。)

Plastic SCM - Download Plastic SCM

インストールが完了するとGUIツールおよびCLIが使えるようになります。CLIは「cm」コマンドで確認できます。

>cm version
10.0.16.5397

詳しいコマンドの説明は「cm help」と叩くか、公式のドキュメントを参考にしてください。

Plastic SCM version control · CLI guide

次にGUIツールのセットアップを行います。 インストールしてPlastic SCMを立ち上げるとサインインの画面になるので、登録したメールアドレスを入力します。サインインが完了すると集中型か分散型か最初の設定として聞かれるので、使用する方を選択してください。

f:id:myudon:20210502203456p:plain:w640

以上の手順でGUIツールのセットアップが完了となります。

Plastic SCMの基本的な機能

バージョン管理ツールということで、大元のリポジトリとのやりとりが存在します。他のバージョン管理ツール同様にブランチで変更を管理します。変更を統合する際にはマージして、とこの辺は特段変わった点はありません。

リポジトリおよびブランチに関する基礎的なコマンドをざっくりと紹介します。

  • checkin: ブランチへの変更の反映 (Gitでいうcommit)
  • update: ブランチの変更の取り込み (Gitでいうcheckout)
  • push: ローカルリポジトリのブランチをリモートリポジトリに反映 (Gitでいうpush) ※分散型でやる場合
  • pull: リモートリポジトリのブランチをローカルリポジトリに反映 (Gitでいうpull) ※分散型でやる場合

基本的には他のバージョン管理ツールでも見かけるような操作です。集中型と分散型が選択できるということで、分散型の時のみローカルのリポジトリをリモートのリポジトリに反映するためにpush/pullを活用します。

そしてGUIツールではワークスペースや手元の変更が確認できたり、上記の処理をGUI操作だけで行うことが可能です。

f:id:myudon:20210503005545p:plain:w640

f:id:myudon:20210503005603p:plain:w640

ブランチの確認やマージなどもGUI操作で完結します。ブランチエクスプローラーではブランチのダイアグラムを可視化します。

f:id:myudon:20210503000402p:plain:w640 f:id:myudon:20210503010149p:plain:w640

UnityのPlastic SCMプラグイン

Unity用のプラグインは現状Asset Storeで公開されています。(今後はPackage Managerへの移行を検討してそう?)

assetstore.unity.com

自分のアセットとして追加したら、Package Managerからプロジェクトへインポートします。

f:id:myudon:20210425192744p:plain:w640

導入したらWindowメニューからPlastic SCMを選択します。ワークスペースの作成を促されるので、プロジェクト用のワークスペースを作成します。

f:id:myudon:20210425195023p:plain:w640

f:id:myudon:20210425195040p:plain:w640

ワークスペースの作成が完了するとEditor Windowが開きます。checkinなどの操作がUnity上でさくっとできるのは便利です。 現在のブランチの履歴もUnity上で確認することが可能です。

f:id:myudon:20210425200641p:plain:w640

このようにGUIのレイアウトもある程度整っていて使いやすいです。しかし、本当に基礎的な操作と確認ぐらいしか現状できないのと、読み込みが遅い感触があるので、現状はPlastic SCM側のツールやCLIを使った方が便利かなというのが個人的な感想です。ただ、まだベータ版なので今後に期待したいです。

おわりに

Plastic SCMは日本ではそんなに使用事例がなく、日本語の情報も少ないです。自分はUnityが連携するという発表をして初めて知り、調べた次第です。 ゲーム開発にフォーカスしており、Unityと連携しているということで、今後も注目していきたいツールです。

参考資料

詳しいPlastic SCMに関する説明は公式が提供しているPlastic SCM Bookを参考にしてください。英語ですが、詳しい機能やその思想や用途について説明されています。

www.plasticscm.com