🗄️

VRChatのアバターの差分バックアップを取ろう【PlasticSCM】

2022/04/04に公開

きっかけ

ここ数ヶ月でVRChatにハマり、アバターのアップロードのために初めてUnityを触るようになりました。アバターに小物を持たせたり、エモートを入れたりしているとあっという間に設定が複雑化し、更なる改変時の設定ミスや、データの紛失などで再起不能になる恐怖と戦うことになります。

筆者は元々Gitの差分バックアップ大好き人間なので、Unity上で使える差分バックアップシステムの存在を知り即導入しました。

PlasticSCMとは

バージョン管理システムの1つで、GUIツールやクラウドサービスも一緒に提供されています。Gitなどとの細かい違いは公式サイトに表でまとめられています。

2020年にUnityに買収されたこともあり、Unityとの親和性は一番高そう。

インストール

https://www.plasticscm.com

  1. 公式サイトからTryNowを押すとクラウドを使用するための個人情報の入力を求められるので必要事項を記入します。
    Unityアカウントでサインインすることもできるので、アカウントを別で作りたい場合以外はそっちを使いましょう。

    入力すべき情報が多すぎて困惑した方はこの記事も参考になるかもしれません。

このときのページで書いてある通り5GBまで無料のクラウドと契約することになります。万が一バックアップデータが5GBを超えた場合は月5$を請求されるので注意です。 (アバター三体+小物色々あるプロジェクトをアップロードしても0.3GB程度だったのでそこまで気にしなくても大丈夫そうです)

subscription

  1. FINISH SIGN UPを押した先のページでDownloadを押すとインストーラのダウンロードが始まるので、そのままインストールします。(上にあるダウンロードタブからClodudEditionDownloadを選択することでもインストーラをダウンロードすることができます)

途中コンポーネントの選択を要求されますが、Unity上で扱うだけなら無視で大丈夫です。

components

プロジェクトのセットアップ

  1. インストールが終わるとソフトが起動し、サインインが要求されます。

PlasticSCMはデフォルトでデスクトップショートカットを作成しません。もし起動しない場合はwindowsキー→plasticと入力するとソフトを見つけることができます。

siginin

  1. Cloudを契約したアカウントでサインインすると、登録した組織名が表示されます。

organization

  1. PlasticSCMには二種類のGUIソフトウェアが存在します。今回はシンプルなGluonを選択します。

  2. プロジェクトの選択を要求されるので、新規->新規リポジトリを作成より任意のリポジトリ名を入力してOKを押します。

アバターを管理しているプロジェクトのディレクトリを作業ディレクトリ欄に入力します。

場所がわからない場合はUnityで一度プロジェクトを開き、Projectタブ内で右クリック->show in explorerで表示することができます。

select

  1. 画面が切り替わり、このようになります。
    workspace

不要ファイルの除外

Unityのプロジェクトファイルには一部バックアップ不要なファイルが存在します。

詳しくはPlasticSCMのブログにまとめられていますが、主な不要ファイルの除外方法を説明します。

以下の手動で設定する方法の他に、上記ブログにあるテンプレート使う、Unityでプロジェクトを開き自動生成することでも設定が可能です。

Library/Logs/Tempを選択し右クリック->無視リストに追加->項目のフルパスを使用を選択し、出てきたポップアップウィンドウのOKを選択します。

個別で選択した場合は無視リストに追加を押した後、/が付いている方を選択してください(例: /Temp)

ignore

3つのフォルダのステータスが無視に設定され、ignore.confが追加されていれば正しく設定できています。

ignoredworkspace

バックアップを取る

PlasticSCMではバックアップを取ることをチェックインといいます。チェックインを行うことでその段階でのファイルの変更状態を保存します。

変更をチェックインタブに移動し、全てチェックと書かれたチェックボックスをクリックしチェックを入れて任意のコメントを入力した後、チェックインボタンをクリックすることでバックアップが取られます。画像ではコメントをFirstチェックイン!としています。(コメントは日本語も入力できます)

