Dark Ruins Sample Project とは
Quixel Megascans チームが Unreal Engine 向けに公開したサンプルプロジェクト「Dark Ruins」は、高品質なアセットを使った環境デザインの学習に最適な教材です。
筆者もさっそくダウンロードし、このプロジェクトを起点に GitHub でバージョン管理を始めようとしました。ところが、Megascans 由来のアセットは個々のファイルサイズが非常に大きく、GitHub のファイル容量上限に引っかかってプッシュできないという問題が発生しました。
本記事では、この問題を .gitignore で解決する方法を紹介します。
サンプルプロジェクトは Fab からダウンロードできます。
GitHub のファイル容量上限について
GitHub の公式ドキュメント には、以下のように記載されています。
GitHubにより、100 MiB よりも大きいファイルは禁止されます。
この制限を超えるファイルを追跡するには、Git Large File Storage (Git LFS) を使う必要があります。
Git LFS を利用すれば大容量ファイルも追跡できますが、無料枠には容量制限があるため、頻繁に更新しないアセットファイルであれば .gitignore で追跡対象から除外するほうが手軽です。
そこで、Dark Ruins プロジェクト内の 100 MiB 超のファイルを調査し、一覧を作成しました。これらのパスを .gitignore に追加することで、GitHub の無料リポジトリでもプロジェクトを管理できるようになります。
.gitignore に追加するべきパス一覧
/Content/DarkRuins/CustomAssets/Arch/SM_ArchWay_01_N1.uasset
/Content/DarkRuins/CustomAssets/Characters/FallenSoldier/Armour/SM_ArmourBodyChainmail_N1.uasset
/Content/DarkRuins/CustomAssets/Characters/FallenSoldier/SM_MERGED_InLevel_N1.uasset
/Content/DarkRuins/CustomAssets/Misc/SM_Pit_01_N1.uasset
/Content/DarkRuins/CustomAssets/Misc/SM_Pit_02_N1.uasset
/Content/DarkRuins/Previewer/SM_BPP_FallenSoldierChar_05.uasset
/Content/DarkRuins/Previewer/SM_SM_SM_BPP_FallenSoldierEnv_02.uasset
/Content/DarkRuins/MS/3D/Cement_Rubble_rinet/SM_Cement_Rubble_rinet_01_N1.uasset
/Content/DarkRuins/MS/3D/Cracked_Nordic_Beach_Ground_vdymaajqx/SM_Cracked_Nordic_Beach_Ground_vdymaajqx_01_N1.uasset
/Content/DarkRuins/MS/3D/Huge_Nordic_Coastal_Cliff_venrdcgga/SM_Huge_Nordic_Coastal_Cliff_venrdcgga_01_N1.uasset
/Content/DarkRuins/MS/3D/Huge_Nordic_Coastal_Cliff_venrdcgga/SM_Huge_Nordic_Coastal_Cliff_venrdcgga_02_N1.uasset
/Content/DarkRuins/MS/3D/Japanese_Shrine_Stairs_ud4mbgtfa/SM_Japanese_Shrine_Stairs_ud4mbgtfa_N1.uasset
/Content/DarkRuins/MS/3D/Leather_Luggage_Suitcase_wk2iafu/T_Leather_Luggage_Suitcase_wk2iafu_D.uasset
/Content/DarkRuins/MS/3D/Limestone_Rocks_ubordbyda/SM_Limestone_Rocks_N1.uasset
/Content/DarkRuins/MS/3D/Limestone_Rubble_ubxbejwda/SM_Limestone_Rubble_N1.uasset
/Content/DarkRuins/MS/3D/Limestone_Rubble_ubxbejwda/SM_Limestone_Rubble_ubxbejwda_N1.uasset
/Content/DarkRuins/MS/3D/Limestone_Slab_ubxbadpda/SM_Limestone_Slab_N1.uasset
/Content/DarkRuins/MS/3D/Massive_Nordic_Coastal_Cliff_ullqbb1ga/SM_Massive_Nordic_Coastal_Cliff_ullqbb1ga_N1.uasset
/Content/DarkRuins/MS/3D/Massive_Nordic_Coastal_Cliff_vdssailfa/SM_Massive_Nordic_Coastal_Cliff_vdssailfa_01_N1.uasset
/Content/DarkRuins/MS/3D/Massive_Nordic_Coastal_Cliff_vefkehbva/SM_Massive_Nordic_Coastal_Cliff_vefkehbva_01_N1.uasset
/Content/DarkRuins/MS/3D/Massive_Nordic_Coastal_Cliff_veqnci0db/SM_Massive_Nordic_Coastal_Cliff_veqnci0db_01_N1.uasset
/Content/DarkRuins/MS/3D/Massive_Nordic_Coastal_Cliff_veqnci0db/SM_Massive_Nordic_Coastal_Cliff_veqnci0db_02_N1.uasset
/Content/DarkRuins/MS/3D/Modular_Brick_Ruins_Base_Kit_xjotbfniy/SM_Modular_Brick_Ruins_Base_Kit_M_xjotbfniy_01_N1.uasset
/Content/DarkRuins/MS/3D/Modular_Brick_Ruins_Kit_xjotbejiy/SM_Modular_Brick_Ruins_Base_Enterance_Kit_xjotbejiy_01_N1.uasset
/Content/DarkRuins/MS/3D/Nordic_Beach_Rock_Formation_vckqccbga/SM_Nordic_Beach_Rock_Formation_vckqccbga_N1.uasset
/Content/DarkRuins/MS/3D/Nordic_Beach_Rock_Formation_vd4iecjva/SM_Nordic_Beach_Rock_Formation_vd4iecjva_N1.uasset
/Content/DarkRuins/MS/3D/Nordic_Beach_Rock_Formation_veflbabqx/SM_Nordic_Beach_Rock_Formation_veflbabqx_N1.uasset
/Content/DarkRuins/MS/3D/Nordic_Beach_Rock_Formation_vewjdajqx/SM_Nordic_Beach_Rock_Formation_vewjdajqx_N1.uasset
/Content/DarkRuins/MS/3D/Nordic_Beach_Rock_Formation_vfgkajyga/SM_Nordic_Beach_Rock_Formation_vfgkajyga_01_N1.uasset
/Content/DarkRuins/MS/3D/Nordic_Beach_Rock_Formation_vflrejtfa/SM_Nordic_Beach_Rock_Formation_vflrejtfa_01_N1.uasset
/Content/DarkRuins/MS/3D/Nordic_Beach_Rock_uk3ndfyga/SM_Nordic_Beach_Rock_uk3ndfyga_01_N1.uasset
/Content/DarkRuins/MS/3D/Nordic_Beach_Rocks_ulznddxva/SM_Nordic_Beach_Rocks_ulznddxva_01_N1.uasset
/Content/DarkRuins/MS/3D/Nordic_Beach_Rocks_vbokechga/SM_Nordic_Beach_Rocks_vbokechga_01_N1.uasset
/Content/DarkRuins/MS/3D/Nordic_Beach_Rocks_vbwrfhhga/SM_Nordic_Beach_Rocks_vbwrfhhga_01_N1.uasset
/Content/DarkRuins/MS/3D/Nordic_Beach_Rocky_Ground_ukoncdamw/SM_Nordic_Beach_Rocky_Ground_ukoncdamw_01_N1.uasset
/Content/DarkRuins/MS/3D/Nordic_Beach_Rocky_Ground_ukoncdamw/SM_Nordic_Beach_Rocky_Ground_ukoncdamw_Flat_01_N1.uasset
/Content/DarkRuins/MS/3D/Nordic_Beach_Rocky_Ground_ukoncdamw/SM_Nordic_Beach_Rocky_Ground_ukoncdamw_Flat_02_N1.uasset
/Content/DarkRuins/MS/3D/Nordic_Beach_Rocky_Ground_vf5pajccb/SM_Nordic_Beach_Rocky_Ground_vf5pajccb_01_N1.uasset
/Content/DarkRuins/MS/3D/Nordic_Coastal_Cliff_ulmiccava/SM_Nordic_Coastal_Cliff_ulmiccava_01_N1.uasset
/Content/DarkRuins/MS/3D/Nordic_Coastal_Cliff_ulmiccava/SM_Nordic_Coastal_Cliff_ulmiccava_02_N1.uasset
/Content/DarkRuins/MS/3D/Old_Wooden_Door_uflvddofa/SM_Old_Wooden_Door_uflvddofa_01_N1.uasset
/Content/DarkRuins/MS/3D/Quarry_Cliff_ub5tefsda/SM_Quarry_Cliff_ub5tefsda_00_N1.uasset
/Content/DarkRuins/MS/3D/Quarry_Cliff_ubhvccfda/SM_Quarry_Cliff_ubhvccfda_00_N1.uasset
/Content/DarkRuins/MS/3D/Quarry_Cliff_ubjuddqda/SM_Quarry_Cliff_ubjuddqda1_00_N1.uasset
/Content/DarkRuins/MS/3D/Quarry_Cliff_ubjuddqda/SM_Quarry_Cliff_ubjuddqda_01_N1.uasset
/Content/DarkRuins/MS/3D/Quarry_Cliff_ubjxdipda/SM_Quarry_Cliff_ubjxdipda_00_N1.uasset
/Content/DarkRuins/MS/3D/Quarry_Cliff_uchofe0fa/SM_Quarry_Cliff_uchofe0fa_00_N1.uasset
まとめ
上記のファイルパスを .gitignore に追加すれば、Dark Ruins Sample Project を GitHub の無料リポジトリで管理できるようになります。
ただし、.gitignore で除外したファイルは Git の追跡対象外となるため、別の環境にリポジトリをクローンした場合はそのままでは不足ファイルが存在する状態になります。クローン後は Fab から Dark Ruins Sample Project を再度ダウンロードし、該当ファイルを手動で配置してください。
大容量ファイルもバージョン管理したい場合は、Git LFS の導入を検討するとよいでしょう。
コメント