1
1

複数のプロジェクトで使用するUEの自作プラグインの、更新時の同期をとる

Last updated at Posted at 2024-04-27

概要

UEでアプリケーションを作っていると、ほかのプロジェクトでも使用したい処理はプラグインとしてまとめる方が多いと思います。
プラグインの作成中、プロジェクト内で作成したプラグインがプラグイン内で完結しているか確認するため、単体テストを行うと思いますが、その際、gitなどのバージョン管理で同期をとっていると煩わしくなってきます。
複数のプロジェクトで使用する際にプラグインへ変更を加えた場合に、ジャンクションを使用して同期をとることで変更時の各プロジェクトへの適用を簡略化します。

対象

UEで複数プロジェクトで使用する処理を、自作プラグインを作成しているが、いずれかのプロジェクトで変更を加えた場合に同期をとって影響を頻繁に確認したいと考えている方が対象です。

使用環境

  • GitHub
    • 凡例リポジトリ
      ※説明の参考のためのパスとして使用しますが、各環境に併せて読み替えてください。
       

プラグインを常時同期したい場合

プロジェクト外にチェックアウトする

UEプロジェクト外に、管理したいプラグインをクローンします。

プラグインのパス
D:\Work\koiusa\RidingSystemPlugin

管理したいプラグインのジャンクションを作成する

UEプロジェクトのパス
D:\Work\koiusa\Sandbox_UE5_2

UEプロジェクトのPluginsディレクトリにジャンクションを作成します。

JunctionRidingSystem.bat
mklink /j D:\Work\koiusa\Sandbox_UE5_2\Plugins\RidingSystem D:\Work\koiusa\RidingSystemPlugin\Plugins\RidingSystem

以降、プラグインのパス、UEプロジェクトのパス内のプラグインのどちらを変更しても両方に変更が反映されます。

プラグインを任意のタイミングで同期したい場合

UEプロジェクト内にサブモジュールを追加する

任意のタイミングで同期をとりたい場合は、gitのsubmodule機能を併用します。
UEプロジェクト内に、管理したいプラグインをサブモジュールとして追加します。
プロジェクト内にsubmoduleを格納するための、ディレクトリを作成します。

│  └─Sandbox_UE5_2
│      ├─forSubmodule
│      ・・・
│      ├─Contents
│      ・・・
│      ├─Plugins
│      ・・・

forSubmoduleに移動し、コマンドを実行するためのバッチファイルを作成します。
都度コマンドで実行しても問題ないですが、頻繁に実行す工程はバッチファイルにすることで効率化できます。

AddSubmodule.bat
git submodule add --force https://github.com/koiusa/RidingSystemPlugin.git RidingSystemPlugin
git submodule update --remote ./RidingSystemPlugin

ジャンクションを作成する

subumoduleで取得したファイルから、対象のディレクトリのジャンクションをUEプロジェクトのPlugins内に作成します。
※基本運用はプロジェクト内に限定されるため、相対パスで指定します。

JunctionRidingSystem.bat
mklink /j ..\Plugins\RidingSystem .\RidingSystemPlugin\Plugins\RidingSystem

以上 ジャンクションを使用したプロジェクト間の同期方法でした。

1
1
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
1
1