UE4プロジェクト内のアセットデータの様子
UE4のContentフォルダ以下のデータは基本的に .uassetというデータ形式に変換されている。
さらに大変なことは、エクスプローラ上でコピーして他のプロジェクトに移動させたとしても、正確に動くことは保証されない。
理由の一つは、UE4内のデータの参照の取り方がContent以下の相対パスであるからである。
ちなみにUnityは.metaファイルのGUIDによって参照を取っている。
これらをあまり考えずにデータを扱うためには、UE4のお作法に従うのが一番である。
Unityならunitypackage
あるプロジェクトで使用したアセットやコードの一部をファイルとしてまとめ、他のプロジェクトに転用したいというとき、UnityならunitypackageにExportするという方法が思いつく。
これによりmetaファイルを気にせずデータ移行できるのだ。
しかし、UE4にはExportやImportできるような特殊なデータ形式が存在しない。
実際には、Content以下の相対パスを維持しながらファイルをコピペすれば、移動できる。
でも、めんどくさいことを考えずに移行する方法がある。
それが次の2つである
- Migrate (移行) を使用する
- Pluginを使用する (Unityでいうunitypackage)
Migrate (移行) を使用する
目標
ProjectAのContent/ProjectA/Hoge 以下のアセットデータをProjectBに移動する。
やり方
- ProjectAのコンテンツブラウザを開き、Hogeフォルダを右クリック
- Migrate (移行) をクリック
- ProjectBのContentフォルダを選択
おすすめのコツ
プロジェクトのディレクトリ構成を
Content/ProjectCode/色々
のようにProjectCodeフォルダを作ることで、移行時に競合しにくくなる。
Pluginを使用する (Unityでいうunitypackage)
手順
- Pluginの作成とExport
- 新しくPluginを作成
- Plugin化したいアセットを移行する
- PackageでExport
- PluginのImport
- Pluginsフォルダを作りコピー&ペースト
- Pluginウィンドウで確認
新しくPluginを作成
[編集]>[プラグイン]でプラグインウィンドウを開く。
プラグインウィンドウで[New Plugin]を選択
- Content Onlyを選択
- Plugin Nameを記入
- Authorなど必要あれば記入 (Option)
- [Create Plugin]を選択
Plugin化したいアセットを移行する
Plugin化したアセット群をフォルダに入れ、右クリックで「移行」を選択。そうすることで
参照関係のミスがなくなる。
移行先を${自分のUEプロジェクトフォルダ}\Plugins\TestPlugin\Content
以下に設定する。
すると移行する。
PackageでExport
プラグインウィンドウからPackageを選択。
Export先を選択 (Desktopなどどこでも可能)
Pluginsフォルダを作りコピー&ペースト
ProjectFolder > Plugins (Contentフォルダと並列) 以下にコピー。その後UEを再起動。
以下のようなプロジェクト階層になっていればOKです。
- ProjectFolder
- Config
- Content
- Plugins
- PluginName
- Content
- Resources
- PluginName.uplugin
- PluginName
- ProjectName.uproject
これでPluginのImportもOK!
PluginにC++を含めるときは...?
後日記事で共有します!