はくとうのゲーム開発ライフ

UE4周りの技術メモ

ソースビルドエンジンのバージョンアップ環境構築をしてみた

 
はじめに
 

今回はUE4.25からUE4.26へカスタムエンジンを更新したくなった際に,
公式ドキュメントで推奨しているエンジンバージョンを更新する環境の構築をしてみました。
まだ環境構築をしただけで,実際更新(差分がある状態で)したわけではないのでご了承ください。 
※実際更新して何かあれば,追記しようと思います。
 
 
 
 
前提条件

  • Git環境が整っている
  • EpicGamesのUnrealEngineリポにアクセスできるようになっている
 
 
 
 
参考資料

 
 
 
 
EpicGamesのリポジトリからフォークする

 
   まずは以下のEpicGamesのGithubリンクを開く
    https://github.com/EpicGames
 
 
   その後,EpicGamesのUnrealEngineのリポジトリを開き,以下の画像にあるForkを選択してフォークすることができます。
 
 
   ※UnrealEngineのリポジトリはPrivateなため,アクセスにはEpicGamesの許可が必要です!
 
 
 
 
フォークしたリポジトリをクローンする

 
git clone コマンドにて,ローカルにリポジトリをもってくる。
SSH接続で最初はやっていたので参考資料を記載していますが(記事上部),
HTTPSでやったほうが若干早かったです。 ※個人差あると思います。

Git ReadOnly?みたいなものがあるらしいが,
Pushする必要があるので,おそらく使わないほうがよい(よくわかってない。Pushできるならこちらのほうがはやいっぽい)



 
UpStreamを作成する

 
次にupstreamを製作します。
upstreamとは,Fork/cloneしたリポを本家リポに追従するためによく使われるようです。(初めて知りました...)

▼こんな感じ
   GitHubでFork/cloneしたリポジトリを本家リポジトリに追従する
 
つまり,今回はEpicGamesのUnrealEngineリポのupstreamを作成することで,
以後自分のForkしたリポジトリも更新できるようにする! というのが目的になります。
なお,upstreamの作り方は上記サイトだったり,公式ドキュメント通りの作業になります。


さてようやく本題ですが,  
UnrealEngineのリポジトリ(EpicGames)のUpStream作成コマンドです!
 
 
これだけでupstreamは作成できます。
git remote -v
上記コマンドを使用することでupstreamができたことも確認できます。

▼コマンド結果
upstream        https://github.com/EpicGames/UnrealEngine (fetch)
upstream        https://github.com/EpicGames/UnrealEngine (push)
 
これで問題なくupstreamの製作はできました。






EpicGamesのUnrealEngineリポの変更を適用する

 
前項までは,バージョンアップするための準備になります。
ここからが実際バージョンアップの過程になります。

作業としてはfetchとmergeをする形になります。 ※基本的にドキュメント通りにやっていきます。

1.更新するブランチに切り替えます。
git checkout release
今回はreleaseブランチ(この時は4.26.2)を更新したかったので,releaseブランチにしてます。 
基本的には安定しているバージョンを使用していくので,大体の場合これでいいかなと思います。
 

2.次にfetchとmerge行い,本家リポの変更をローカルのリポジトリにマージします。
git fetch upstream
 
git merge upstream/release
今回は環境構築なので,特に更新はありませんでした。 ※クローンしてきたものが最新だったため。


3.最後にPushして,サーバー側にも変更を適用します。
git push origin release


以上の作業で本家リポからローカルのリポを更新することができます。(できるはず!)

 
 
 


まとめ

 
以上で環境構築は終わりです。
一応これで,次回からエンジン更新したくなったら,
EpicGamesのUnrealEngineリポの変更を適用する」の項だけを実行すれば簡単に最新のバージョンがとれることになります。

この後配布用ビルドしてある程度最適化を図るわけですが,それは過去に記事書いてます。
 
この記事が一助になれば幸いです(*´ω`)
ご指摘等あれば,コメントいただければと思います!