checkin

初回チェックインにおいて、データ暗号化のためのパスワード入力を要求されることがあります。備考にも書かれていますが、同じサーバー上では同じパスワードを設定するようにしてください。

serverpass

Unity上でPlasticSCMと連携する

  1. 対象プロジェクトを開き、メニュー欄からEdit->Project Settings->VersionControlからPlasticSCMを選択します。

    versioncontrol

  2. 下にCheck Outボタンが表示されるのでクリックすると設定の変更が適応されます。

    checkout

  3. 新しくPlasticSCMタブが追加されていれば正しく設定できています。今後はここからチェックインなどの操作が可能です。

    plasticmenu

その他の操作

以下はPlasticSCMでできる特殊な操作となります。基本的なバックアップはここまででできているので、以降は必要に応じてご覧ください。

一部操作はGluonではできない場合があります。その場合は現在の変更を全てチェックインまたは取り消した後Gluonを閉じ、PlasticSCMを開いて更新を選択し、以降の操作もPlasticSCM上で行ってください。

直前のバックアップまで戻る

  • Unity上で行う

    PlasticSCMタブから取り消したい変更にチェックを入れて、変更を取り消すをクリック

  • Gluon上で行う

    変更をチェックインタブから取り消したい変更にチェックを入れて、取り消しをクリック

特定の変更セットまで戻る

⛔この操作はGluon上で行うことはできません

⚠️この操作を行った後、戻る前にロールバックすることはできません。一時的に変更を遡りたい場合はブランチを分けることをお勧めします。

  1. 変更セットから戻りたい変更を右クリックし、ワークスペースを子の変更セットに切り替えを選択します。

    select

  2. 切り替えた変更より上の変更セットを全て削除します。

    対象の変更セットを右クリック->詳細->変更セットを削除

    remove

  3. 右上の リロード(🔁)ボタンを押すとワークスペースが更新され、変更が認識されます。

ブランチを分けて作業する

これまでの説明では常にmainブランチ上で作業を行ってきていました。そのため変更セットを巻き戻し、削除した場合は二度と基に戻せないといったリスクが存在していましたが、ブランチを分けることでそのような問題を回避し、いつでもmainブランチの変更セットに巻き戻したり、mainブランチに別ブランチの変更セットを適応したりすることができます。

⛔ブランチを扱うレベルの操作は高度なものが多いため、GluonではなくPlasticSCM上で操作する前提で記述しています。

新たなブランチを作成する

以下ではmainブランチを基に子ブランチを作成します。

  1. ブランチタブからmainブランチを右クリックし、子ブランチを作成を選択します。
    branch

  2. 任意の名前を設定し、OKをクリックします。このときワークスペースをこのブランチに切り替えにチェックを入れておくと作成後自動でワークスペースが切り替わります。

    setname

ブランチを切り替える

保留中の変更が存在する場合は全てチェックインまたは取り消してから以下の操作を行ってください。

  1. ブランチタブから切り替えたいブランチを右クリックし、ワークスペースをこのブランチに切り替えを選択します。

    change

  2. 確認のダイアログが表示されるのではいを選択します。

別ブランチの変更を適応する

  1. 変更を適応させたいブランチ(mainブランチなど)に切り替えてください。

  2. ブランチタブから変更元のブランチを右クリックし、このブランチからマージを選択します。

    merge

  3. 変更されるファイルを確認した後、変更を適応をクリックします。

    apply_merge

  4. 変更されたファイルを保留中の変更タブから選択し、任意のコメントを入力してチェックインを押すと、マージした変更がチェックインされます。

    apply_changes

  5. ブランチエクスプローラーで確認すると、変更がmainブランチに取り込まれたことが分かります。(ここでは右の緑色が現在のブランチの最新の変更セットを表しています)

    branches

GitHubで編集を提案

Discussion