Choose your operating system:
Windows
macOS
Linux
ソースを利用する最大のメリットの 1 つは、Epic のチームが Unreal Engine に追加した最新の改善点と新機能を常に利用できる点です。Epic は、ソース コードに変更を加え、新しい公式リリースの公開時に「Unreal Engine の GitHub リポジトリ」のさまざまなブランチを継続的に更新しています。新しい公式リリースが公開された時、あるいは毎月、毎日といった間隔で、こうした変更を定期的に取得することをお勧めします。
このページでは、フォークのブランチを更新する 2 つの方法を紹介します。これらの方法を使うことで、Unreal Engine のメインのリポジトリで加えられた最新の変更を反映できます。
方法 1: upstream リモートを利用する
この方法では、オリジナルの Epic Games の Unreal Engine リポジトリを、フォークのローカル コピーに新しいリモート リポジトリとして追加します。これは、通常、upstream リモートと呼ばれます。upstream リモートの変更をローカルのブランチにプルすると、その変更を GitHub 上の自分のフォーク (通常 origin リモートという) にプッシュできます。
以下で説明する、GitHub のプル リクエストを使用する方法 2 よりも初めのうちは難しいように思えるかもしれませんが、こちらの方法を推奨します。この方法には、次の 2 つメリットがあります。
upstream リモートは一度設定すれば、フォークの同じローカル クローンを使い続ける限り、再設定を行う必要がありません。プロジェクトに合わせて、必要に応じた頻度で、すばやく簡単に変更を取得できます。
フォークを更新するために GitHub でプル リクエストを使用すると、そのたびにブランチに新しいコミットを作成し、プロジェクトの履歴に新しいプル リクエストを作成することになります。これは通常は問題になりませんが、不要な登録は行わないことをお勧めします。
次に、Git のコマンドライン ツールを使って新しいリモート リポジトリを追加し、変更を取得する方法を説明します。グラフィカルな Git クライアントを使っていても、手順はほぼ同じです。詳細については、ご利用のツールのドキュメントをご覧ください。
GitHub Desktop を使用すると、フォークをクローンしたときに upstream リモートが自動的に作成されます。upstream ブランチの変更をローカルのブランチにマージして、それからその変更を origin リポジトリにプッシュするだけで済みます。
upstream リモートを設定する手順は次のとおりです。
分のコンピュータにフォークをクローンしていない場合は、クローンします。
コマンド プロンプトを開き、リポジトリが格納されているフォルダに移動します。
次のコマンドを使用して、ベースとなる Epic Games のリポジトリを新しいリモート リポジトリ「upstream」として追加します。
> git remote add upstream https://github.com/EpicGames/UnrealEngine
upstream リモートの変更をフォークに取得する手順は次のとおりです。
更新するブランチに切り替えます。使用するコマンドの例:
> git checkout master
upstream リモートの変更をローカルのブランチにプルします。
> git fetch upstream > git merge upstream/master
変更を origin リモートにプッシュします。
> git push origin master
方法 2: GitHub のプル リクエストを使用する
Web ブラウザで github.com にアクセスし、自分のリポジトリのホームページに移動します。
通常は、https://github.com/<username>/UnrealEngine
という形式を使用します。ここで、<username>
には GitHub のユーザー名を指定します。Branch ウィジェットから、更新するブランチを選択します。
[Compare] リンクをクリックします。
通常、フォーク内のこのブランチに変更を加えていないと、Epic Games のリポジトリにユーザーのリポジトリにあるすべてのコミットがすでにあるということが、GitHub で示されます。
switching the base リンクをクリックすると、比較方向が反転し、エンジンのリポジトリに作成されたコミットのうち、ユーザーのフォークにないものが表示されます。変更一覧を確認します。表示されている日付が想定通りの場合は、[Create Pull Request] をクリックします。
簡潔な説明の欄に、プル リクエストで更新するブランチを入力します。入力が完了したら [Create pull request] をクリックします。
GitHub が新しいプル リクエストの [Conversation] タブを表示します。変更一覧の下にある [Merge pull request] をクリックします。
[Confirm Merge] をクリックします。
マージが完了すると、GitHub でフォークのブランチが最新になります。これで、Git のコマンドライン ツールまたは任意のグラフィカルな Git ツールを使用してそのブランチに切り替え、最新の変更をローカルのコンピュータにプルできます。
方法 3: Perforce を使用する
ストリーム ワークフロー
次のフローチャートは、開発時からリリースまでの各種 Perforce ストリームを使用するエンジンのコードおよびコンテンツのフローを示しています。
統合、マージ、およびブランチ
ゲーム作成サイクル中に、チームがプロジェクトを定期的に更新して、新しい機能やバグ修正を含むエンジンの新バージョンに更新することがあります。Perforce から更新されたビルドを取得するプロセスは、初期同期で使用するプロセスと同じです。ただし、このプロセスを実行する場合は、ユーザー独自の Perforce サーバーでエンジンをどのように維持するか、競合を最小限に抑えながら、新たなビルドをコード ベースに統合、マージする機能にこのプロセスがどのように影響を及ぼすかなど、多くの点について検討しなければなりません。
マージおよび統合
Epic では、次のようなブランチ階層を推奨します。
ブランチ |
説明 |
---|---|
|
Epic のコードベースの、オリジナル コピー (変更を含まない) が格納されています。 |
|
Epic の変更とユーザー独自のエンジンの変更をマージするためのステージング領域です。 |
|
エンジンのリリース ビルドをコード ベースとマージして、統合テストにパスすると、これが作業対象の開発ツリーになります。 |
エンジンの最新リリースへアップグレードする
サポート チームから Perforce へのアクセス権を取得したら、Epic からエンジンのリリース ビルドのコンテンツを取得できます。これは、新しいビルドを取得する場合の推奨方法です。
Epic の Perforce サーバーからエンジンの最新リリースのコピーを同期します。
自分の Perforce サーバーから
//depot/Epic
ブランチのコピーを同期します。ローカルの
//depot/Epic
ワークスペースからファイルを削除して、エンジンの新リリースからファイルをコピーします。P4V のオフライン作業の調整 機能を使用して、Epic の更新を表す変更リスト (CL) を作成します。
調整操作が完了したら、操作を進めて、先ほど作成した CL をチェックインします。
この時点で、Epic ブランチはエンジンのリリース ビルドのコピーです。これには、統合履歴が含まれており、エンジンの最新の更新をコード ベースにマージおよび統合する際に競合を削減するうえで役立つマージ ツールの変更情報を提供します。
最新の開発ブランチ (
//depot/Dev
) をマージ/テスト ブランチ (//depot/MergeTest
) にマージします。エンジンの最新リリースをマージ/テスト ブランチ (
//depot/MergeTest
) にマージして、変更をテストします。ゲームの更新済みのバージョンをマージ/テスト ブランチ (
//depot/MergeTest
) から開発ブランチ (//depot/Dev
) にマージします。
以下は、エンジンの新バージョンのリリース時に想定されるブランチ間での変更フローを示す図です。
更新頻繁が高いほど、マージ時に重大な競合が発生する可能性が低下します。