LoginSignup
8
8

【Git/UE5】Git を用いた Unreal Engine のバージョン管理の始め方

Posted at

はじめに

前提条件

  • GitHub アカウントを作成してある事
  • Git をダウンロードしてある事
  • Git LFS をダウンロードしてある事
  • Sourcetree をダウンロードして GitHub アカウントの認証などの初期設定を行ってある事

テスト環境

手順

GitHub でのリポジトリの作成

手順1

GitHub に行き、右上の「」から「New repository」を押す。

TSUBASAMUSU.png

手順2

Repository name」や公開範囲などを設定して右下の「Create repository」を押す。

TSUBASAMUSU.png

Sourcetree でのリポジトリの作成

手順3

通信プロトコルが「HTTPS」になっている事を確認してリポジトリの URL をコピーする。

TSUBASAMUSU.png

手順4

Sourcetree を開いて上の「Create」を押し、対象の UE プロジェクトのルートフォルダのパスを指定してリポジトリ名を設定し、種類が「Git」になっている事を確認してから左下の「作成」を押す。

TSUBASAMUSU.png

手順5

以下のように「出力先ディレクトリのエラー」が表示された場合は「はい」を押す。

TSUBASAMUSU.png

手順6

右上の「設定」を押して「リモート」を選択し、左下の「追加」を押す。

TSUBASAMUSU.png

手順7

デフォルトリモート」にチェックを入れて「URL/パス」に先程コピーした URL を貼り付け、「Remote Account」を選択し、右下の「OK」を押す。

TSUBASAMUSU.png

手順8

OK」を押して「リポジトリ設定」を閉じた後、左上の「リポジトリ」から「Git LFSリポジトリを初期化...」を選択する。

TSUBASAMUSU.png

手順9

右下の「Git LFSを利用する」を押す。

TSUBASAMUSU.png

手順10

右下の「トラックファイル」を押す。

TSUBASAMUSU.png

UEGitPlugin の導入

手順11

GitHub(UEGitPlugin)に行き、右の「Releases」の中の緑色の「Latest」の文字が表示されているバージョンを押す。

TSUBASAMUSU.png

手順12

Assets」内の「Source code (zip)」を押す。

TSUBASAMUSU.png

手順13

ダウンロードした ZIP ファイルを展開して UE エディタを閉じている状態で UE プロジェクトのルートフォルダにある「Plugins」フォルダ内に移動する。
(まだ「Plugins」フォルダが無い場合は自分で作成する)

TSUBASAMUSU.png

手順14

{プロジェクト名}.uproject」ファイル上で右クリックして「Generate Visual Studio project files」した後、UE プロジェクトを開き、右下の「Source Control」から「Connect to Source Control...」を選択する。

TSUBASAMUSU.png

手順15

Provider」で「Git LFS 2」を選択し、「Git Path」と「Use Git LFS」のチェックボックスにチェックが付いている事、「User Name」、「E-mail」等を確認して下の「Accept Settings」を押す。

TSUBASAMUSU.png

手順16

Sourcetree に戻り、右上の「設定」から「詳細リポジトリ固有の無視リスト編集」を押す。

TSUBASAMUSU.png

手順17

メモ帳などのテキストエディタが開いたらこちらのコードをコピペして保存する。

TSUBASAMUSU.png

手順18

UE プロジェクトのルートディレクトリに「.gitattributes」ファイルを作成してこちらのコードをコピペして保存する。

TSUBASAMUSU.png

手順19

UE プロジェクトのルートディレクトリにある「Config」フォルダ内に「DefaultEditorPerProjectUserSettings.ini」ファイルを作成して以下のコードをコピペする。

DefaultEditorPerProjectUserSettings.ini
[/Script/UnrealEd.EditorLoadingSavingSettings]
bSCCAutoAddNewFiles=False
bAutomaticallyCheckoutOnAssetModification=False
bPromptForCheckoutOnAssetModification=True

[/Script/UnrealEd.EditorPerProjectUserSettings]
bAutoloadCheckedOutPackages=True

手順20

作成した「DefaultEditorPerProjectUserSettings.ini」ファイルと同じ階層にある「DefaultEngine.ini」ファイルに以下のコードをコピペする。

DefaultEngine.ini
[SystemSettingsEditor]
r.Editor.SkipSourceControlCheckForEditablePackages=1

エディタ専用モジュールの作成

手順21

UE プロジェクトのルートディレクトリにある「Source」フォルダ内に新たにフォルダを作成し、その中に「{モジュール名}.Build.cs」と「{モジュール名}.cpp」、「{モジュール名}.h」を作成する。

TSUBASAMUSU.png

手順22

作成した3つファイルにそれぞれ以下のコードをコピペする。

YourModuleName.Build.cs
using UnrealBuildTool;

public class YourModuleName : ModuleRules
{
    public YourModuleName(ReadOnlyTargetRules Target) : base(Target)
    {
        PCHUsage = PCHUsageMode.UseExplicitOrSharedPCHs;

        PublicDependencyModuleNames.AddRange(new string[] { "Core", "CoreUObject", "Engine", "Slate", "SlateCore", "UnrealEd" });
    }
}
YourModuleName.h
#pragma once

#include "CoreMinimal.h"
#include "Modules/ModuleInterface.h"
#include "Modules/ModuleManager.h"
#include "Editor/UnrealEdEngine.h"

