今まで何度聞いても分からないままだった謎要素『Git』に挑戦してみました。主な用途はUnityで作ったプロジェクトのバージョン管理とバックアップ、そして共同制作です。
プログラマーではないUnity初心者でも使えました! というわけで、導入で困ったことや解決したこと、今まで謎だったことを書き残しておきます。
目次
導入
こちらの記事を参考に、SourceTreeというソフトを使って始めました。
導入が一番大変でした。そこさえなんとかなれば後は大丈夫でした。
GitとGitHubの謎
GitHubはなんかプログラマーさんたちのデータ置き場みたいな印象でした。謎の設計図共有サイト。GitとGitHubの違いも実はよく分かっていませんでした。色々な初心者向けの記事を読んでもいまいち分かりませんでした。考えるより実際に使ってみたほうが早かったです。
詳しい仕組みについて理解しなくとも、概念と使い方だけ分かれば大丈夫そうです。あとはコミットとかプッシュとかの単語を少し覚えるだけで充分でした。
GitHubに登録したら、まだアイコン設定してないのに自分のアイコンが表示され「個人情報が読み取られてる!? GitHub怖い!!」と思いました。以前Gravatarに登録したアイコンが表示されただけでした。パソコン初心者感。
GitHubの容量
なぜ無料でデータが保存できるのかずっと謎でした。有料ユーザーに支えられているとはいえ、手元にあるUnityプロジェクトは1つあたり1GB以上の容量があります。それを何個もアップロードして、しかも差分を大量に保管できるのに無料で大丈夫なのか??……と思っていました。ここが一番の謎でなかなか手を出せずにいました。
実際にやってみたところ、.gitignoreファイル(コミットから除外するファイルを定義するファイル)により不要なファイルが省かれてコンパクトな容量になると分かりました。3GBのUnityゲームプロジェクトをGithubにプッシュ(アップロード)し、それをZIPダウンロードしたら260MBしかありませんでした。でもUnityでちゃんと開けました。すごい!
無料版
2024年5月現在、無料ユーザーだと1つのリポジトリ当たりの保存容量の上限は500MBとのこと。私の小規模なプロジェクトが(最適化してないとはいえ)260MBだったことを考えると、中規模~大規模なUnityプロジェクトでは割と簡単に枠を超えてしまうのでは。大きい画像や3Dモデルは別途に保存したり、プロジェクトに入れる前に最適化したほうが良さそうです。
アカウント全体の容量上限もあるので、順当にゲーム制作を続けていけば将来的には有料ユーザーになるかも。
出来たこと
Unityプロジェクトの共同編集、過去のプロジェクトのバックアップ、そしてバージョン管理が今回出来るようになりました。大きな進歩です。
というわけでGitを利用した記念すべき初の共同制作作品はこちらです。
共同制作のマージ
同じシーンを同時に編集するとマージできなくてちょっと困っていました。
UnityYAMLMergeという公式のツールを使うことで無事マージできました! でもたまに失敗します(多分私の使い方に問題があります)。その時は無理せずどちらかの変更内容で進めたほうが良さそうです。
VisualScriptingの設定
GithubでUnityのリポジトリを設定し、生成される.gitignoreをプルしてからコミットすると、ビジュアルスクリプティング関連のエラーが出てきてしまいました。
上記の記事の通り、.gitignoreを書き足すことで解決できました。感謝感謝。
有料アセットの扱い
Dotweenの有料版をよく使うので、そういった有料アセットをGitHubにプッシュしていいのかちょっと心配でした。
Unityアセットストアの記事によると、自分で使う範囲についてはプロジェクトに含めても大丈夫とのことでした。プライベートリポジトリでの個人制作なので、今回は問題なさそうです。ゲームジャムなどでの共同制作時の扱いについても記載があり、イベント終了後に有料アセットはプロジェクトファイルから除外するように、とのことでした。なるほど。
バックアップ
Githubに保存さえしてしまえば、古いプロジェクトは手元においておかなくても良さそうです。バックアップのために別のSSDを用意するという旧来の儀式も終わりです。
今まではバックアップが消えてしまうのが怖くて、今後絶対に使わないであろう画像も捨てられずにいました。
こんなファイルともおさらばです。Githubに保管してあるので安心です。
おまけ
Githubに保存したプロジェクトはこんな感じの内訳になっていました。
これだけ見るとなんかすごいプログラマーさんみたいです。ビジュアルスクリプティング分が反映されているのか、アセットのスクリプト部分か何かなのか……そもそもUnityの構成ファイルなのかも。
おわりに
Gitすごい! 便利! まだGitのことはよく分かっていないものの、謎の領域が減ってよかったです。