December 1, 2022
UnrealGameSyncを使って
Perforce Helix CoreとUEプロジェクトを同期する方法
*本記事は Perforce Software 社の以下のブログ記事(2022年12月1日時点)の参考訳です。
How to Use UnrealGameSync with Perforce Helix Core
*ブログの内容は更新されている可能性があります。また、記事内のリンク先は別途記載がない限りは英語ページになります。
Unreal Engine 4やUnreal Engine 5を使った開発をサポートするため、Epic社ではUnrealGameSync(UGS)というPerforce Helix Coreとの同期ツールを提供しています。UnrealGameSyncを使うことで、P4V(Helixビジュアルクライアント)の機能以外にも多くのことを実現できますが、その主な用途は内部エンジンやプロジェクトビルドの配布です。
本ブログ記事では、UnrealGameSyncの概要と利用することによるメリット、インストールおよびセットアップ方法について解説します。
UnrealGameSyncとは?
UnrealGameSync(UGS)は、ワークスペースとUnreal Engineのプロジェクトストリームを同期させるための開発者向けツールです。Perforce Helix CoreからUE4/UE5プロジェクトを同期するためのグラフィカル フロントエンドの役割を果たします。
UnrealGameSyncの用途は?
UnrealGameSyncは、複数の開発者が共同して作業する環境においてプロジェクトがアップデートされた際、関係する開発者全員が正しくアップデートされた同じプロジェクトで作業できるようにすることで、コードやコンテンツの統合を促進します。
UGSをインストールすると、同期ツールを使用した際に発生しがちなオーバーヘッドを気にすることなく、Unreal Engineのプロジェクト上でBootstrapやイテレーションを簡単に行うことができるようになります。
UnrealGameSyncを使用することで、以下のことが可能になります。
- プロジェクトファイルの同期
- マージ時の衝突の解決
- エディタバイナリの同期
- バージョンファイルの更新
- プロジェクトファイルの生成
- UE4/UE5のビルド
- Unrealプロジェクトの実行
こちらから
本レポートは日本語参考訳もご用意があります。日本語版DLのお申し込みはUnrealGameSyncを利用するメリット
UGSを使うメリットには、例えば以下のようなものがあります。
- サブミットと同時にチェンジリストへの同期ができる
- 各変更にコメントを追加し、ビルドの良し悪しをフラグ付けできる
- 問題のあるビルドに対して現在行われている修正に関する通知を出すことができる
- バージョン化していないアセットをサブミットすることなく、ローカルビルドから安全にコンテンツの変更を行うことができる
- Visual Studioにアクセスできない場合でも、プロジェクトの圧縮されたエディタビルドにアクセスすることができる
UnrealGameSyncのインストールおよびセットアップ方法
UGSのインストールとセットアップ方法は以下の通りです。
1. Wixをダウンロードして、インストールする
インストールが完了すると、Visual Studioの依存関係のインストールの実施を推奨されます。ソリューションファイルの実行が初めての場合、プロジェクトのビルドを進めるうえで、まずは依存関係をアップデートしてからインストールを行います。
※ 適切なバージョンのVisual Studioを使用していることをご確認ください。
2. Unreal Engineのソースファイルをダウンロードする
ソースファイルにアクセスするためには、EpicアカウントとGithubアカウントをリンクさせる必要があります。ライセンスを所有している場合は、Epic社が公開しているライセンスユーザー向けのHelix Coreサーバーからダウンロードします。
3. Unreal Engineのソースファイルを新規メインライン ストリームに追加する
ビルドの問題を回避するために、このワークスペースは AllWrite に設定します。
※ Windows環境では、ワークスペースのルートパスが50文字未満である、またはレジストリで長いファイルパスが有効になっていることを確認してください。
4. Setup.batを実行して依存関係をインストールする
※ Visual Studioの依存関係のインストールに要する時間は、過去にマシン上でUnreal EngineまたはUnrealGameSyncをビルドしたことがあるかどうかによって変わることがあります。
5. GenerateProjectFiles.batを実行する
6. \Engine\Source\Programs\UnrealGameSync\UnrealGameSync.slnを開く
VSCodeの拡張機能(ASP.NET)のインストールを求めるプロンプトが表示されるはずです。
拡張機能のインストールが完了したら、UnrealGameSync: Release – Any CPU – UnrealGameSyncのビルドを実行します。そうすることで、以下にビルドが作成されます。
\Engine\Source\Programs\UnrealGameSync\bin\Release\netcoreapp3.1
以下のディレクトリを開きます。
\Engine\Source\Programs\UnrealGameSync\Installer
Build.batを実行すると、UGSのインストーラが作成されます。これにより、msiインストーラが作成され、ローカルで以下にインストールができるようになります。
\Engine\Source\Programs\UnrealGameSync\Installer\bin\Release
7. p4ignoreとTypemapsを確認する
p4ignoreは、通常のUnrealプロジェクトと同じフォーマットになります。
また、p4 typemapは以下のようになります。(//depotは、ご自身のストリームデポの名前に変更してください。例えば //UE5 のように変更します。
Typemap:
binary+S2w //depot/....exe
binary+S2w //depot/....dll
binary+S2w //depot/....lib
binary+S2w //depot/....app
binary+S2w //depot/....dylib
binary+S2w //depot/....stub
binary+S2w //depot/....ipa
binary //depot/....bmp
text //depot/....ini
text //depot/....config
text //depot/....cpp
text //depot/....h
text //depot/....c
text //depot/....cs
text //depot/....m
text //depot/....mm
text //depot/....py
binary+l //depot/....uasset
binary+l //depot/....umap
binary+l //depot/....upk
binary+l //depot/....udk
p4 typemap -i < “filename.txt” コマンドを使用して、クライアントのtypemapを設定できます。
UGSの使い方
インストール完了後にUGSを実行すると、以下のデフォルト設定を求められます。
- サーバー
- ユーザー名
- パスワード
次に、これから作業するUnrealプロジェクトのファイルの在処を尋ねられます。
これらの情報を入力すると、関連するチェンジリストがすべてUnrealGameSyncのメインUIに表示されます。
エンジンがビルドされていない場合、UGSはリポジトリにチェックインされているビルド済みファイルへの同期を試みます。通常、直近の良好なビルドが使用されますが、必要であれば、特定のチェンジリストへの同期を指定することもできます。ただし、同期先の指定があっても、ソースファイルにマッチしたエンジンがビルドされない場合は、UGSは前述の設定が有効であれば、エディタの起動前に自動でソースファイルからのエンジンビルドを試みます。
なお、UGSセットアップを有効活用するために、完成したビルドも保存しておくことをお勧めします。"Use Unstable Build"にチェックを入れておくと、UGSは"Unstable"フォルダの中のビルドを探しに行きます。チェックが無い場合は、"Release"フォルダにあるビルドが使われます。
※ アーティストやデザイナーとして開発に加わる場合は、"Use Unstable Builds"のチェックは外しておくことをお勧めします。開発者として参加し、不具合対応などを行う場合は、バグの特定や修正に必要になることもあるため、"Use Unstable Builds"にチェックを入れておくことをお勧めします。
これで、必要なビルドがディポに保存されたことになります。後は、ビルドに同期させたいチェンジリストの番号を選択します。
バグを抱えたビルドのチェンジリスト番号には、Bad のマークを付けることができます。反対に、問題のないビルドのチェンジリスト番号に Good のマークを付けておいて、アクセスすべきビルドを明確に示すこともできます。
Sync Now をクリックすると、Good とマークされた最新のチェンジリストのビルドに同期され、トップパネルから各種エディタを起動できるようになります。
UnrealGameSyncを使ってみよう!
Helix Coreとの連携には、UnrealGameSyncが便利です。ぜひご利用ください。Helix Coreはゲーム業界において広く活用されているバージョン管理ツールで、大手ゲーム開発スタジオTOP20のうち、19スタジオで導入されています。また、Helix Coreは5ユーザーまでは無料でご利用いただけます。