News Activity Product Learning red Event Contact
Devblog top img

開発ブログ

2018-03-03

Githubで管理するUE4のレベル容量をgitignoreで削減する

writer : yuto

はじめに

 Githubでは1ファイル100MBという規制があります.そのため,UE4のような大容量のバイナリファイルをGithubで管理するためにはそれなりの工夫が必要で,特にレベル等の容量が大きくなりやすいアセットを管理する場合は注意が必要です.対策としては,1アセットの容量を減らす,Git LFSを使う,Gitlab等を使うなどがありますが,ここでは最も手軽でコストがかからないアセットの容量の削減についてignoreファイル設定の観点からお話します.
 まず前提として,これ以降お話しする内容は以前からUE4のプロジェクトをGithub等で管理している方を対象とします.ここでお話しする内容は主に過去にGithubが提供していたUE4用のignoreファイルに不足していた内容です.これから新規でUE4のリポジトリを作るという方はGithubが提供しているignoreファイルをそのまま使って頂ければ問題ありません.

 

方法

 簡単に概要を説明すると,レベルからビルドデータを作成し,それをignoreファイルに設定するだけです.これでGithubで管理するデータ容量を大幅に削減することができます.以下に詳細を説明します.

手順①

 まず,容量を削減したいレベルを全てビルドし,ビルドデータを作成します.ビルドデータ(BuiltData)とは,ライティングのビルド後,レベルのライティング情報を格納するものです.レベルの容量は主にこのビルドデータに移されますので,ライティングのビルド後はレベル単体の容量は大幅にカットされます.以下にビルド前とビルド後の容量の変化の例を紹介します.


↑ビルド前


↑ビルド後

 見て分かる通り,ビルド後は新しく生成されたビルドデータに大半の容量が集中しており,元のレベル単体の容量は大幅に削減されています.これをGit管理せず「無視」することで実際に管理する容量を削減するということです.

手順②

 git管理しているリポジトリのignoreファイルに以下の行を追記します.(そもそもignoreファイルが存在しないという場合は,一度もコミットしていない限りリポジトリを作り直すことをお勧めします)

# の行はコメントなので,必須ではありませんが,重要なのは* の行です.これは「末尾がBuiltData.uassetのものをGit管理しない」ということを表します.

 

注意点

 ビルドデータはライティング情報を格納したものなので,これを無視するということは,ライティング情報の共有はできません.よって,正しいライティングを確認するためには各自のPCでビルドしなおさなければなりません.

 

まとめ

 上記のignoreファイルの追記部分は,前述したとおり既にGithub提供のUE4用ignoreファイルに追記されています.ignoreファイルのリポジトリを確認したところこの修正は,2017/01/28に行われているようですが,筆者が作成したリポジトリのignoreファイルは4月段階のものであるにも関わらず,この修正が適応されていませんでしたので,しばらく時間がかかるのかもしれません.Githubのignoreファイルは随時更新されており,この修正点以外にも様々な変更がなされているので,しばらく更新されていなかった方は一度ignoreファイルを見直すことをお勧めします.

 

追記

 現時点(18/03/11)で,Githubのgitignore  リポジトリのgitignoreと,皆さんがリポジトリ作成時に選択できるUnreal Engineのgitignoreを比較したところ,前者には17/11/29にプラグイン関係の無視設定が追加されているにも関わらず,後者には未だ追加されていませんでした.前者におけるUnrealEngine.gitignoreのそれ以前の更新日時は17/04/15ですので,現在皆さんがリポジトリ作成時に選択できるignoreファイルは17/04/15最終更新のものとなります.

↑現時点で不足している設定(ピンクのところ)

 レベル容量の問題はどちらも更新されておりますので,どちらを利用して頂いても問題ありませんが,もしプラグイン回りに関わっていてこれらの無視設定が必要な方は,Githubのgitignore  リポジトリから直接UnrealEngine.gitignoreを取ってくると最新のバージョンを使用できます.