Azure DevOpsでUnityプロジェクトデータをバックアップする方法!ほぼ容量無制限で無料!【大事な改変・制作データをなくさないために】

VRChat

少し前に、Windowsでお馴染みMicrosoft社のAzureのサービスの一つ、Azure DevOpsがUnityのプロジェクトデータのバックアップに最適という話を聞いていたので、実際に試しに保存していました。

その後、SSDが突然の死を遂げてしまい、試しに保存していた分から復元出来て非常に助かったということがありました(お試しでアップロードしていた分だけなので、完全復元は出来なかった)。

VRChatやChilloutVR、Connect Chatなどでゲーム開発以外でもアバターやワールドのアップロードなどにUnityを使うことがあると思います。

こういったデータをSSDやHDDのようなローカルだけで管理していると、突然の故障などで二度と復元できなくなってしまうケースがあります。

クラウド上に保存していれば、ローカル環境に何か起きてもクラウド上から復元出来ます。

何か起きてからではどうにもならないので、今回紹介するAzure DevOpsをバックアップ方法の1つとして利用してみてはいかがでしょうか。

Azure DevOpsでUnityプロジェクトデータをバックアップする方法

GitHubではダメなの?

GitHubはソースコードとしては無制限でアップロード出来ますが、テクスチャデータや音声データなどの1つのデータ容量の大きいものを含むもの(GitLFSを使用する場合)は、無課金状態では1GBまでしかアップロード出来ません。

月5ドル支払うことで50GBに増やすことが出来ますが、Azure DevOpsであれば、5人以下で利用するのであれば、こういった制限を受けずにずっと無料で利用出来ます(2021/12/31時点)。

前置き

今回は、コマンド操作であるGitをGUIで使えるようにするソフトSorcetreeを使ったやり方を紹介します。

極力コマンド操作が少なくなるようにしています。

「Gitってなんぞや?」という人でも、そこまで難しい操作をしないので大丈夫だと思います

もし、分からない単語があればググれば分かりやすく解説しているサイトが沢山あるので、すぐ理解出来ると思います。

下準備

アカウントとプロジェクトを作る

まずは、Azure DevOpsのサイトに行き、アカウントを作成します。

MSアカウントを既に持っている場合は、自動でログインされるかもしれません。

ユーザー名等がこのタイミングで確定してしまうので、問題がある場合は新しいアカウントを作成することをおすすめします。

リージョン選択がありますが、現時点ではUIの日本語化はされていません。

①のところは、デフォルトだとメアドのアットマーク前が入っていると思いますが、ここの画面が最後で、今後変更出来ないようです。

②日本なら「East Asia」が良いと思います。

アカウント作成が成功するとこの画面になると思います。

ここでのプロジェクトが指すものはレポジトリとは別です。今回は「UnityProject」としました。

バックアップ目的なら、第三者に見せる必要はないし、購入したデータを保管することが多いと思うので、基本的に「Private」を選択します。

レポジトリを作成

今回の用途の場合、Azureのデプロイ機能は使うことがないと思うので、「Repos」タブのみしか使いません。

このスクリーンショットではレポジトリが存在していますが、レポジトリがまだないと思うので、ここでレポジトリを作成します。

レポジトリ作成時にgitignoreがUnityを選択しておくと、後で設定しなくていいので、楽だと思います。

このときREADMEを作成のチェックをしておかないと、クローン時にSorceTreeがクラッシュするという現象が起きたので、作成しておきましょう。

SorceTreeをインストール

Sourcetree | Free Git GUI for Mac and Windows
A Git GUI that offers a visual representation of your repositories. Sourcetree is a free Git client for Windows and Mac.

↑からダウンロード出来ます。

特に難しいことはないので、省略します。

SorceTreeでAzure DevOpsにログインする

Azure DevOpsとSorceTreeの相性が悪いらしく、ログイン周りが分かりづらく、しかもSorceTree側がAzure DevOpsの仕様変更を放置しているので、初見だと結構手間取ります。

まずは、クローンボタンを押します。

ここで、まず①のURLをメモ帳などのテキストエディタにコピーします。

そのままSorcetreeに入れてもそれっぽい挙動を見せますが、レポジトリがクローン出来ないという罠になっています。

②をクリックするとアクセスに必要なユーザー名とパスワードが表示されます。

これもメモ帳などのテキストエディタにコピーしておきます。

Sourcetreeを開き、「ツール」から「オプション」を開いてログイン情報を入力していきます。

まず、認証タブの「追加」からAzure DevOpsを選択。

メモ帳などのテキストエディタにコピーしたURLを下記のように変更します。

https://****@dev.azure.com/****/xxxx/_git/xxxx

https://****.visualstudio.com

