1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Plastic SCMを使ってみようと思った⑦

Posted at

はじめに

お正月休みが終わってしまい打ちひしがれながら過ごしていた今日このごろですが、Plastic SCMについてはまだまだ試してみたいことがたくさん残っています。今後も思い立ったら色々試して記事を書ければいいなと思います、不定期になると思いますが。

というわけで、前回の記事ではなんとかコードレビュー機能をお試ししてみましたが、次はもう少し実践的な実験として、Unityのプラグインを導入してエディタ上でPlastic SCMを操作してみようと思います。

Plastic SCM Plugin for Unity

UnityのエディタにPlastic SCMを統合するにはアセットストアでプラグインをゲットする必要があるようです。こちらのサイトを見た感じではまだベータ版みたいですね。でもまあ、これを使うしかないのでこれで試すしかないですよね。

また、Plastic SCMのサイトでもプラグインに関する説明がありました。
ざっと流し読みした感じでは、開発者モードとGluonモードをエディタ上で切り替えて使用できるようです。これはちょっと面白そうですね。

というわけで今回は折角なので、完全プレーンな出来たてのUnityプロジェクトにPlastic SCMを入れて、リポジトリを作るところから全部プラグインでできるかを試してみたいと思います。

まっさらなプロジェクトにPluginを導入する

ひとまず現時点で最新バージョンであるUnity2020.2.1f1でプロジェクトを作り、そこにPlastic SCMを導入してみます。2018.4.25 or higherらしいので大丈夫でしょう多分。

早速エディタ上のAsset StoreからPlastic SCMを探せば……ってあれ?
image.png

アセットストアは移動しました、と。ウェブ上のアセットストアで購入したあとにパッケージマネージャからアセットをインポートしてくださいとのことです。
そうか、2020からはエディタ上のAsset Storeからアセットをインポートできないんだっけ。すっかりUnityから遠ざかっていたのですっかり浦島太郎状態。

仕方ないのでウェブサイトに移動してPlastic SCMを購入しました。無料で。(正確にはAdd to My Assetsしただけですが)
image.png

で、パッケージマネージャのMy Assetsを表示して、購入日順にソートしなおししてみたら表示されました。
image.png
右下のダウンロードボタンを押して、ダウンロードが終わったらインポートボタンになるのでポチッと。特に設定を変更せずにそのままインポートを行います。
image.png
無事プロジェクト内にPluginフォルダが作られ中にPlastic SCMが追加されました。
なるほど2020はプロジェクト内のアセットもパッケージマネージャで管理できるってのはこういうことだったのか!(遅い)
image.png

UnityエディタからPlastic SCMを使ってみる

まずはReadMe

パッケージ内にドキュメントが含まれていたのでまずそれを読んでみました。が、どうやらこれは普通にPlastic SCMをセットアップする手順のようです。最終的にはオンラインのステップ・バイ・ステップガイドを読みなさいということでした。

幸いこのあたりはこれまでの記事で済ませていたのでパス!
image.png

エディタ上でPlastic SCMを起動する

ReadMeにはエディタ上でPlastic SCMを起動させる方法などが書いてありませんが、どうせどっかにメニューが追加されているに違いないと思い、メニューを探していると見つかりました。
image.png

メニューを選ぶとPlastic SCMのタブが開き、しばらく何かを読み込んでいるような挙動の後、操作可能な状態になりました。
なんとなくですが、裏でPlastic SCMのログイン処理をしていたのかなという気がします。「…」などでリポジトリを選択する際などに、私のアカウントのクラウドにアクセスできるようになっているようなので。
image.png

Unity用のリポジトリを作る

このプロジェクトを管理するためのリポジトリを、プラグイン上から新たに作ろうと思います。Repository nameの横にあるNewボタンを押したら新しくリポジトリが作れるようです。
リポジトリ名にTestPlasticSCM、サーバーに私のアカウントのクラウドを指定し、OKを押します。
image.png

しばらく処理待ちになり、それが終わるとリモートのリポジトリが作成されました。そのリポジトリが選択された状態になっています。先ほど作成したクラウド上のリポジトリを「…」から選ぶこともできるようになっていました。
image.png
image.png

DeveloperかArtistかを選ぶ必要があるのですが、ひとまずDeveloperを選び、あとはCreate workspaceボタンを押したらワークスペースが作ら、タブの見た目が大きく変化しました。
image.png

ワークスペースを操作する

さてやっとワークスペースを操作できるようになりました。まずは現在のプロジェクトをチェックインしてみることにします。
ワークスペースのファイルを確認してみたところ、自動でignore.confが追加されており、Unityに最適化されたフィルタリングがなされているようです。
image.png
なので安心してエディタ上からチェックインしてみることにします。
すべてのファイルにチェックを入れ、チェックインコメントを入力して「Checkin changes」ボタンを押します。
image.png
……なんだか妙にそっけないエラーが出ました。うーんなんでしょう??
何かしらのソフトがインストールされていないとこのプラグインは動かないのでしょうか。ReadMeにも特にそんな記述はなかったですが……。
image.png
軽くググってみたところ、同様の症状の人を発見しました。
解決方法として提示されていたのは、マシンの再起動 or Unityの再起動。ひとまずマシンの再起動を試してみます。
そして早速チェックインを行ったところ無事チェックインされました。
image.png
チェンジセットもしっかり追加されていました。
image.png

