はじめに
前提条件
- GitHub アカウントを作成してある事
- Git をダウンロードしてある事
- Git LFS をダウンロードしてある事
- Sourcetree をダウンロードして GitHub アカウントの認証などの初期設定を行ってある事
テスト環境
- UE 5.1.1
- Visual Studio 2022
- UEGitPlugin 3.15
手順
GitHub でのリポジトリの作成
手順1
GitHub に行き、右上の「+」から「New repository」を押す。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

手順19
UE プロジェクトのルートディレクトリにある「Config」フォルダ内に「DefaultEditorPerProjectUserSettings.ini」ファイルを作成して以下のコードをコピペする。
[/Script/UnrealEd.EditorLoadingSavingSettings]
bSCCAutoAddNewFiles=False
bAutomaticallyCheckoutOnAssetModification=False
bPromptForCheckoutOnAssetModification=True
[/Script/UnrealEd.EditorPerProjectUserSettings]
bAutoloadCheckedOutPackages=True
手順20
作成した「DefaultEditorPerProjectUserSettings.ini」ファイルと同じ階層にある「DefaultEngine.ini」ファイルに以下のコードをコピペする。
[SystemSettingsEditor]
r.Editor.SkipSourceControlCheckForEditablePackages=1
エディタ専用モジュールの作成
手順21
UE プロジェクトのルートディレクトリにある「Source」フォルダ内に新たにフォルダを作成し、その中に「{モジュール名}.Build.cs」と「{モジュール名}.cpp」、「{モジュール名}.h」を作成する。

手順22
作成した3つファイルにそれぞれ以下のコードをコピペする。
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" });
}
}
#pragma once
#include "CoreMinimal.h"
#include "Modules/ModuleInterface.h"
#include "Modules/ModuleManager.h"
#include "Editor/UnrealEdEngine.h"
class YOURMODULENAME_API FYourModuleName : public IModuleInterface
{
};
#include "YourModuleName.h"
#include "ISourceControlModule.h"
#include "ISourceControlProvider.h"
IMPLEMENT_MODULE(FYourModuleName, YourModuleName);
手順23
UE プロジェクトのルートディレクトリにある「Source」フォルダ内の「{プロジェクト名}Editor.Target.cs」に ExtraModuleNames.Add("作成したエディタ専用モジュールの名前");
を追加する。
// 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」ファイルに、作成したモジュールを以下のように追加する。
{
"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 プロジェクトを開き、「Tools > New C++ Class...」を選択する。

手順26
親クラスに「All Classes > UnrealEdEngine」を選択して右下の「Next」を押す。

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

手順28
Visual Studio が開いたら作成された各ファイルに以下のコードをコピペする。
(Branches
の要素はこちらを参考にして適宜修正する)
#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;
};
#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」でも可能)

作成したエディタ専用モジュールの登録とデバッグ
手順30
コンパイルが完了したら UE エディタと Visual Studio を閉じて UE プロジェクトのルートディレクトリにある「Config」フォルダ内の「DefaultEngine.ini」に以下のコードを追加する。
(既に [/Script/Engine.Engine]
がある場合はその欄の最後に以下のコードを追加する)
[/Script/Engine.Engine]
UnrealEdEngine=/Script/YourModuleName.MyUnrealEdEngine
手順31
UE エディタを再び開き、任意のアセットを右クリックして「Source Control」を選択した際に「Check In」や「Refresh」、「Revert」等の選択肢が表示される事を確認する。

その他
参考
記事
GitHub
最後に
株式会社ModelingXについて

富山県を拠点とするスタートアップ企業、ModelingXは、2022年4月に創業し、「テクノロジーで感動体験を提供する」というミッションを掲げています。当社が開発中の暮らし体験メタバース「MELIFE(ミライフ)」は、バーチャル住宅展示場や銀行相談、家具購入、婚活などができる「地域単位の新たな経済圏」を目指しています。
↓サービスサイトはこちらから↓
ModelingXはリモートワーク&フレックスタイム制を完備。
UnityやUEを共に探求する仲間を全国から募集しています。
↓企業詳細はこちら↓