この書き換えて出来たvistualstudio.comで終わるURLをホストURLに入力します。

入力が完了したら「Credentials」の「Personal Access Token を再読み込み」をクリックします。

このようなポップアップが表示されユーザ名とパスワードが要求されます。

ここでのユーザー名とパスワードは、先程Azure DevOpsでメモ帳などのテキストエディタにコピーしたユーザー名とパスワードです。

このユーザー名とパスワードはクローン時に必要になるので、メモ帳などのテキストエディタはまだ閉じないでください

認証に成功と表示されれば、Sorcetreeからプロジェクトにアクセス出来るようになります。

もし、入力を間違えてしまっている場合は、下記場所にある「passwd」というファイルを削除しない限り、アンインストールしてもうまくいかなくなるようです。

C:\Users\[ユーザー名]\AppData\Local\Atlassian\SourceTree

下の文字列をExplorerの階層表示のところにコピペすると一発で飛べます。

%LOCALAPPDATA%\Atlassian\SourceTree

レポジトリをクローンする

オプションを閉じて、Sorcetreeのクローンタブを見ると、作成レポジトリがクローン出来るようになっていると思います。

クローンボタンを押して、待っているとCredentialHelperSelectorというのが表示されます。

wincredを選択して、先程のユーザー名とパスワードをコピペすると、リポジトリタイプが「これはGitリポジトリです」となるはずです。

もし、入力を間違えてしまっていたり、この表示が出ない場合は、下記場所にある「passwd」というファイルを削除しない限り、入力用のポップアップが出なくなります

C:\Users\[ユーザー名]\AppData\Local\Atlassian\SourceTree

下の文字列をExplorerの階層表示のところにコピペすると一発で飛べます。

%LOCALAPPDATA%\Atlassian\SourceTree

GitLFSの設定をする

Gitはもともとソフトウェアのソースコードを管理するためのもので、バイナリデータや画像データなどの大容量ファイルを管理するのが苦手です。

そこで、頻繁に変更が加わるソースコードとは別に大容量ファイルを管理する方法として、GitLFSが用意されました。

Git自体は1GB以下が好ましいらしく、それ以上になる場合はGitLFSの導入が必要らしいです。

Sourcetreeでは、「リポジトリ」→「Git LFS」→「リポジトリを初期化」とするとGitLFSが利用出来るようになります。

一応、このポップアップで設定することも出来ますが、拡張子を一つずつ設定するのは面倒なので、とりあえず、空のまま「トラックファイル」をクリックして、このポップアップを閉じます。

テキストエディタでクローン先のフォルダにある.gitattributesファイルを書き換えて設定すると一括で設定できて楽です。

※ファイルが見つからないという場合、「.gitattributes」が「.」から始まる隠しファイルになっているので、隠しファイルを表示する設定になっていることを確認してください。

設定内容は下記のQiitaの記事が参考になると思います。

UnityプロジェクトをGit LFSでバージョン管理する 個人的なオススメの設定 - Qiita
はじめに最近弊社でのバージョン管理がGitHubで管理するようになったので、その際、Unityプロジェクトをバージョン管理で必要不可欠なGit LFSの個人的なオススメな設定を紹介したいと思います。 Git LFSとは ...

なにも設定していなくても、一応Sourcetreeが容量が大きいことを検知して、GitLFSに追加するか聞いてくることがあります。

Unityプロジェクトデータをプッシュする

ここまで設定が出来たら、Git管理下のフォルダにUnityプロジェクトデータをコピーするか、シンボリックリンクを作成して、ファイルをコミットしてプッシュしましょう。

コミット?プッシュ?という方は下記の「マンガでわかるGit」をササッと呼んでみると良いと思います。

マンガでわかるGit アーカイブ - リクナビNEXTジャーナル

「LFS: Client error: https://~~~ from HTTP 413」というエラーが出る

一度でプッシュするサイズが128MBを超えるとエラーが出るというもの。

対応策はSourceTreeのターミナルを開き

git config http.version HTTP/1.1

と実行する。

 

特に返答はないのですが、これでエラーが出なくなると思います。

レポジトリ毎にこの作業をする必要があります。

シンボリックリンクに関するメモ

mklink /D <レポジトリフォルダの絶対パス>\Unityのフォルダ名 <絶対パスのUnityフォルダ>

※「<レポジトリフォルダ>\Unityのフォルダ名」の「Unityのフォルダ名」フォルダは作ってはいけない。
作ると「既に存在するファイルを作成することはできません。」と出る。

怪文章一歩手前なので、もうちょっとまともに説明を書きたいのですが、難しい…

Amazon検索
VRChat
Till0196をフォローする
Till0196のぼーびろく

コメント