これはどういう状態だろうか?

エディタ上からチェックインを行うことができました、が、ワークスペースはどういう状態でしょう?

  1. ローカルリポジトリにチェックインが終わってPushされていない。
  2. 直接サーバのリポジトリにチェックインされている。

というわけで、タブの右上にあるLaunch PlasticボタンをしてクラシックGUIを起動し、Sync repositoriesのタブで状況を確認してみます。
image.png
どうやらローカルとサーバの間に差がない、ということはすでにサーバにPushされた状態になっているようです。すなはち正解は②。

これはUnityのエディタ上からチェックインすると必ずこうなってしまうのだろうか??

クラシックGUIを使ってみる

では次はUnityプラグインではなく、Plastic SCMのクラシックGUIからチェックインを試してみます。
以下のようにUnityのProjectにCSファイルを追加してみます。
image.png
そして、Plastic SCMタブからではなく、Launch Plasticボタンを押してクラシックGUIを起動し、Pending changesタブを開いてチェックインを試してみます。
image.png
ありゃ、さっきと同じ結果だ。ということはなにか最初に設定を間違えてしまったかも。
image.png

最初のリポジトリの設定を間違えたかもしれない

なので .plasticフォルダを削除して改めてUnityプロジェクトを起動してみます。
すると最初からもう一度設定が行えるようになるので、こんどは@localでリポジトリを作成してみます。
image.png

Sync repositoriesの設定を足す

そしてもう一つ間違いを犯しておりました。
Sync repositoriesの設定がこれまでの記事で使用していたTestDistributedリポジトリとローカルを同期させる設定を表示するようになっていました。気づけよ私。

そこで、ローカルリポジトリ(TestPlasticSCM@local)とリモートリポジトリ(TestPlasticSCM@XXXX@cloud)を同期させるためのsync viewをAdd sync viewから追加します。とりあえず自動で作られた名前に習い、「Sync TestPlasticSCM from local to cloud」という名前にします。

次に「Sync TestPlasticSCM from local to cloud」を選び、画面下のSync view detailsを設定します。
Add src repoでローカルリポジトリ(TestPlasticSCM@local)を設定、そのリポジトリを選択してAdd dst repoでリモートリポジトリ(TestPlasticSCM@XXXX@cloud)を設定します。
そうすると以下のような見た目になります。
image.png

これでチェックイン対象がローカルリポジトリになり、Push/Pullで更新ができるようになりました。

プロジェクトに変更を加える

SampleScript.csをProjectに追加し、エディタ上からチェックインします。
image.png
SampleScript2.csをProjectに追加し、クラシックGUIでチェックインします。
image.png
そしてSync repositoriesタブを開き、先程追加したSync view detailsを確認すると以下のようになっています。
エディタ上でのチェックインもクラシックGUI上でのチェックインも同様に扱われています。
image.png

あとはこの変更をPushすることでローカルリポジトリの変更をリモートリポジトリに通知できました。
というわけで無事、分散型でプロジェクト操作ができるようになりました。めでたしめでたし。

おわりに

意図せずSVN的な使い方とGit的な使い方を確認できてしまいました。(正しいのかは不明)

エディタ上の初期設定のときに、リモートリポジトリを指定するとSVNのように直接リモートリポジトリへチェックインを行え、ローカルリポジトリを指定するとGit的な使い方ができるのかなと。

ただ、デフォルトではSVN的な使い方を想定しているのかなという気はしました。
Sync repositoriesの設定は適当に操作しながらなんとなく把握しましたが、こうしなさい的なチュートリアルも特になかったので、もしかしたら想定外の使い方だったりするのかな?と。

クラシックGUIが必須になるというのもプラグインの思想的に微妙だし、ローカルリポジトリを使用するとファイルのロックなどもできないなどを考えると、アーティスト的には微妙なのかなという気はします。

当然プログラマはGit的に使いたくなるので、その場合にはSync repositoriesの設定をしなければいけないだろうと思います。
というかプログラマはこのプラグインを使わず、普通にクラシックGUIを使えばいいかな……

というわけで切りが良いところで区切りましたが、このへんはもう少し触りながら理解を深めないといけないなと思いました。

見直してみたら

一通り記事を書き終えてから、最初に少し触れたPlastic SCMのUnity Pluginのサイトに有る動画を見ていなかったのできちんと見直してみたところ、やはりサーバに直接チェックインする方法を想定しているっぽいですね。

そして、開発者モードとアーティストモードの違いは、Plastic SCMタブの右上のボタンで開くのがクラシックGUIかGluonかが違うみたいですね。なるほど。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?