class YOURMODULENAME_API FYourModuleName : public IModuleInterface
{
    
};
YourModuleName.cpp
#include "YourModuleName.h"
#include "ISourceControlModule.h"
#include "ISourceControlProvider.h"

IMPLEMENT_MODULE(FYourModuleName, YourModuleName);

手順23

UE プロジェクトのルートディレクトリにある「Source」フォルダ内の「{プロジェクト名}Editor.Target.cs」に ExtraModuleNames.Add("作成したエディタ専用モジュールの名前"); を追加する。

YourProjectNameEditor.Target.cs
// Copyright Epic Games, Inc. All Rights Reserved.

using UnrealBuildTool;
using System.Collections.Generic;

public class YourProjectNameEditorTarget : TargetRules
{
	public YourProjectNameEditorTarget( TargetInfo Target) : base(Target)
	{
		Type = TargetType.Editor;
		DefaultBuildSettings = BuildSettingsVersion.V2;
		IncludeOrderVersion = EngineIncludeOrderVersion.Unreal5_1;
		ExtraModuleNames.Add("YourProjectName");
        ExtraModuleNames.Add("YourModuleName");//追加
    }
}

手順24

UE プロジェクトのルートディレクトリにある「{プロジェクト名}.uproject」ファイルに、作成したモジュールを以下のように追加する。

YourProjectName.uproject
{
	"FileVersion": 3,
	"EngineAssociation": "5.1",
	"Category": "",
	"Description": "",
	"Modules": [
		{
			"Name": "YourProjectName",
			"Type": "Runtime",
			"LoadingPhase": "Default"
		},
		{
			"Name": "YourModuleName",
			"Type": "Editor",
			"LoadingPhase": "Default"
		}
	],
	"Plugins": [
		{
			"Name": "ModelingToolsEditorMode",
			"Enabled": true,
			"TargetAllowList": [
				"Editor"
			]
		}
	]
}

ステータスブランチの設定

手順25

全ての変更を保存して「{プロジェクト名}.uproject」ファイル上で右クリックし、「Generate Visual Studio project files」した後、UE プロジェクトを開き、「ToolsNew C++ Class...」を選択する。

TSUBASAMUSU.png

手順26

親クラスに「All ClassesUnrealEdEngine」を選択して右下の「Next」を押す。

TSUBASAMUSU.png

手順27

Class Type」を「Public」に、作成場所を「{作成したエディタ専用モジュールの名前}(Editor)」に設定して右下の「Create Class」を押す。

TSUBASAMUSU.png

手順28

Visual Studio が開いたら作成された各ファイルに以下のコードをコピペする。
Branches の要素はこちらを参考にして適宜修正する)

MyUnrealEdEngine.h
#pragma once

#include "CoreMinimal.h"
#include "Editor/UnrealEdEngine.h"
#include "MyUnrealEdEngine.generated.h"

UCLASS()
class YOURMODULENAME_API UMyUnrealEdEngine : public UUnrealEdEngine
{
	GENERATED_BODY()

public:
	void Init(IEngineLoop* InEngineLoop) override;
};
MyUnrealEdEngine.cpp
#include "MyUnrealEdEngine.h"
#include "ISourceControlModule.h"

void UMyUnrealEdEngine::Init(IEngineLoop* InEngineLoop)
{
	Super::Init(InEngineLoop);

	const ISourceControlModule& SourceControlModule = ISourceControlModule::Get();
	{
		ISourceControlProvider& SourceControlProvider = SourceControlModule.GetProvider();
		
		const TArray<FString> Branches{ "origin/main", "origin/develop" };

		SourceControlProvider.RegisterStateBranches(Branches, TEXT("Content"));
	}
}

手順29

UE エディタに戻り、右下のボタンからコンパイルする。
(「Ctrl + Alt + F11」でも可能)

TSUBASAMUSU.png

作成したエディタ専用モジュールの登録とデバッグ

手順30

コンパイルが完了したら UE エディタと Visual Studio を閉じて UE プロジェクトのルートディレクトリにある「Config」フォルダ内の「DefaultEngine.ini」に以下のコードを追加する。
(既に [/Script/Engine.Engine] がある場合はその欄の最後に以下のコードを追加する)

DefaultEngine.ini
[/Script/Engine.Engine]
UnrealEdEngine=/Script/YourModuleName.MyUnrealEdEngine

手順31

UE エディタを再び開き、任意のアセットを右クリックして「Source Control」を選択した際に「Check In」や「Refresh」、「Revert」等の選択肢が表示される事を確認する。

TSUBASAMUSU.png

その他

参考

記事

GitHub

最後に

株式会社ModelingXについて

image.png

富山県を拠点とするスタートアップ企業、ModelingXは、2022年4月に創業し、「テクノロジーで感動体験を提供する」というミッションを掲げています。当社が開発中の暮らし体験メタバース「MELIFE(ミライフ)」は、バーチャル住宅展示場や銀行相談、家具購入、婚活などができる「地域単位の新たな経済圏」を目指しています。

↓サービスサイトはこちらから↓

ModelingXはリモートワーク&フレックスタイム制を完備。
UnityやUEを共に探求する仲間を全国から募集しています。

↓企業詳細はこちら↓

8
8
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
8
8